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
备份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中。
增量还原
首先导入全备数据
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%.sqlecho 开始压缩,运行时间会有点长,请耐等待
%zip_path% a -tzip -p123 %save_path%\wisefac_%file_name%.zip %save_path%\wisefac_%file_name%.sqlecho 开始清理sql格式备份
echo 清理SQL格式备份文件,只保留压缩包
del %save_path%\wisefac_%file_name%.sql