mysql主从配置,innobackup备份
2017-01-04 11:44
507 查看
目的: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.1wgethttp://115.182.52.17/software/xtrabackup-1.6.5-328.rhel6.x86_64.rpmrpm -ivh xtrabackup-1.6.5-328.rhel6.x86_64.rpm --nodeps (rpm方式安装xtrabackup.)新版本5.6wget -O/root/soft/percona-xtrabackup-2.2.11-1.el6.x86_64.rpmhttp://115.182.52.17/software/percona-xtrabackup-2.2.11-1.el6.x86_64.rpmrpm -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 -p7. mysql>change master to8. -> 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\G17. 如果要重启库,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_previewreplicate-wild-do-table=3387_base_admin.%replicate-rewrite-db=diygame_admin->3387_base_adminreplicate-rewrite-db,及仅能重定向库,不能重定向表,而且还does not workwith cross-database updates
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
初始化数据库
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.1wgethttp://115.182.52.17/software/xtrabackup-1.6.5-328.rhel6.x86_64.rpmrpm -ivh xtrabackup-1.6.5-328.rhel6.x86_64.rpm --nodeps (rpm方式安装xtrabackup.)新版本5.6wget -O/root/soft/percona-xtrabackup-2.2.11-1.el6.x86_64.rpmhttp://115.182.52.17/software/percona-xtrabackup-2.2.11-1.el6.x86_64.rpmrpm -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 -p7. mysql>change master to8. -> 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\G17. 如果要重启库,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_previewreplicate-wild-do-table=3387_base_admin.%replicate-rewrite-db=diygame_admin->3387_base_adminreplicate-rewrite-db,及仅能重定向库,不能重定向表,而且还does not workwith cross-database updates
十 定时备份
0 0 * * * /cron/db_backup.sh > /tmp/db_backup.log 2>&1cat /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
相关文章推荐
- mysql备份还原-xtrabackup2.2.3工具innobackupex脚本用法详解
- mysql数据库备份设置延时备份方法(mysql主从配置)
- windows server2012下配置mysql主从备份
- mysql主从备份配置
- mysql主从备份功能配置与測试
- MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程
- mysql备份还原-xtrabackup2.2.3工具innobackupex脚本用法详解
- Mysql升级以及主从备份集群配置
- mysql innobackupex xtrabackup 大数据量 备份 还原(转)
- MySQL配置主主及主从备份
- MySQL主从配置,实现数据备份。
- mysql主从单向和双向备份配置
- MySQL 配置主从备份
- MySQL-五种日志(查询日志、慢查询日志、更新日志、二进制日志、错误日志)、备份及主从复制配置
- Mysql主从备份配置
- mysql主从备份配置及常见问题
- mysql数据库备份设置延时备份方法(mysql主从配置)
- mysql备份工具innobackupex,xtrabackup-2.1安装与测试
- MYSQL主从数据库同步备份配置
- MySQL配置主从备份