任何人都可以向我解释数据库镜像,特别是使用mysql。
我的问题很少
我是否必须在Java应用程序上创建与这些数据库(master db和slave dbs)的连接?是否有连接字符串或它只是一个可编程的部分?
我是否还必须复制我的所有sql trasactions enable以使所有数据库移动到主服务器和从服务器?
如果主数据库已关闭,且唯一的连接是从服务器,如何修补主数据库启用以更新主服务器关闭期间更改的记录,该怎么办?
从站数据库是否在本地主机上并且主服务器在服务器机器上,或者有2台服务器机器上哪一个是主服务器而另一个服务器是从服务器?这是可以的吗?
我是如何使用我的java应用程序连接到这两个数据库(slave和master)的连接类型,如果master自动关闭,将使用从属连接。
答案 0 :(得分:2)
1)我是否必须在Java应用程序上创建与这些数据库(master db和slave dbs)的连接?是否有连接字符串或它只是一个可编程的部分?
是。通常,只有在需要写入数据库时才会创建与主服务器的连接。对于读取作业,您将使用与一个或多个从站的连接,因此主站不必处理该负载。这是以编程方式完成的,没有连接字符串。 您还可以查看使用MySQL代理的this link,以便为您的应用程序透明地分割读写。应该指出的是,这只是概念证明
2)我是否还必须复制我的所有sql trasactions enable以使所有数据库移动到主服务器和从服务器?
不,mysql复制会为你做这件事。
3)如果主数据库已关闭,并且唯一的连接是从服务器,如何修补主数据库启用以更新主服务器关闭期间更改的记录,该怎么办?
简短的回答是你不能。如果您需要高可用性读取,则应该查看MySQL Cluster。多主配置也可以起作用。
4)从站数据库是否在本地主机上并且主服务器在服务器机器上,或者有2台服务器机器,其中一台是主服务器,一台是从机服务器,这是否可以?
主机和从机可以并且应该驻留在不同的服务器上。如果这就是'localhost'的意思,你不太可能想要将奴隶放在最终用户机器上。
5)我将如何使用我的java应用程序连接到这两个数据库(slave和master),这种连接类型如果master自动关闭,则将使用从属连接。
如果所有读取都来自奴隶(或奴隶),丢失主人不会破坏你的读取,只会写你的。如果您有一个从属设备并且它已关闭,您可以选择回退使用主连接进行读取。