记一次生产中数据库主从备份,主库里有老数据

由于我们生产环境是单库,后面甲方提需求让把数据库做备份,每天增量备份,一周全量备份,全量备份的覆盖周期为一个月。搞了一天算是搞定,其实操作的时间不长,大部分时间都浪费在老数据的导入和导出了。

主库的地址是:61.112.51.83 端口是:13306

从库的地址是:61.112.51.92

同步的数据库名称:piiums

数据库均使用root账号进行操作,密码为:123456

一.导主库的老数据至新库

从库是新的数据库,没有数据,老数据需要先导入到新库,再进行主从,所以要对老库进行锁库,只能查看不能操作数据库,否则在你导数据的时候,老库的数据会有变动,从而和新库的数据有出入。

mysql> flush tables with read lock;

使用mysqldump导出主库的老数据,数据大概有60多g,导出的很快,又把sql文件放到从库的服务器。

./mysqldump -uroot -p123456 piiums > piiums.sql

使用mysql命令导入到从库的空库里,导出的时候其实很快,导入数据大概花了5个小时

./mysql -uroot -p123456 piiums < piiums.sql

二.配置主库

老数据导入完成,现在开始配置主从,在主库的/etc/my.cnf的[mysqld]模块下添加

log-bin=mysql-bin
server-id=1
说明:
1) log-bin=mysql-bin启用Binary Log,会在数据文件夹中生成一系列的滚动文件,类似:mysql-bin.000002
2) server-id=1中的1可以任定义,只要是唯一的就行,为了与其它Master和Slave进行区别;

创建用于复制操作的用户及赋权限

mysql>create user 'repl'@'%' identified by '123456';

mysql>grant replication slave on *.* to 'repl'@'%';

重启mysql服务,查看Master状态,里面的FIle和Position后面从库设置那边会用到

mysql>show master status;

+------------------+----------+--------------+------------------+
| File            | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000028 |      29 |             |                 |
+------------------+----------+--------------+------------------+

三.配置从库

在从库的/etc/my.cnf下的[mysqld]模块下增加

[mysqld]
server-id=2

说明:id只要和主库的id不同就可以

重启数据库,登录数据库,执行下面的脚本

mysql>change master to
master_host='62.112.51.83',
master_user='repl',
master_password='123456',
master_port=13306,
master_log_file='mysql-bin.000028',
master_log_pos=29;

启动slave

mysql>start slave;

检查主从同步状态,执行下面的脚本命令,其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES

mysql>show slave status\G;

 

配置成功后不要忘记将主库的锁打开

mysql>unlock tables;

在主库添加一条数据,相应的从库中业有这条数据,则成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值