mysql copy_mysql的复制

MYSQL的复制

复制原理

复制原理分为三个步骤:

主服务器把数据更新记录到二进制日志中

从服务器把主服务器的二进制日志拷贝到自己的中继日志中

从服务器重做中继日志中的时间,把更新应用到自己的数据库上

从服务器有两个进程:一个是I/O线程,负责读取主服务器的二进制日志,并将其保存为中继日志;另一个是SQL线程,复制执行中继日志

复制的流程

1配置master;

2:配置slave;

3:将slave连接到master

复制的具体操作

配置master

1)修改/etc/m.cnf 配置master

server-id=1

log-bin=master-bin

log-bin-index=master-bin.index

解析:log-bin 给出了二进制产生的文件的基本名;login-bin-index给出了二进制索引文件的文件名。每一个服务器都应该有唯一的server-id。

修改之后重启master使配置生效

2)在master创建一个复制用户

mysql> create user repl_user;

Query OK, 0 rows affected (0.00 sec)

mysql> grant replication slave on *.* to rel_user identified by 'redhat';

Query OK, 0 rows affected (0.00 sec)

解析:replication slave权限并没有什么特别之处,只是让这个用户能够从master上取的二进制日志的转储数据。

配置slave

1)配置my.cnf文件

server-id=2

relay-log-index=slave-relay-bin.index

relay-log=slave-relay-bin

2)链接master和slave

将slave指向master,让它直到从哪里复制,为次需要知道master的主机名,端口号,master上拥有replication slave权限的帐号和密码

mysql> change master to master_host='master-1', master_port=3306, master_user='repl_user', master_password='redhat';

Query OK, 0 rows affected (0.27 sec)

然后执行start slave开始执行复制

观察复制的动作

mysql> select * from ll;

mysql> flush logs;

Query OK, 0 rows affected (0.30 sec)

Flush logs 命令以强制轮换二进制日志,从而得到一个完整的二进制文件

mysql> show binlog events\G 检查二进制文件里有哪些事件

mysql> show master status; 命令来查看当前正在写入的是哪个二进制文件

mysql> show master status;

+-------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+-------------------+----------+--------------+------------------+

| master-bin.000004 | 106 | | |

+-------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

析:reset master(在master上)删除所有的二进制文件,确保没有slave链接到该master上;

Reset slaves(在slave上),先执行stop slave命令,确保slave上没有活动的复制

62bc1bf4d8d2f98c23f830af3efc871e.png

0bd027e8b49d1254666bdc4b6397e441.png

复制后续

刚才的复制并没有说明复制从哪里开始,所以slave将从他开始,读取master的二进制文件。这里change master to命令有两个有用的参数,即master_log_file

Master_log_pos。使用这些参数指定master开始发送时加的binlog位置,而不是从头开始。

> change master to master_host='172.25.254.224',master_port=3306,master_user='repl_user',master_password='redhat',master_log_file='master-bin.000004',master_log_pos=106;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值