windows server mysql数据库定时备份
原创大约 4 分钟windowsmysql
windows服务器定时备份mysql数据库
新增定时脚本
将以下内容保存到automysqldump.bat
文件中
提示
下方变量中填写需要备份的mysql信息
@echo off
::获取日期
set "yMd=%date:~,4%%date:~5,2%%date:~8,2%"
::获取时间
set "hms=%time:~,2%%time:~3,2%%time:~6,2%"
set database="database-name"
set host="127.0.0.1"
set port="3306"
set user="root"
set passwd="password"
set basedir="D:\mysql-5.7.22-winx64"
set backupdir="D:\mysql-backup"
:: 保留天数
set saveday = "30"
set otherarg="-B -F -R --single-transaction --quick --master-data=2"
::备份命令行
"%basedir%\bin\mysqldump.exe" -u%user% -p%passwd% -h%host% -P%port% %otherarg% %database% > %backupdir%\%database%-%yMd%.sql
:: 删除30天以前备份文件, 并将删除日志添加到备份文件log.log下面
forfiles /p %backupdir% /d -%saveday% /s /m "*.sql" /c "cmd /c del @file && echo @file has been deleted at %yMd%%hms%>> %backupdir%\log.log"
新增定时任务
相关信息
在此之前,你可以先执行或检查脚本正确性,保证定时任务执行时,不会出现错误
打开 控制面板 - 管理工具 - 任务计划程序
点击 任务计划程序库 - 创建基本任务
输入名称和描述(可不填)
触发器选择你需要脚本运行的时间周期
操作项选择启动程序, 程序和脚本选择刚刚新建的脚本文件
完成后,将在定时任务界面看到你新建的定时任务
mysqldump 常用参数
参数 | 简写 | 含义 | 例 |
---|---|---|---|
--host | -h | mysql服务器IP地址 | |
--port | -P | mysql服务器端口号 | |
--user | -u | mysql服务器用户名 | |
--pasword | -p | mysql服务器密码 | |
--databases | -B | 指定要备份的数据库 | [1] |
--all-databases | -A | 备份mysql服务器上的所有数据库 | |
--tables | 指定需要导出的表名,会覆盖 --databases 或 -B 参数 | [2] | |
--all-tablespaces | -Y | 导出全部表空间 | [3] |
--no-tablespaces | -y | 不导出表空间 | [4] |
--add-drop-database | 每个数据库创建之前添加 drop 数据库语句 | [5] | |
--add-drop-table | 每个数据表创建之前添加 drop 数据表语句 | [6] | |
--add-locks | 备份数据库表时锁定数据库表 | ||
--lock-tables | -l | 备份前锁定所有表 | |
--no-create-db | -n | 只导出数据,而不添加 CREATE DATABASE 语句 | |
--no-create-info | -t | 只导出数据,而不添加 CREATE TABLE 语句 | |
--no-data | -d | 不导出任何数据,只导出数据库表结构 | |
--force | -f | 当出现错误时仍然继续备份操作 | |
--version | -V | 输出 mysqldump 版本信息 | |
--verbose | -v | 输出多种平台信息 | |
--xml | -X | 导出 XML 格式 | |
--help | -h | 显示帮助信息 | |
--compatible | 导出的数据将和其它数据库或旧版本的 MySQL 相兼容。值可以为 ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options 等。要使用几个值,用逗号将它们隔开。它并不保证能完全兼容,而是尽量兼容。 | ||
--compact | 压缩模式,产生更少的输出,去掉注释和头尾等结构 | ||
--complete-insert | -c | 使用完整的 insert 语句(包含列名称)。这么做能提高插入效率,但是可能会受到 max_allowed_packet 参数的影响而导致插入失败。 | |
--compress | -C | 在客户端和服务器之间启用压缩传递所有信息 | |
--events | -E | 导出事件 | |
--flush-logs | -F | 开始导出之前刷新日志 | |
--default-character-set | 设置默认字符集,默认值为utf8 | ||
--ignore-table | 指定忽略表,忽略多个表时,需要重复多次,每次一个表。每个表必须同时指定数据库和表名 | [7] | |
--lock-all-tables | -X | 提交请求锁定所有数据库中的所有表,以保证数据的一致性 | |
--log-error | 附加警告和错误信息到给定文件 | [8] | |
--master-data | 该选项将 binlog 的位置和文件名追加到输出文件中 | ||
--max_allowed_packet | 客户端/服务器通信的最大 buffer size。默认值为 24MB,最大值为 1GB | ||
--max_allowed_packet | TCP/IP 和 socket 连接的缓存大小 | ||
--routines | -R | 导出存储过程以及自定义函数。 | |
--where | -w | 只转储给定的 WHERE 条件选择的记录,请注意如果条件包含命令解释符专用空格或字符,一定要将条件引用起来 | [9] |
参考
https://blog.csdn.net/piaoranyuji/article/details/116193100
mysqldump -uroot -p --databases databases1 databases2 ↩︎
mysqldump -uroot -p -B test --tables test ↩︎
mysqldump -uroot -p -A --all-tablespaces ↩︎
mysqldump -uroot -p -A --no-tablespaces ↩︎
mysqldump -uroot -p -A --add-drop-database ↩︎
mysqldump -uroot -p -A --skip-add-drop-table ↩︎
mysqldump -uroot -p -A --ignore-table=database.table1 --ignore-table=database.table2 ↩︎
mysqldump -uroot -p -A --log-error=/tmp/mysqldump_error_log.err ↩︎
mysqldump -uroot -p -A --where=" user='root'" ↩︎