Chinaunix

标题: [关于备份]求问大牛mysql备份方式 [打印本页]

作者: hl791708501    时间: 2017-05-26 14:22
标题: [关于备份]求问大牛mysql备份方式
目前是这样的,线上跑的都是2个mysql,数据大小分别是1~2T,在2个机器上。想把2个机器上的数据库重新整个备份方案。
放到一台机器上,当做多前2台的从库(双实例),两主一从的方式,并且,两台主库上都有innodb的引擎和myisam引擎。
想问一下大牛们怎么备份比较适合。挺急!!!!

作者: hl791708501    时间: 2017-05-26 16:16
求教啊。。。。就是一台mysql里面同时存在innodb和myasim引擎的时候。该用什么方法备份比较好

作者: vagrant_1220    时间: 2017-05-27 10:26
建议分别创建两个从库, 解决单点问题,主库异常,直接主从切换,同时使用xtraback在两个从库建立增量备份机制,做到物理备。
作者: lyhabc    时间: 2017-05-31 13:53
备份恢复三步
1. 备份 backuped阶段 在从库做全备  如果不需要时点还原可以加 --no-lock,不获取binlog点
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --no-timestamp --parallel=2  /data/backup/mysql/$(date +%Y%m%d)/



#流式压缩
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --no-timestamp --parallel=2 --stream='tar' /data/backup/mysql/$(date +%Y%m%d)/|gzip - > /data/backup/mysql/$(date +%Y%m%d).tar.gz
解压
tar -izxvf /data/backup/mysql/20170306.tar.gz -C tttt/



2. 备份 prepare阶段 这一步一般在还原的时候才做 应用日志 就是crash recovery过程 ,生成ib_logfile文件,--use-memory表示innodb buffer pool size
innobackupex --apply-log --use-memory='1G' /data/backup/mysql/$(date +%Y%m%d)/




3. 还原 mysqld必须关闭,如果是--import部分恢复,则不能关闭,还原到目标目录要清空
假设新开一台新的mysql机器做还原
/etc/my.cnf:读取my.cnf取得datadir路径,innobackupex会将数据文件和日志文件自动分好
/tmp/20170305/:备份目录
(1)关闭mysql
/etc/init.d/mysql stop
(2)备份还原机器上的auto.cnf,或者自己mv拷文件的时候注意保留还原机器上的auto.cnf
mv /data/mysql/mysql3306/data/auto.cnf /tmp/
(3)清空data目录和logs目录
rm -rf ./data/*
rm -rf ./logs/*
(4)还原   可以不用--copy-back ,直接mv过去也行
innobackupex --defaults-file=/etc/my.cnf --copy-back /tmp/20170305/
(5)创建eror log和slow log
touch /data/mysql/mysql3306/logs/error.log
touch /data/mysql/mysql3306/logs/mysql.slow
(6)把auto.cnf还原回去
mv /tmp/auto.cnf /data/mysql/mysql3306/data/
(7)修改datadir目录权限
chown -R mysql:mysql /data/mysql/mysql3306/
(启动mysql进行验证
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &
作者: action08    时间: 2017-05-31 21:57
数据库确实麻烦,最好是能有条件离线操作




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2