mysql innobackup_mysql主从配置,innobackup备份

目的: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 copy到19

--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 id要跟20不一样my.cnf server_id xxx

初始化数据库

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值