设为首页 收藏本站
查看: 1230|回复: 0

[经验分享] mysql主从配置,innobackup备份

[复制链接]

尚未签到

发表于 2018-10-11 08:17:53 | 显示全部楼层 |阅读模式
  目的:19 作为 20 的从库
  20上做一次全备份
  /usr/bin/innobackupex-1.5.1--user=root --password=`cat /etc/savep` --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock  --slave-info--stream=tar /usr/local/backup | gzip >/usr/local/backup/db20.tar.gz
  将 db20.tar.gz copy19
  --slave-info 保存主库日志文件以及偏移
  --stream=tar/usr/local/backup | gzip > /usr/local…压缩方式
  [ 在使用参数stream=tar备份的时候,你的xtrabackup_logfile可能会临时放在/tmp目录下,多实例 xtrabackup在备份的时候会生成固定文件/tmp/xtrabackup_logifle,导致互相覆盖。 --tmpdir= ]
  19上启动新的实例


  •   新建/etc/myNew.cnf 注意server>
  •   初始化数据库
  3.           scripts/mysql_install_db --user=mysql --datadir=/data/mysqlNew/dataNew  --basedir=/usr/local/mysql

  •   启动新的实例待会用于做从库
  5.           /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/myNew.cnf --user=mysql &
  19上安装xtrabackup
  旧版本5.1
  wgethttp://115.182.52.17/software/xtrabackup-1.6.5-328.rhel6.x86_64.rpm
  rpm -ivh xtrabackup-1.6.5-328.rhel6.x86_64.rpm  --nodeps (rpm方式安装xtrabackup.)
  新版本5.6
  wget -O/root/soft/percona-xtrabackup-2.2.11-1.el6.x86_64.rpm
  http://115.182.52.17/software/percona-xtrabackup-2.2.11-1.el6.x86_64.rpm
  rpm -ivh percona-xtrabackup-2.2.11-1.el6.x86_64.rpm  --nodeps
  19上恢复主库的冷备份数据

  •   解压
  2.           mv db20.tar.gz /usr/local/backup/
  3.           tar -izxvf db20.tar.gz
  这里tar解包必须使用-i参数,否则解压出来的文件只有一个backup-my.cnf

  •   一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。--apply-log的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件使数据文件处于一致性状态。
  5.           innobackupex --apply-log . --user=root --password=`cat /etc/savep(不存在密码就不需要这个项)` --defaults-file=/etc/myNew.cnf

  •   拷贝数据文件
  7.           mysqladmin -uroot -S /tmp/mysqlNew.sock shutdown –p 停库删除
  8.           cd /data/mysqlNew/dataNew/
  9.           rm -rf *
  10.       mv /usr/local/backup/* .
  11.       chown -R mysql.mysql *
  12.       mysqld_safe  --defaults-file=/etc/myNew.cnf --user=mysql &
  tail -f log.err 查看是否有报错
  进数据库查看数据库是否跟主库一样,
  至此已经把20的数据库冷备份恢复到19了
  启动同步

  •   确定主库冷备份的的binlog位置
  2.           cd /data/mysqlNew/dataNew/
  3.           cat xtrabackup_binlog_info  (如果冷备份是从主库直接备份的,则使用这个来确定主库的binlog位置)
  4.           或者catxtrabackup_slave_info (如果冷备份是从主库的另外一个从库简介备份的,则使用这个来确定主库的binlog位置)

  •   进入新实例,新建同步
  6.           mysql -uroot -S /tmp/mysqlNew.sock -p
  7.           mysql>change master to
  8.           -> master_host='10.0.0.20',
  9.           ->master_user='re4399pl',
  10.       ->master_port=3306,
  11.       ->master_password='re4399plpassword',
  12.       ->master_log_file='mysql-bin.000006',
  13.       ->master_log_pos=110632233;
  上面这步需要现在主库上创建帐号
  GRANT FILE,SELECT,REPLICATION SLAVE ON*.* TO 're4399pl'@'10.0.0.%'IDENTIFIED BY 're4399plpassword';
  master_log_filemaster_log_pos 就是五.1 中的内容

  •   启动同步
  15.       mysql>start slave;
  16.       mysql> show slave status\G
  17.       如果要重启库,
  18.         1,mysqladmin –uroot –pxxxx   2,mysqld_safe –user=mysql
  其他注意点

  •   注意多个实例的下的不同data目录和 my.cnf 文件
  •   从库是不记录Binlog的如果需要做链式同步,从库开启binlog :log_slave_updates=1
  •   skip-slave-start 有这个参数,数据库重启后不会自动进行同步
  •   主从废弃后,应该及时 stop slave 并 reset slave 免得忘记下次又同步
  关于同步到从库并过滤部分表的做法
  在从库上添加
  replicate-wild-do-table=diygame_admin.%
  replicate-wild-ignore-table=diygame_online.diygame_game_data%
  replicate-wild-do-table=diygame_online.%
  同步后重定向到另外一个库
  在从库上添加
  replicate-wild-do-table=diygame_admin.diygame_template_preview
  replicate-wild-do-table=3387_base_admin.%
  replicate-rewrite-db=diygame_admin->3387_base_admin
  replicate-rewrite-db,及仅能重定向库,不能重定向表,而且还does not workwith cross-database updates
十 定时备份
  0 0 * * * /cron/db_backup.sh > /tmp/db_backup.log 2>&1
  cat /cron/db_backup.sh
  #!/bin/bash
  PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/mysql/bin:/usr/local/sbin:/usr/sbin:/sbin
  DATE=`date +%Y%m%d`
  IPADDR=`/sbin/ifconfig em1|grep 'inet addr'|awk '{print $2}'|awk -F ":" '{print $2}'`
  passwd=`cat /etc/savep`
  NAME=db185_hebi
  mkdir /tmp/$NAME
  /usr/bin/innobackupex-1.5.1 --user=root --password=`cat /etc/savep` --defaults-file=/etc/my.cnf --slave-info   --tmpdir=/tmp/$NAME/ --stream=tar /usr/local/backup | gzip > /usr/local/backup/$NAME-$DATE-$IPADDR.tar.gz
  cd /usr/local/backup/
  /usr/local/bin/rsync -R -avz --progress --password-file=/etc/49cn_pass $NAME-$DATE-$IPADDR.tar.gz  49cn@13.7.3.9::49cn/49cn
  find /usr/local/backup/ -type f -mtime +7 | xargs rm -f


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-620153-1-1.html 上篇帖子: MYSQL多实例配置方法 mysqld_multi方法 下篇帖子: MySQL 5.7.17 VS MariaDB 10.1.19 Enterprise性能压测
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表