mysql数据库部署回退文档_mysql数据库主从复制部署笔记

1 主从复制是mysql中数据库实时同步的一个常用做法了,今天我来给各位介绍一下关于mysql数据库主从复制部署一个过程,希望此例子对各位同学参考参考。2

3 数据库主从复制原理:4 数据库的主从复制就是从master数据库复制到slave数据库,在master与slave之间实现整个复制需要三个线程来完成,其中两个在slave端一个在master端。5 在master端必须打开binlog功能,因为从数据库需要获得主数据的完整的操作日志然后再自身上顺序的执行日志中的各种操作。6

7 主要步骤:8 1、将slave的io线程连上master,请求获得指定日志文件的指定位置之后的操作日志的内容;9 2、master获得slave的io线程请求后,将请求中读取到的指定日志的指定位置之后的内容返回给slave端的io线程,其中包括binlog 的位置以及名称;10 3、slave端的io线程在接收到信息后,将接收到的日志内容写入slave端的relay log文件的末端,并将binlog的文件名和位置记录到master-info文件中,以便下一次请求时向master提出请求;11 4、slave的sql线程会检测到relay log中新增的一些日志内容并加以解析成为可执行的query语句在slave端执行,从而达到master与slave端的数据一致性。12

13 配置方法:14 MASTER15 1、编辑master的配置文件/etc/my.cnf,在[mysqld]中添加以下内容:16 log-bin=mysql-bin #打开mysql的操作日志功能17 binlog_format=mixed #主从复制模式,混合模式(MBR)默认的18 binlog_cache_size=4M #设置binlog缓存大小19 max_binlog_size=300M #设置binlog文件大小,如果不设置,默认是1.1GB20 expire_logs_days= 3 #bin-log在主库保存的天数,主库产生的bin-log并不会自动删除,需要手动删除21

22 2、在master上对从数据库进行授权,建立复制用户的专有账户23 mysql>GRANT REPLICATION SLAVE ON *.* TO ‘repl’@'%’ IDENTIFIED BY ‘repl’;

24

25 3、对master的数据库进行备份26 在备份master数据时要对master执行锁表操作:27 mysql>FLUSH TABLES WITH READ LOCK;28 Query OK, 0 rows affected (0.00sec)29 mysql> reset master; //刷新数据库

30 Query OK, 0 rows affected (0.00sec)31 在不退出该终端的情况下(否则锁表会失效),再次开启一个终端直接打包压缩数据文件或者使用mysqldump工具来导出数据:32 #mysqldump -uroot -h 127.0.0.1 –opt -R XXXXXX > /data/mysql/backup/XXXXXX.sql33 #cd/data/mysql/backup/

34

35 4、备份数据库到从数据库36 #tar -czvf XXXXXX.tar.gz XXXXXX.sql37 #scp XXXXXX.tar.gz root@10.7.70.42:/data/mysql/backup38 可用相同的方法将数据库导入到其他的slave机器上,导入完成后在Master的命令终端上执行一下解锁命令:39 mysql>UNLOCK TABLES;40 mysql>show processlist;41 mysql>show master statusG; #查看主服务器的bin-log 和id42

43 5、设置slave主机44 编辑slave从数据库的/etc/my.cnf配置文件,前面的配置参数与主的一样,都是根据硬件内存进行参数调整:45 #binlog_format=mixed46 #required unique id between 1 and 2^32 – 1

47 #defaults to 1 if master-host is not set

48 #but will not function as a master ifomitted49 server-id=2 //slave 的编号 注意不要重复

50 read_only=1

51 binlog_format=mixed52 binlog_cache_size=4M //设置binlog缓存大小

53 max_binlog_size=300M //设置binlog文件最大体积

54

55 在slave主机上新建一个数据库,导入主数据库的数据:56 mysql>create database XXX;57 mysql>use XXX;58 mysql>setnames utf8;59 mysql>source /XXXXXX/XXX.sql60

61 设置从数据库的主master:62 mysql>CHANGE MASTER TO MASTER_HOST=’XX.XX.XX.XX’, //主数据库的ip地址

63 ->MASTER_USER=’repl’,64 ->MASTER_PASSWORD=’repl’,65 ->MASTER_LOG_FILE=’mysql-bin.000001′, //这里根据主服务器的binlog和id设置

66 ->MASTER_LOG_POS=107; //67 设置完成后,开启slave服务:68

69 mysql>slave start;70 Query OK, 0 rows affected (0.00sec)71 mysql> show slave statusG; //显示slave的状态

72 从输出结果中若:Slave_IO_Running和Slave_SQL_Running如果都为Yes时,表示配置成功73 在线添加多个从库:74 原理:若直接在主数据库上再次添加从库会执行停止mysql 的服务进行锁表操作从而影响正常的工作流程,75 故在线添加从数据库可以通过备份旧的从数据库达到数据库复制的目的。再次利用change master 可达到在线添加从数据库的目的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值