在统。这种分发机制是通过将一台Mysql主机的数据复制到其他主机(从机)并重新执行来实现的。
双机热备份的概念:?指保持两个数据库的状态自动同步。任何数据库的操作都会自动应用于另一个数据库,并且两个数据库的数据始终保持一致。这有很多优点。 1.可以进行灾难恢复,如果其中一个发生故障,可以将其中一个切换到另一个。 2.可以完成负载平衡,并且可以将请求分配给其中任何一个,以提高网站的吞吐量。
主从复制示意图:
?
执行主从复制的三个步骤:
①主服务器将更改记录到二进制日志(Binary log)中
②从站访问主站,将主站的日志记录复制到从站的中继日志(中继日志)
③从属SQL线程线程执行中继日志事件,该事件将被更改并再次执行并同步到从属数据库
1.服务器准备:准备两台服务器或两台虚拟机
2.请参阅以前的博客文章\ lt; \ lt; linux环境下安装mysql \\ \ gt;并分别在这两台服务器上安装Mysql,两台服务器上mysql的用户名和密码均为root
3.我们下面的配置统一调用MasterA和SlaveB
①在MasterA服务器上授权SlaveB
使用命令连接到mysql:
mysql-uroot-proot
执行授权命令:在*上授予复制从属。 *到由” root”标识的” root” @” ip的SlaveB”;
参数说明:
用户名:root
?密码:root
此配置意味着:允许SlaveB以用户名作为root用户,以口令作为root用户访问MasterA的二进制日志
②打开MasterA服务器的二进制日志
打开my.cnf配置文件,添加配置,使用命令编辑配置文件my.cnf:vi/etc/my.cnf
参数说明:
datadir:数据存储路径
套接字:mysql有两种连接方法套接字和TCP/IP
server-id:设置主从复制时不能重复
log-bin:二进制日志的名称
expire_logs_days:binlog日志的到期时间,当达到设置的时间时将自动清除
binlog-do-db:将哪个库的操作日志设置为二进制日志
4.创建一个数据库
如果需要在MasterA和SlaveB上创建全新的库,则可以直接在两个mysql上创建数据库。如果正在使用要进行主从复制的数据库,则需要首先锁定数据库。操作完成后,请解锁并使用,以避免两个数据库数据不是初始状态,如果要在两个服务器上复制的数据库的初始状态不相同,则没有意义。
锁定数据库命令:带有读取锁定的刷新表;
从MasterA导出数据库,并将导出的数据库导入SlaveB的mysql
查看用于配置SlaveB的MasterA数据库的二进制位置:
参数说明:
文件:日志名称
位置:对数偏移量
Binlog_Do_DB:记录库
解锁刚锁定的数据库:UNLOCK TABLES;
5.配置SlaveB的mysql
使用命令vi/etc/my.cnf编辑配置文件并添加以下配置:
6.启动SlaveB的从属
7.检查是否启用了SlaveB的从属线程
Slave_IO_Running是读取master的binaryLog的线程
? Slave_SQL_Running是执行SQL的线程
这两个线程必须为YES才能实现主从复制。
1.使用Navicat连接到两个mysql
2.在MasterA的mysql数据库中添加一条数据,检查SlaveB的mysql数据库是否已同步,结果是否已同步
3.在MasterA的服务器上安装mycat,让我们配置mycat的模式和服务器的两个配置文件
架构:
server.xml添加以下配置:
4.通过mycat连接到架构
mysql-uroot-proot-h127.0.0.1-P8066
5.插入一条数据,结果验证是两个库中的数据将同步
6.停止主服务器的mysql,仍然通过mycat插入一条数据,该数据将插入从服务器的mysql,启动主服务器的mysql,通过mycat将一条数据插入数据库,并找到不会同步。
根据上述配置,将主计算机用作从计算机,并将从计算机用作主计算机。
1.在从属(相对主)计算机上连接mysql并授权主(相对从属)
在*上授予复制从属。 *到由” root”标识的” root” @” 192.168.22.xxx”;
192.168.22.xxx是主机的IP
2.查看从属计算机的二进制日志
3.启用主同步
如果发生上述错误,请先停止从站,然后再次操作它,使用命令:STOP SLAVE,(此处命令必须为大写)开始同步后,需要打开从站,使用命令:START SLAVE(此处命令必须为大写)。
4.检查主服务器上从服务器的状态
1.在Navicat连接到mysql之后,直接向数据库中添加一条数据,向这两个数据库中添加一条数据,然后在两个数据库中发现数据已同步。
2.无需修改Mycat配置,使用mycat连接到mysql,命令为:mysql-uroot-proot-h127.0.0.1-P8066
3.插入一条数据,发现数据库也可以同步
4.停止其中一个数据库,向启动数据库中添加一条数据,然后启动停止的数据库,然后发现数据也已同步到数据库。
通过分步实践使系统更加稳定,在数据量大之后,我们必须研究子库和表。在下一个博客中,编辑器将为mycat-web编写一个可视的监视界面,实时监视mycat的性能。