• mysql数据库托从


    问题

    线上数据库从库与主库的数据量差距很大,导致从库的数据无法追上主库,现在需要重新在一个正常的从库上拖出一份数据,重新搭建主从架构(初步怀疑导致主从数据差异过大的原因为磁盘性能低导致)

    解决方案

    操作时间:业务低峰期,23:30 准备:一个正常可以使用的从库,将上面的数据全部备份。找一台已经故障的从库,将数据目录全部清理,新买一块固态盘作为新的数据盘(由于数据量过大,强烈建议使用固态盘)

    1. 安装数据库备份工具,因为数据库中的数据量达到270G在使用传统的备份工具mysqldump备份,时间耗费比较长,综合考虑,我们选择比较熟悉的第三方工具xtrabackup进行备份恢复

      yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
      wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm 
      yum localinstall -y percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm

    2. 配置两台机器间无秘钥登陆认证
    3. 停止要备份数据库的主从关系(主要注意当前主从binlog及pos信息,以备恢复是使用)
    4. 开始备份数据库(下面命令中,需要安装pv工具)

      innobackupex --defaults-file=/data/3316/my.cnf --user=root --password=mysql422805 --host=10.9.180.188 --port=3316 --stream=tar /mnt/backup/backup_mysql 2>>/tmp/mysqlback.log |pv | ssh -p 58022 -c aes192-cbc -o 'MACs umac-64@openssh.comroot@10.9.90.55 "cat - > /mysql_slave_data/mysql3306/dx_`date +%F_%H_%M_%S`.tar”

    5. 进行数据库恢复
      将备份的数据进行解压
      合并xtrabackup_log_file和备份的物理文件

      innobackupex --defaults-file=./my.cnf --apply-log --use-memory=10G ./

      修改mysql配置文件
      启动数据库
      配置主从关系
      CHANGE MASTER TO MASTER_HOST='10.9.142.206', MASTER_USER='meishi',MASTER_PASSWORD='meishi',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.002198',MASTER_LOG_POS=796951609;
      查看数据是否正常
      进行参数调优,开启多线程
      show global variables like 'slave_parallel_workers';
      set global slave_parallel_workers=8;

    6. 等待从库追赶差异数据,确认数据库托从成功。
  • 相关阅读:
    函数柯里化
    常用正则
    校验table行内的form编辑
    前端代码 读取excel表格数据
    cocos2d-x 帧动画学习
    Linux 下vim配置
    Android开发笔记 二
    cocos2d-x CCDictionary类学习
    Android开发笔记
    Cococs2d-x移植到Window下的问题
  • 原文地址:https://www.cnblogs.com/dzc-/p/11550613.html
Copyright © 2020-2023  润新知