linux-mysql备份

 备份指定数据库:

mysqldump -u username -p mydatabase > backup.sql

全库备份:
mysqldump -uroot -p --all-databases  >alldb.sql

全库备份到压缩文件:
mysqldump -uroot -p --all-databases | gzip > /data/all_databases_backup.sql.gz

网上查询mysqldump支持热备份,但是会锁表。使用时可以停掉业务,进行备份。不用停止数据库服务。

如果想要考虑增量备份,则步骤如下:

1、配置开启日志

[mysqld]

log_bin = mysql-bin

server_id = 1

2、全量备份

mysqldump -uroot -p --all-databases | gzip > /data/all_databases_backup.sql.gz

--master-data=2:在全量备份文件中记录当前的二进制日志位置(以注释形式保存)。

mysqldump -uroot -p --all-databases --master-data=2 | gzip > /data/full_backup.sql.gz

使用 grep 查找二进制日志位置:

grep -m 1 "CHANGE MASTER TO" full_backup.sql

如果你没有使用 --master-data=2 参数,可以在全量备份完成后手动执行以下命令,记录二进制日志位置:

SHOW MASTER STATUS;

查询出目前修改点:position 和 备份文件名称

比如:下图则修改位置为3790448,文件为mysql-bin.000001

3、刷新日志

每次增量备份前可以刷新日志,这样日志会从一个新的文件开始记录,之后也方便知道下一次备份的起始位置。

mysql -uroot -p

FLUSH LOGS;

4、增量备份

压缩备份文件

mysqlbinlog --start-position=3790448 mysql-bin.000001 | gzip > /data/incremental_backup.sql.gz

5、恢复时使用全量备份和增量备份:

解压文件

gunzip full_backup.sql.gz

首先,使用全量备份恢复数据库到新的状态:

mysql -u root -p < full_backup.sql

然后,应用增量备份的binlog文件来恢复更新的数据:

mysql -u root -p --force < incremental_backup2.sql

其中使用 --force是为了保证跳过错误的语句。

6. 定期维护和管理备份文件

定期清理旧的备份文件:根据备份策略,定期清理不再需要的旧备份文件,释放存储空间。

参考链接:

https://www.abackup.com/enterprise-backup/mysql-database-incremental-backup-6540.html

https://www.jb51.net/database/3274363fq.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值