敲出来的真理-mysql备份大全,备份命令,还原命令,定时备份

文章详细介绍了如何使用mysqldump命令进行全量数据库备份和还原,包括不同参数的用法,如备份全部或特定数据库、表等。此外,还阐述了基于binlog的日志增量备份原理和恢复过程。最后,给出了一个定时备份的脚本示例,涉及压缩和清理步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • mysqldump命令全量备份数

全量标准语句格式

mysqldump -h主机名 -P端口 -u用户名 -p密码 –database 数据库名 > 文件名.sql 

1.备份全部数据库的数据和结构

mysqldump -uroot -p123456 -A > /data/mysqlDump/mydb.sql

2.备份全部数据库的结构(加 -d 参数)

mysqldump -uroot -p123456 -A -d > /data/mysqlDump/mydb.sql

3.备份全部数据库的数据(加 -t 参数)

mysqldump -uroot -p123456 -A -t > /data/mysqlDump/mydb.sql

4.备份单个数据库的数据和结构(,数据库名mydb)

mysqldump -uroot-p123456 mydb > /data/mysqlDump/mydb.sql

5. 备份单个数据库的结构

mysqldump -uroot -p123456 mydb -d > /data/mysqlDump/mydb.sql

6. 备份单个数据库的数据

mysqldump -uroot -p123456 mydb -t > /data/mysqlDump/mydb.sql

7. 备份多个表的数据和结构(数据,结构的单独备份方法与上同)

mysqldump -uroot -p123456 mydb t1 t2 > /data/mysqlDump/mydb.sql

8. 一次备份多个数据库

mysqldump -uroot -p123456 --databases db1 db2 > /data/mysqlDump/mydb.sql

  1. 备份MySQL数据库某个(些)表

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

  • mysqldump命令全量还原数

在系统命令行中,输入如下实现还原:

mysql -uroot -p123456 < /data/mysqlDump/mydb.sql

  • 增量备份

增量备份的原理就是使用了mysql的binlog日志。

全量备份操作:

mysqldump -hhostname -uusername -ppassword --single-transaction  --master-data=2 databasename > backupfile.sql

运行后我们得到全量备份文件mydb.sql

—master-data

该选项将当前服务器的binlog的位置和文件名追加到输出文件中。

设置为1时:将会输出CHANGE MASTER 命令

设置为2时:输出的CHANGE MASTER命令前添加注释信息。

该选项将打开-lock-all-tables 选项,除非-single-transaction也被指定。

该选项自动关闭-lock-tables选项。

–-single-transaction

在mydb.sql文件中有注释信息:

-- CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000002', MASTER_LOG_POS=107;

是指备份后所有的更改将会保存到bin-log.000002二进制文件中。

在mydb库的t_user表中增加两条记录,然后执行flush logs命令。这时将会产生一个新的二进制日志文件bin-log.000003;

bin-log.000002则保存了全备过后的所有更改;既增加记录的操作也保存在了bin-log.00002中。

再在mydb库中的t_org表中增加两条记录,然后误删除t_user表和t_org表。t_org中增加记录的操作和删除表t_org和t_user的操作都记录在bin-log.000003中。

  • 增量还原

  1. 首先导入全备数据

mysql -hhostname -uusername -ppassword databasename < backupfile.sql

2、恢复bin-log.000002

mysqlbinlog bin-log.000002 |mysql -h10.6.208.183 -utest2 -p123  -P3310  

3、恢复部分 bin-log.000003

在general_log中找到误删除的时间点,然后更加对应的时间点到bin-log.000003中找到相应的position点,需要恢复到误删除的前面一个position点。

可以用如下参数来控制binlog的区间

--start-position 开始点 --stop-position 结束点

--start-date 开始时间 --stop-date 结束时间

找到恢复点后,既可以开始恢复。

mysqlbinlog mysql-bin.000003 --stop-position=208 |mysql -h10.6.208.183 -utest2 -p123 -P3310

  • 定时备份如下

  • 安装压缩工具

下载地址:https://7-zip.org/

  • 创建备份脚本

@echo off
:start

# 以时间为维度作为备份文件名的后缀
set dt=%time:~0,2%
if %dt% lss 10 set dt=%dt: =0%

set file_name=%date:~0,4%%date:~5,2%%date:~8,2%%dt%%time:~3,2%

# 在这里设置Mysql的安装路径;
set bin_path="D:\MySQL\MySQL Server 8.0\bin\"

# 这里设置备份的存储路径
set save_path="E:\DBBAK\mysql"

# 这里设置压缩软件的安装路径
set zip_path="C:\Program Files\7-Zip\7z.exe"

echo 开始备份,运行时间会有点长,请耐等待
# 1234为数据库密码
%bin_path%mysqldump.exe -uroot -p1234 wisefac> %save_path%\wisefac_%file_name%.sql

echo 开始压缩,运行时间会有点长,请耐等待
%zip_path% a -tzip -p123  %save_path%\wisefac_%file_name%.zip %save_path%\wisefac_%file_name%.sql

echo 开始清理sql格式备份
echo 清理SQL格式备份文件,只保留压缩包
del %save_path%\wisefac_%file_name%.sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值