mysql备份和恢复

mysqldump:
https://www.cnblogs.com/chenmh/p/5300370.html
mysqldump -uroot -p123.com --lock-all-tables --flush-logs --databases test > /mysqlbackup/test_`date +%F`.sql
##--lock-all-tables:备份时为所有表请求加锁
##--flush-log:备份之前刷新日志

该命令会导出包括系统数据库在内的所有数据库:
mysqldump -uroot -proot --all-databases >/tmp/all.sql

导出db1、db2两个数据库的所有数据:
mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql

导出db1中的a1、a2表:
mysqldump -uroot -proot --databases db1 --tables a1 a2  >/tmp/db1.sql

条件导出,导出db1表a1中id=1的数据:
mysqldump -uroot -proot --databases db1 --tables a1 --where='id=1'  >/tmp/a1.sql

只导出表结构不导出数据,--no-data:
mysqldump -uroot -proot --no-data --databases db1 >/tmp/db1.sql

跨服务器导出导入数据:
mysqldump --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2

将h1服务器中的db1数据库的所有数据导入到h2中的db2数据库中,db2的数据库必须存在否则会报错:    ##加上-C参数可以启用压缩传递
mysqldump --host=192.168.80.137 -uroot -proot -C --databases test |mysql --host=192.168.80.133 -uroot -proot test


压缩备份:
mysqldump -uroot -proot --databases abc 2>/dev/null |gzip >/abc.sql.gz
还原
gunzip -c abc.sql.gz |mysql -uroot -proot abc


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Percona Xtrabackup实现MySQL增量备份
##一般都是在备库上执行备份,需要备库重搭的时候在主库备份然后恢复到备库
1.创建备份用户
mysql> grant process,reload,lock tables,replication client on *.* to 'backup'@'localhost' identified by 'backup@2017';
mysql> flush privileges;

完整备份:
mkdir -p /data/backup/{full,inc1,inc2}   ##创建备份储存目录
innobackupex --defaults-file=/usr/local/mysql/data/my.cnf --host=localhost --user=backup --password=backup@2017 --port=3306 --parallel=6 --no-timestamp /data/backup/full   ##完整备份;备份到full目录

第一次增量备份:
innobackupex --defaults-file=/usr/local/mysql/data/my.cnf --host=localhost --user=backup --password=backup@2017 --port=3306 --parallel=6 --no-timestamp --incremental /data/backup/inc1 --incremental-basedir=/data/backup/full
##其中用--incremental-basedir 指定上次全量备份目录

第二次增量备份:
innobackupex --defaults-file=/usr/local/mysql/data/my.cnf --host=localhost --user=backup --password=backup@2017 --port=3306 --parallel=6 --no-timestamp --incremental /data/backup/inc2 --incremental-basedir=/data/backup/inc1
##其中用--incremental-basedir指定上次增量备份目录

查看三次备份的位置点:


恢复思路:
按照时间顺序分别将各个增量备份合并到全量备份,然后进行copy back操作

预备全量备份:
innobackupex --apply-log --redo-only /data/backup/full/

合并第一次增量备份:
innobackupex --apply-log --redo-only /data/backup/full/ --incremental-dir=/data/backup/inc1/

合并第二次增量备份:
innobackupex --apply-log --redo-only /data/backup/full/ --incremental-dir=/data/backup/inc2/

恢复完整备份:
innobackupex --defaults-file=/usr/local/mysql/my.cnf --copy-back /data/backup/full/
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值