mysql复制

复制

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  

你可能感兴趣的:(mysql复制)