Home > Database > Mysql Tutorial > 公司Mysql多实例实现主从复制

公司Mysql多实例实现主从复制

WBOY
Release: 2016-06-07 14:52:55
Original
1240 people have browsed it

1、问题背景: 2、数据库架构图: 3、解决思路: 4、解决方法: 5、结果测试: 1、问题背景: 公司的2台mysql服务器之间没有主从复制的架构,A服务器上跑的a、b数据库,B服务器上跑的d、e数据库,而A,B服务器上又都跑了c数据库的不同的表,所以A、B两台服务

1、问题背景:

2、数据库架构图:

3、解决思路:

4、解决方法:

5、结果测试:


1、问题背景:

   公司的2台mysql服务器之间没有主从复制的架构,A服务器上跑的a、b数据库,B服务器上跑的d、e数据库,而A,B服务器上又都跑了c数据库的不同的表,所以A、B两台服务器实际上都是工作在单机模式下,不过是做了分库分表,但是无法保证数据库的安全性以及服务的不中断性。

2、数据库服务器架构图:A服务器IP:192.168.3.102,B服务器IP:192.168.3.100

wKioL1PLouvBaru2AACgZsv1omk021.jpg

3、解决问题思路:

   通过每台服务器上的mysql开启两个实例工作在不同的socket下实现对彼此做主从复制架构,A服务器的3307端口的实例做B服务器3306端口实例的从服务器,B服务器3307端口的实例做A服务器3306端口实例的从服务器,这样既保证了数据库的高性能,又能保证数据的安全性。mysql启动多实例我所知道的有二种方法:第一种:使用mysqld_multi,创建一个配置文件然后通过mysqld_multi读取配置文件的方式启动多实例。第二种:安装两个mysql,在启动时指明不同的port和defaults-file即可。本文采用第一种方式实现多实例主从复制架构。

4、解决方法:

安装mysql-5.5.33并初始化两个实例(A服务器上的配置),B服务器的配置类似这里不再列举。

wKiom1PLu5_xnjM9AAHv5lw4_XY559.jpg

初始化两个实例   wKioL1PLvLmzaWyGAABjBHDupjc211.jpg

wKioL1PLvLqzzlsVAABgvUaw3Zk143.jpg

拷贝服务脚本和配置文件

wKiom1PLu5_S6gAmAAD3M8CVs88974.jpg

开启2个实例需修改配置文件/etc/my.cnf如下:(备注:以下两个实例的配置都在/etc/my.cnf中)

实例一配置:

    wKioL1PLwJrzq30gAAHpwus99PE963.jpg

实例二配置:

    wKioL1PLwMKQ2eMyAAGMHdpWrxY087.jpg

开启mysql服务

wKioL1PLw46TiKp4AAKCCPumpSY444.jpg

登陆测试:

  wKioL1PLx23BAvd0AAGrRwgfa-o835.jpg


wKioL1PLx4HRYUXpAAIGJEXHcrc440.jpg

B服务器上以类似A服务器上的方法设置后(提示:主从实例之间的server-id不能一致),即可开始做主从复制了。

在A服务器的3306端口实例上做授权并加读锁,导出数据库,导出数据库之后释放读锁,然后把数据库导入到B数据库的3307端口的实例中。

wKioL1PMwS3wzdrpAAGLzf3TGzE211.jpg

wKioL1PMwsrTqaB0AAG5grLXqQs339.jpg

wKioL1PMww6gzuWdAAIhdgc9JLo550.jpg

把A数据库传递过来的数据导入到B服务器的3307实例中,并在从服务器实例中启动复制线程,查看同步状态

wKioL1PMxHuwqmAPAARVii5cmCs085.jpg

不同服务器上的不同实例间的主从复制完成,B服务器3306端口实例和A服务器3307端口实例的主从配置类似这里不再累述,记得要把配置写入/etc/my.cnf的配置文件中。

wKiom1PMxCHACZQcAABlPhwX2-8009.jpg

5、结果测试:

在主服务器A服务器的3306端口的实例上创建和删除数据库,然后查看B服务器的3307端口实例的数据库是否发生变化:

wKiom1PMxlSzAtWPAAGab_2VVnc553.jpg

wKioL1PMx2_xinqNAAJgNl2y-NQ769.jpg

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template