[関連する学習の推奨事項: mysql チュートリアル ]
前書き:
データベースのバックアップの重要性は、特にデータ損失が重大な結果をもたらす可能性がある実稼働環境では、自明の理です。したがって、環境に関係なく、データベースを定期的にバックアップするための対応するバックアップ戦略を立てる必要があります。 MySQL では、論理バックアップ ツールとして mysqldump がよく使われますが、この記事では MySQL のスケジュール バックアップの方法を紹介します。
1. 適切なバックアップ戦略を開発する
データベース環境が異なると、異なるバックアップ戦略を検討する必要があります。バックアップ戦略を策定するときは、次の要素を考慮する必要があります:
2.Linux システム バックアップ スクリプト
Linux システムでは、crontab スケジュールされたタスクを使用してバックアップ スクリプトを実行できます。 crontab をまだ知らない場合は、次の概要を参照してすぐに学習できます。
crontab は、Unix および Unix 系オペレーティング システムで一般的なコマンドで、定期的に実行される命令を設定するために使用されます。
形式:
* * * * * コマンド
タイムシェアリング日-月-週コマンド
最初の列は分を示します 1分は * または */1 で表されます。
2 列目は 1 から 23 時を表します (0 は 0 時を表します)
3 列目は 1 から 31 までの日付を表します
4 列目は月を表します1 ~ 12
列 5 は 0 ~ 6 の曜日を示します (0 は日曜日を意味します)
列 6 で実行するコマンド
crontab -e この下のスケジュールされたタスク設定を編集しますuser
crontab -l ユーザーの下にあるすべてのスケジュールされたタスクをリストします
さあ、バックアップ スクリプトを正式に書きましょう。これ以上の苦労はせずに、最初にスクリプト テンプレートを指定しましょう:
#!/bin/bash # ------------------------------------------------------------------------------- # FileName: mysql_backup.sh # Describe: Used for database backup # Revision: 1.0 # Date: 2020/08/11 # Author: wang # 设置mysql的登录用户名和密码(根据实际情况填写) mysql_user = "root" mysql_password = "yourpassword" mysql_host = "localhost" mysql_port = "3306" backup_dir = /data/mysql_backup dt=date +'%Y%m%d_%H%M' echo "Backup Begin Date:" $(date +"%Y-%m-%d %H:%M:%S") # 备份全部数据库 mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -R -E --all-databases --single-transaction > $backup_dir/mysql_backup_$dt.sql find $backup_dir -mtime +7 -type f -name '*.sql' -exec rm -rf {} \; echo "Backup Succeed Date:" $(date +"%Y-%m-%d %H:%M:%S")
上記のスクリプト特定のライブラリのバックアップ、保持時間の変更など、実際の状況に応じて変更できます。スクリプトを作成したら、デバッグに注意してください。デバッグが完了したら、デプロイできます。たとえば、毎日午前 2 時にバックアップを実行する予定の場合、このようにスケジュールされたタスクを設定できます。
# 注意脚本执行权限及修改脚本路径 00 02 * * * sh /root/scripts/mysql_backup.sh > /root/scripts/mysql_backup.log 2>&1
3. Windows システム バックアップ スクリプト
Windows システム バックアップ スクリプトは、bat スクリプトになる点を除けば似ており、スケジュールされたタスクを設定する必要があります。定期的な実行。たとえば、E ドライブの下に MySQLdata_Bak ディレクトリを作成し、その下にバックアップ ファイルを保存するための mysql_backup ディレクトリを作成します。mysql_bak.bat はバックアップ スクリプトです。スクリプトの内容は次のとおりです (バックアップ ファイルは 7 日間自動的に削除されます) ago):
rem auther:wang rem date:20200811 rem ******MySQL backup start******** @echo off forfiles /p "E:\MySQLdata_Bak\mysql_backup" /m backup_*.sql -d -7 /c "cmd /c del /f @path" set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%" "E:\mysql5.7.23\bin\mysqldump" -uroot -p123456 -P3306 --default-character-set=utf8 -R -E --single-transaction --all-databases > "E:\MySQLdata_Bak\mysql_backup\backup_%Ymd%.sql" @echo on rem ******MySQL backup end********
上記のスクリプトは参照専用であり、独自の環境に応じて若干変更できます。同様に、スクリプトのデバッグが完了したら、スケジュールされたタスクを追加できます。Windows のスケジュールされたタスクについて知らない場合は、Baidu でダウンロードすることができ、より便利で簡単です。
4. バックアップの可用性の確認
バックアップに加えて、バックアップ データの可用性を確認することも非常に重要です。データの復元を実行する必要があるときに、過去のバックアップ データが無効であることが突然判明したときの不快な気持ちを想像してみてください。多くの友人は、バックアップ スクリプトを作成してスケジュールされたタスクに追加した後、スケジュールされたタスクが実行されたかどうか、またはバックアップ ディレクトリにファイルがあるかどうかをチェックするだけで、もう注意を払わず、問題があることだけを発見します。バックアップ ファイルを使用する必要がある場合は、バックアップ データを保存します。
現時点では、バックアップ ファイルのデータを検証するための非常に便利な方法はありません。より一般的に使用されるのは、バックアップ ファイルを定期的に取り出してバックアップとリカバリの訓練を行うことです。たとえば、バックアップとリカバリの訓練を行うことです。月に 1 回のバックアップにより、ファイルの可用性と安心感が効果的に向上します。
したがって、バックアップがあればすべてが確実であるとは考えないでください。また、バックアップ スクリプトが正しく実行されているかどうか、生成されたバックアップ スクリプトのコンテンツが利用可能であるかどうかも確認する必要があります。定期的にリカバリー訓練を実施。
関連する学習に関する推奨事項: プログラミング ビデオ
以上がMySQL バックアップ スクリプトの作成方法を見てみましょう。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。