复制
1.复制类型
基于行的复制、基于语句的复制
2.复制原理
通过主库上记录二进制日志、在备库重放日志的方式来实现异步的数据复制。并且无法保证主备之间的延迟。
3复制常用的用途
数据分布
负载均衡:将读操作分布到多个服务器上,实现对读密集型应用的优化,一个机器名只想多个ip地址、网络负载均衡解决方案、Linux虚拟服务器等方法。
备份:复制不等于备份,是备份的补充。
高可用性和故障切除:复制能够帮助应用程序避免mysql单点失败,缩短故障宕机时间。
mysql升级测试:使用一个更高版本的mysql作为悲苦,保证在升级全部实例前,查询能够在备库按照预期执行。
4复制如何工作
1)在主库上把数据更改记录到二进制日志中。
2)备库将主库上的日志复制到自己的中继日志中。
3)备库读取中继日志中的事件,将其重放到备库数据之上。
5配置复制
1)在每台服务器上创建复制账号;
2)配置主库和备库;
3)通知备库连接到主库并从主库复制数据
6给一个已经运行的服务器配置备库
server1:192.168.0.1 server2:192.168.0.2
1)创建复制账号
mysql>grant replication slave,replication client on *.* to relp@'192.168.0.%' identified by 'p4ssword';
//主库和备库都创建
2)配置主库和备库
主库server1的my.cnf:
log_bin = mysql-bin //开启bin日志
server_id = 10 //指定唯一的服务器id
从库server2的my.cnf:
log_bin = mysql-bin
server_id = 2
relay_log = /var/lib/mysql/mysql-relay-bin//指定的中继日志的位置和命名
log_slave_updates = 1//语序备库将其重放的事件也记录到自身的二进制日志中
read_only = 1//阻止任何没有特权权限的线程修改数据
7.启动复制
mysql>change master to master_host='server1',
->master_user = 'repl',
->master_password='p4ssword',
->master_log_file='mysql-bin.000001',
->master_log_pos=0;//日志开头读起
//启动
mysql>start slave;
//检查
mysql>show slave status\G
网友评论