Mysql の自動バックアップとクリーンアップ (Windows)

Mysql の自動バックアップとクリーンアップ (Windows)

Windows にインストールされている MySQL は、bat バックアップ クリーニング スクリプトと Windows のスケジュールされたタスクを通じて自動的にバックアップおよびクリーニングできます。

1 脚本

@echo off

:: 数据库IP
set host=127.0.0.1
:: 数据库端口号
set port=3306
:: 用户名
set user=root
:: 密码
set pass=root 

:: 要备份的数据库名称
set dbname=test
:: 设置备份文件放置的路径
set backup_dir=E:\mysql-bak\test
:: 备份日志
set logfile=%backup_dir%\%dbname%-log.txt
:: 备份保留天数
set backupDays=30

:: 如果文件夹不存在则创建
if not exist %backup_dir% md %backup_dir%

:: 获取当天的日期格式
set hour=%time:~0,2%
if "%time:~0,1%"==" " set hour=0%time:~1,1%
set backup_date=%date:~3,4%%date:~8,2%%date:~11,2%%time:~0,2%%time:~3,2%%time:~6,2%

echo =========== %backup_date%  %dbname% =========== >> %logfile%

:: 设置备份文件的路径
set backupfile=%backup_dir%\%dbname%_backup_%backup_date%.sql

echo 备份文件名称为:%backupfile% >> %logfile%

echo 使用mysqldump对指定的MySql进行备份 >> %logfile%

mysqldump -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname% > %backupfile%
 
echo 数据备份完成 >> %logfile%

echo 查询过期文件并删除 >> %logfile%

:: 打印符合条件的文件到日志
forfiles /p %backup_dir% /s /m %dbname%_backup_.* /d -%backupDays% /c "cmd /c echo @file" >> %logfile%
:: 清理过期文件
forfiles /p %backup_dir% /s /m %dbname%_backup_*.sql /d -%backupDays% /c "cmd /c del @file /f"

echo 删除完成 >> %logfile%

2 スケジュールされたタスクを作成する

[コントロールパネル] > [管理ツール] > [タスクスケジューラ]を開くか、直接タスクスケジューラを検索して[操作] > [基本タスクの作成]を選択します。
ここに画像の説明を挿入します

スケジュールされたタスク名を設定します。
ここに画像の説明を挿入します

トリガーのデフォルトは「毎日」です (実際の条件によって異なります)。
ここに画像の説明を挿入します

スケジュールされたタスクの開始日と実行時間を設定します。
ここに画像の説明を挿入します

「プログラムの開始」を選択します。
ここに画像の説明を挿入します

バックアップを実行するスクリプトを選択します。
ここに画像の説明を挿入します

情報が正しいことを確認したら、「完了」をクリックします。
ここに画像の説明を挿入します

タスクを手動で右クリックしてすぐに実行し、スクリプトに問題があるかどうかを確認し、実行後にバックアップ ファイルに問題があるかどうかを確認できます。安全のため、バックアップされた SQL をインポートすることもできます。をデータベースにコピーし、バックアップされた SQL に問題があるかどうかを確認します。

おすすめ

転載: blog.csdn.net/weixin_46505978/article/details/130699788