mysqldumpを使用してWindows環境でリモートデータベースの定期的なバックアップを実現します

mysqldumpを使用してWindows環境でリモートデータベースの定期的なバックアップを実現します

はじめに: mysqldump は mysql の組み込みツールであり、mysql インストール フォルダーの下の bin フォルダーにあります。
ここに画像の説明を挿入

1. スクリプトを作成する

新しい.batファイルを作成します。たとえば、私が作成したファイルは ですbackup.batスクリプトファイルの内容は以下のとおりです。

set now=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%

set backup=C:\test\backup
if not exist %backup% md %backup%

set nowfile=%backup%\%now%
if not exist %nowfile% md %nowfile%

C:\test\mysql\mysql-8.0.23\bin\mysqldump -uroot -p123456 -h0.0.0.0 database table > %nowfile%\record.sql

exit

最初の段落は、現在時刻を取得および設定することを意味します。

2 番目の段落は、バックアップ フォルダーを設定することを意味します。設定されていない場合は、新しいフォルダーを作成します (Windows 環境で新しいフォルダーを作成する構文に注意してください)。

3 番目の段落は、バックアップ日付に基づいた名前のフォルダーが区別されるように設定されていることを示します。

4 番目の段落は、mysqldump を使用してバックアップを実行する構文です:
C:\test\mysql\mysql-8.0.23\bin\mysqldump: mysqldump の場所;
root: リモート データベースのユーザー名;
123456: リモート データベースのパスワード;
0.0.0.0: リモート データベースのアドレス;
データベース: バックアップするデータベースの名前up;
table: バックアップされるテーブル名。

第 5 段落はexit撤退を意味します。

設定が完了したら保存して終了し、bat ファイルをダブルクリックします。通常の状況ではスクリプトは 1 回実行されますが、そうでない場合はスクリプトに問題があります。

注:
1. 複数のテーブルをバックアップします: mysqldump -u user -p データベース テーブル 1 テーブル 2 ... テーブル N > バックアップ ファイル パス
2. 1 つのデータベースをバックアップします: mysqldump -u user -p -B データベース > バックアップ ファイル パス
3. バックアップ複数のデータベース: mysqldump -u user -p -B library 1 library 2 ... library N > バックアップ ファイル パス
4. すべてのデータをバックアップ: mysqldump -u user -p -A > バックアップ ファイル パス
参考記事: https:// blog .csdn.net/weixin_30361641/article/details/99012330

2. Windows のスケジュールされたタスクを設定する

1. ショートカット キーWindows + Rを使用して(Windows ショートカット キーは、キーボードにコンピュータのパターンが描かれたものです)
、次のように開きます。
ここに画像の説明を挿入
2. と入力しtaskschd.msc、[OK] をクリックすると、次のようなタスク スケジューラ ページが表示されます。以下の図に示すようになります。
ここに画像の説明を挿入
3. 「基本タスクの作成」をクリックします。
ここに画像の説明を挿入
4. 基本タスクの名前と説明をカスタム入力します。
ここに画像の説明を挿入
5. 基本タスクの実行周期を選択します。
ここに画像の説明を挿入
6. 基本タスクの開始時刻を設定します。
ここに画像の説明を挿入
7. スタートアッププログラム、つまり以前に設定したスクリプトファイルを選択します。
ここに画像の説明を挿入
ここに画像の説明を挿入
8. スクリプト ファイルに名前を付けます;
9. すると、初期インターフェイスでスケジュールされたタスクが表示されます。
ここに画像の説明を挿入

プロジェクトの落とし穴

最初のステップでスクリプトを作成したとき、スクリプト内にコードを 1 行だけ記述しました。

C:\test\mysql\mysql-8.0.23\bin\mysqldump -uroot -p123456 -h0.0.0.0 database table > C:\test\record.sql

これにより、record.sql バックアップ SQL ファイルが各バックアップ後に更新され、履歴データを保存するという目的を達成できなくなります。Baidu を経由した後は、フォルダーに日付を付ける方法を使用して、データのバックアップと履歴データの復元をより適切に行うことができます。
このプロジェクトでは 1 つのテーブルのみをバックアップするため、毎回テーブル全体をバックアップします。データベースがバックアップされ、データ ボリュームが比較的大きい場合は、月曜日にデータベースを完全にバックアップするなど、増分バックアップ方法を検討する必要があります。増分バックアップなど

添付ファイル: Windows 環境でデータベースの完全バックアップが必要な場合は、Navicat に付属のスケジュールされたバックアップ ツールを直接使用できます。

注: この記事の Navicat バージョンは Navicat 15 です。
1. 「自動実行」をクリックします。
ここに画像の説明を挿入
2. 「新規バッチジョブ」をクリックします。
ここに画像の説明を挿入

3. [バックアップ] をクリックします --> バックアップするデータベースの名前 --> 使用可能なジョブ
ここに画像の説明を挿入
4. ダブルクリックすると、選択したジョブの特定の情報が上部に表示されます。
ここに画像の説明を挿入
5. 選択したジョブをクリックします - -> 「保存」をクリックします --> 設定ファイル名を入力します (時刻を付けた名前を付けることをお勧めします) --> 「OK」をクリックします。
ここに画像の説明を挿入
6. 選択したジョブを実際の状況に応じて設定し、設定が完了したら「OK」をクリックします。完成しました。
ここに画像の説明を挿入

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/problemRecord/article/details/118331678