学习笔记--mysql的AB复制
2016-09-18 19:19
323 查看
MySQL 提供了数据库的同步功能,这对我们实现数据库的冗灾、备份、恢复、负载均衡等都是有极大帮助的。
客户端的数据全部写入mysql主服务器中,主服务器将数据同步至从服务器,当用户读取数据时在从服务器中进行读取,极大降低了主服务器的压力,提高了整体业务的水平 实验环境:master:server6 slave:server7Mysql版本:Ver 14.14 Distrib 5.1.71 Master 配置:vim /etc/my.cnf在[mysqld]下添加一下参数log-bin=mysql-bin #启动二进制日志系统binlog-do-db=test #二进制需要同步的数据库名,如果需要同步多个库,例如要再同步westos库,再添加一行“binlog-do-db=westos”,以此类推server-id=1 #必须为 1到 232–1之间的一个正整数值binlog-ignore-db=mysql #禁止同步 mysql 数据库 /etc/init.d/mysqld start 创建同步账户并授权:mysql> GRANT REPLICATION SLAVE ON *.* TOwestos@'172.25.60.7' IDENTIFIED BY 'westos'; mysql> show master status;
Slave配置: vim /etc/my.cnf 在[mysqld]下添加一下参数server-id=2#从服务器 ID号,不要和主ID 相同,如果设置多个从服务器,每个从服务器必须有一个唯一的 server-id 值,必须与主服务器的以及其它从服务器的不相同。可以认为 server-id 值类似于 IP 地址:这些ID 值能唯一识别复制服务器群集中的每个服务器实例。 /etc/init.d/mysqld start mysql> change master to master_host='172.25.60.6', master_user='westos',master_password='westos', master_log_file='mysql-bin.000001', master_log_pos=530;#######此处的 master_log_file和master_log_pos与master中的数值对应 mysql> slave start;mysql> show slave status\G;若以下两行都为yes,则表示sql线程开启正确,表明数据库正在同步注:***同步之前必须保证master端与server端的数据一致性***Slave_IO_Running: YesSlave_SQL_Running: Yes 相关文件作用:1. mysql-bin.index: 服务器一旦开启二进制日志,会产生一个与二日志文件同名,但是以.index结尾的文件。它用于跟踪磁盘上存在哪些二进制日志文件。MySQL用它来定位二进制日志文件。2. mysqld-relay-bin.index: 该文件的功能与mysql-bin.index 类似,但是它是针对中继日志,而不是二进制日志。3. master.info :保存 master的相关信息。不要删除它,否则,slave重启后不能连接 master。4. relay-log.info :包含 slave中当前二进制日志和中继日志的信息。 当设置 log_slave_updates 时,你可以让slave 扮演其它slave 的master。此时,slave把 SQL线程执行的事件写进行自己的二进制日志(binary log),然后,其它的slave 可以获取这些事件并执行它,从而有效缓解master的压力。如下:
*****在同步数据之前须保证ABC三台服务器数据完全同步*****Master:server6 slave1:server7 slave2:server8在Slave1上:Vim /etc/my.cnfserver-id=2log-bin=mysql-binbinlog-ignore-db=mysqlbinlog-do-db=testlog-slave-updates/etc/init.d/mysqld restartmysql> GRANT REPLICATION SLAVE ON *.* TO westos@'172.25.60.8' IDENTIFIED BY 'westos';mysql> show master status;
在slave3上:vim /etc/my.cnfServer-id=3/etc/init.d/mysqld start mysql> change master to master_host='172.25.60.7', master_user='westos',master_password='westos', master_log_file='mysql-bin.000001', master_log_pos=258;mysql> slave start;mysql> show slave status\G;查看线程是否开启正确
客户端的数据全部写入mysql主服务器中,主服务器将数据同步至从服务器,当用户读取数据时在从服务器中进行读取,极大降低了主服务器的压力,提高了整体业务的水平 实验环境:master:server6 slave:server7Mysql版本:Ver 14.14 Distrib 5.1.71 Master 配置:vim /etc/my.cnf在[mysqld]下添加一下参数log-bin=mysql-bin #启动二进制日志系统binlog-do-db=test #二进制需要同步的数据库名,如果需要同步多个库,例如要再同步westos库,再添加一行“binlog-do-db=westos”,以此类推server-id=1 #必须为 1到 232–1之间的一个正整数值binlog-ignore-db=mysql #禁止同步 mysql 数据库 /etc/init.d/mysqld start 创建同步账户并授权:mysql> GRANT REPLICATION SLAVE ON *.* TOwestos@'172.25.60.7' IDENTIFIED BY 'westos'; mysql> show master status;
Slave配置: vim /etc/my.cnf 在[mysqld]下添加一下参数server-id=2#从服务器 ID号,不要和主ID 相同,如果设置多个从服务器,每个从服务器必须有一个唯一的 server-id 值,必须与主服务器的以及其它从服务器的不相同。可以认为 server-id 值类似于 IP 地址:这些ID 值能唯一识别复制服务器群集中的每个服务器实例。 /etc/init.d/mysqld start mysql> change master to master_host='172.25.60.6', master_user='westos',master_password='westos', master_log_file='mysql-bin.000001', master_log_pos=530;#######此处的 master_log_file和master_log_pos与master中的数值对应 mysql> slave start;mysql> show slave status\G;若以下两行都为yes,则表示sql线程开启正确,表明数据库正在同步注:***同步之前必须保证master端与server端的数据一致性***Slave_IO_Running: YesSlave_SQL_Running: Yes 相关文件作用:1. mysql-bin.index: 服务器一旦开启二进制日志,会产生一个与二日志文件同名,但是以.index结尾的文件。它用于跟踪磁盘上存在哪些二进制日志文件。MySQL用它来定位二进制日志文件。2. mysqld-relay-bin.index: 该文件的功能与mysql-bin.index 类似,但是它是针对中继日志,而不是二进制日志。3. master.info :保存 master的相关信息。不要删除它,否则,slave重启后不能连接 master。4. relay-log.info :包含 slave中当前二进制日志和中继日志的信息。 当设置 log_slave_updates 时,你可以让slave 扮演其它slave 的master。此时,slave把 SQL线程执行的事件写进行自己的二进制日志(binary log),然后,其它的slave 可以获取这些事件并执行它,从而有效缓解master的压力。如下:
*****在同步数据之前须保证ABC三台服务器数据完全同步*****Master:server6 slave1:server7 slave2:server8在Slave1上:Vim /etc/my.cnfserver-id=2log-bin=mysql-binbinlog-ignore-db=mysqlbinlog-do-db=testlog-slave-updates/etc/init.d/mysqld restartmysql> GRANT REPLICATION SLAVE ON *.* TO westos@'172.25.60.8' IDENTIFIED BY 'westos';mysql> show master status;
在slave3上:vim /etc/my.cnfServer-id=3/etc/init.d/mysqld start mysql> change master to master_host='172.25.60.7', master_user='westos',master_password='westos', master_log_file='mysql-bin.000001', master_log_pos=258;mysql> slave start;mysql> show slave status\G;查看线程是否开启正确
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜