• 数据库主从恢复


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

    目录

    一.执行

    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

  • 相关阅读:
    springboot常用组件的集成
    UE5.3-基础蓝图类整理一
    C++最后一次实验及实验总结
    百万富翁 and 混淆电路
    【入门】.Net Core 6 WebApi 项目搭建
    java培训课程Spring MVC之文件上传
    Chinese-LLaMA-Alpaca-2模型的测评
    HCIP-三、VRRP+BFD
    bitmap基础介绍+holo实现离线UV计算
    网络空间搜索引擎及常用的端口漏洞
  • 原文地址:https://blog.csdn.net/kali_yao/article/details/126668737