mysql 增量 备份 恢复_mysql备份和恢复 增量备份

备份:

语法:msyqldump -u 用户名 -p 密码  数据库 表名 > 备份的文件名

--all-databases , -A

导出全部数据库。

备份多个表:

语法:msyqldump -u 用户名 -p 密码  数据库 表名1 表名2 > 备份的文件名

mysqldump -uroot -p123456 oldboy course1 course2 > /opt/two_tables.sql

-B参数:

导出多个数据库。参数后面所有名字参量都被看作数据库名。

0ed5ec801bff99de4f41a92254d33c33.png

3063baf002875718d6d21b696d86297d.png

备份msyql所有库和表–A  -B

Mysqldump –uroot –p’oldboy123’ –A  –B –events|gzip > /opt/a.sql.gz

备份所有库

mysqldump -uroot -poldboy -S /data/3306/mysql.sock -F -B -A|gzip > /server/backup/mysqlbak_$(date+%F).sql.gz

备份一个库

mysqldump -uroot -poldboy -S /data/3306/mysql.sock -F -B oldboy|gzip > /server/backup/mysqlbak_$(date+%F).sql.gz

其他参数说明:

60fd7faac725f9f42049ab03a380cf08.png

dda7cddf8f9f00e35b406284e0e05c7a.png

8c0382ee5db091dc0517f087f8e9d30d.png

生产场景:增加binlog日志文件和对应位置点,锁表

f86e5b090e5ceb797273e7bd6c0b183d.png

恢复:

faae99a96fc9ffefd063a0fa458006d6.png

2,

gzip -d mysql-bak.sql.gz

mysql -uroot -p'oldboy123' 库名(备份的时候没有指定-B 需要创建库加库名)oldboy < /opt/mysql_bak.sql

增量备份:

3c0fe8721ed216e92cb83b47ea9320b6.png

优点:恢复时间短,维护成本低

缺点:占用空间多,占用系统资源多,经常锁表影响用户体验

959e6750833b3899e4634127416ca485.png

622506ff8293e979a4012b7a3802e406.png

3a49b265420d21dbcf7b00d14024cda6.png

c3f6d70f9d943a92708557ebd107e993.png

#全备 并刷新binlog 记录binlog位置 --master-data=2

mysqldump -uroot -p123456 -S /data/3306/mysql.sock -F -B --master-data=2 oldboy|gzip > /opt/mysqlbak.sql.gz

#此时binlog日志

-rw-rw----. 1 mysql mysql 1087 6月 17 2018 mysql-bin.000013

-rw-rw----. 1 mysql mysql 150 6月 17 2018 mysql-bin.000014

-rw-rw----. 1 mysql mysql 150 6月 17 2018 mysql-bin.000015

-rw-rw----. 1 mysql mysql 150 6月 17 2018 mysql-bin.000016

-rw-rw----. 1 mysql mysql 150 6月 17 2018 mysql-bin.000017

-rw-rw----. 1 mysql mysql 150 6月 17 11:54 mysql-bin.000018

-rw-rw----. 1 mysql mysql 150 6月 17 12:03 mysql-bin.000019

#刷新binlog 重新生成一个新的binlog (这样新增的或者修改的数据就到了新的binlog中 ,方便后面查找binlog)

mysqladmin -uroot -p123456 -S /data/3306/mysql.sock flush-logs

#此时binlog日志

-rw-rw----. 1 mysql mysql 150 6月 17 2018 mysql-bin.000014

-rw-rw----. 1 mysql mysql 150 6月 17 2018 mysql-bin.000015

-rw-rw----. 1 mysql mysql 150 6月 17 2018 mysql-bin.000016

-rw-rw----. 1 mysql mysql 150 6月 17 2018 mysql-bin.000017

-rw-rw----. 1 mysql mysql 150 6月 17 11:54 mysql-bin.000018

-rw-rw----. 1 mysql mysql 150 6月 17 12:03 mysql-bin.000019

-rw-rw----. 1 mysql mysql 107 6月 17 12:03 mysql-bin.000020

状况一:oldboy库此时不小心被删除了怎么恢复

停止数据库的写入 flush tables with read lock;

然后查看备份文件的binlog位置

[root@localhost opt]# gzip -d /opt/mysqlbak.sql.gz

[root@localhost opt]# grep -i 'CHANGE' ./mysqlbak.sql

-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000019', MASTER_LOG_POS=107;

然后把数据库mysql-bin.000019后面的binlon拷贝到其它地方

cp /data/3306/mysql-bin.000024 /opt/

[root@localhost opt]# ll

总用量 8

-rw-r--r--. 1 root root 2219 6月 17 15:33 mysqlbak.sql

-rw-r-----. 1 root root 910 6月 17 15:39 mysql-bin.000024

解析sql,把binlog日志写入到文件中 查找并删除sql文件的【DROP DATABASE `oldboy`】 保存文件

mysqlbinlog -d oldboy /opt/mysql-bin.000024 > /opt/mysql-bin.000024.sql

恢复全被到数据备份到数据库中

mysql -uroot -p123456 -S /data/3306/mysql.sock < /opt/mysqlbak.sql

恢复增量备份到数据

mysql -uroot -p123456 -S /data/3306/mysql.sock oldboy < /opt/mysql-bin.000024.sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值