1)我是否必须在 Java 应用程序上创建与这些数据库(主数据库和从数据库)的连接?是否有一个连接字符串或者它只是一个可编程的部分?
是的。通常,只有当您需要写入数据库时,您才会创建与主服务器的连接。对于读取作业,您将使用与一个或多个从属设备的连接,这样主控设备就不必处理该负载。这是以编程方式完成的,没有用于此的连接字符串。您还可以查看此链接,该链接使用 MySQL 代理为您的应用程序透明地拆分读取和写入。应该注意的是,这只是一个概念证明
2) 我是否还必须复制我的所有 sql 事务启用才能使所有数据库移动生效到主服务器和从服务器?
不,mysql 复制会为您执行此操作。
3)如果主数据库关闭了,并且唯一的连接是从站,我如何修补主数据库以更新在主数据库关闭期间更改的记录?
简短的回答是你不能。如果您需要高可用性读取,您应该查看 MySQL Cluster。多主配置也可以工作。
4)slave db在本地主机上,master在服务器机器上是否可以,或者有2台服务器机器,一台是master,一台是slave?
主从机器可以而且应该驻留在不同的服务器上。如果这就是您所说的“本地主机”的意思,那么您不太可能希望将奴隶放置在最终用户机器上。
5)我将如何使用我的java应用程序连接到这两个数据库(从属和主),如果主自动关闭,从属连接将使用哪种类型的连接。
如果您的所有读取都来自从属设备(或多个从属设备),那么失去主设备不会中断您的读取,只会中断您的写入。如果您有一个从属设备并且它出现故障,您可以选择回退到使用主连接进行读取。