数据库主从恢复

发现数据库主从异常,从库与主库数据不一致,现无法正常复制,需备份主库数据更新到从库

目录

一.执行

1.数据库备份(主从)

2.停止从库并删除数据库

3.修改从库偏移量,指定数据库主库

二.测试

三.回滚方案

1,清空从库业务数据库:

2.通过从库数据备份恢复从库数据


一.执行

1.数据库备份(主从)

注:全量,默认不备份数据库的默认4个库

## 通过定时任务在凌晨作远程备份(可以写一个shell)

~]# crontab  -2 

* 24 * * *   xxxx(下面这条命令)       # 由于我是测试环境使用人所以直接导出,从库可以直接执行,但是主库尽量在晚上

## 备份主库

~]# /usr/local/mysql/bin/mysqldump -uroot -pxxx(密码) --default-character-set=utf8mb4 --single-transaction --master-data=2 --insert-ignore --force -q --all-databases > dbdump_202292.sql

## 备份从库

~]# /usr/local/mysql/bin/mysqldump -uroot -pxxx(密码) --default-character-set=utf8mb4 --single-transaction --master-data=2 --insert-ignore --force -q --all-databases > slave_202292.sql

--default-character-set 指定导出数据时采用何种字符集

--single-transaction   当前版本的MySQL只可以对innodb 引擎保证一致性,导出过程中不会锁表

#--master-data=2       是把change log 那行注释掉,=1 是没有注释

#--insert-ignore        在插入行时使用INSERT IGNORE语句.

#--force            在导出过程中忽略出现的SQL错误

#-q --all-databases       导出全部数据库

# 注:把sql备份文件拷贝到从上

2.停止从库并删除数据库

注:由于是一键部署的所以不知道密码

~]# mysql -uroot -pxxx(密码)

stop slave; 

drop database xxx(库名);   # 注意不要删除4个默认库

xxxx

change master to master_auto_position=0;

3.修改从库偏移量,指定数据库主库

##1.查看数据库备份文件中的bin_long日志名 偏移量参数

~]# cat dbdump_202292.sql | grep MASTER_LOG_FILE | grep mysql-bin.000

-- CHANGE MASTER TO MASTER_LOG_FILE='xxxxxx(binlog名)', MASTER_LOG_POS=xxxxx(偏移量); 

# 2.导入主库数据

~]# mysql -uroot -pmysql_P@s5

#3.先启动主从的配置

> reset slave;

#4.修改主从配置

change master to

master_host="ipxxx.xxx.xxx",

master_user="xxx(用户)",       # 注意该用户必须能够远程连接(主库必须存在)

master_password="xxx(密码)",

master_log_file="mybinlog.000010", # binlog名

master_log_pos=944713719;      # 偏移量

##启动主从

> start slave;

二.测试

1.查看从库slave状态:

~]# mysql -uroot -pxxx(密码)

mysql> show slave status\G;

......

     Slave_IO_Running: Yes  ##IO和SQL线程显示OK 说明主从连接建立成功

     Slave_SQL_Running: Yes

......

三.回滚方案

1,清空从库业务数据库:

~]# mysql -uroot -pmysql_P@s5

stop slave; 

drop database  archive;   ##依次删除从库数据库

drop database common;

drop database ds_job;

drop database feedcenter;

drop database iam;

drop database open_tapd_v2;

drop database stat;

drop database sys_tapd3;

drop database tapd_common;

drop database tapd_log;

drop database tapd_oss;

drop database tcloud_100001;

change master to master_auto_position=0;

2.通过从库数据备份恢复从库数据

~]# mysql -uhost -p'xxxx' < slave_202292.sql

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值