1. さまざまな使用方法
A. 最も簡単な使用法:
mysqldump -uroot -pPassword [database name] > [dump file]
上記のコマンドは、指定されたデータベースをダンプ ファイル (ダンプ ファイル) にバックアップします。例:
mysqldump -uroot -p123 test > test.dump
によって生成された test.dump ファイルには、 Table ステートメント (データベース構造を生成) と、データを挿入するための Insert ステートメント。
B. --opt
--opt パラメーターを追加すると、生成されるダンプ ファイルは若干異なります:
。テーブル作成ステートメントには、テーブル名が存在する場合は削除が含まれます
。挿入にはロックが含まれます。テーブルをロックする前の table ステートメント tableName の書き込み、挿入後の挿入にはロック解除が含まれます テーブル
C. クロスホストバックアップ
targetDb データベースが host2 ホスト上に作成されている場合、次のコマンドを使用して、host1 上のsourceDb を host2 の targetDb にコピーします。
mysqldump --host=host1 --opt sourceDb| mysql --host=host2 -C targetDb
-C は、データ圧縮を使用するようにホスト間のデータ送信を指示します
D. 戻るテーブル構造のみをアップ
mysqldump --no-data --databases mydatabase1 mydatabase2 mydatabase3 > test.dump
はテーブル構造のみをバックアップします。 --databases は、バックアップするホスト上のデータベースを示します。 MySQL ホスト上のすべてのデータベースをバックアップする場合は、次のように --all-databases オプションを使用できます:
mysqldump --all-databases > test.dump
E. バックアップ ファイルからデータベースを復元します
mysql [database name] < [backup file name]
2。 Linux cron コマンドと組み合わせます。スケジュールされたバックアップを実現するには
たとえば、特定のホスト上のすべてのデータベースを毎日午前 1 時 30 分にバックアップし、ダンプ ファイルを gz 形式に圧縮する必要がある場合は、次のコード行を /etc/crontab 設定ファイルに追加できます。
最初の 5 つのパラメータは分、時、日、月、年を表し、アスタリスクはいずれかを示します。 date '+%m-%d-%Y' は、現在の日付を MM-DD-YYYY 形式で取得します。 3. MySQL データベースをバックアップするための完全なシェル スクリプトの例30 1 * * * root mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/disk2/database_`date '+%m-%d-%Y'`.sql.gz上記のスクリプト ファイルは、backup.sh として保存され、システム内に 2 つのディレクトリ /olcbackup と /backup が作成されます。 Backup.sh が実行されるたびに、/backup ディレクトリ内にある、backup で始まる名前を持つすべてのファイルが /oldbackup ディレクトリに移動されます。 次のように、上記のスクリプトの実行計画を作成します:
#vi /backup/backup.sh #!bin/bash cd /backup echo "You are in backup dir" mv backup* /oldbackup echo "Old dbs are moved to oldbackup folder" File = backup-$Now.sql mysqldump -u user -p password database-name > $File echo "Your database backup successfully completed"4. Mysqldump 完全バックアップ + mysqlbinlog バイナリ ログ増分バックアップ mysqldump バックアップ ファイルからデータを復元すると、バックアップ ポイント以降の更新データが失われるため、mysqlbinlog バイナリ ログ増分バックアップも組み合わせる必要があります。バイナリ ロギングまたは mysqld を有効にするために、my.ini または my.cnf に次の設定が含まれていることを確認してください。 ---log-bin:
#crontab -e30 1 * * * /backup.sh新しいバイナリ ログ ファイルを生成するには、mysqldump コマンドに --flush-logs オプションを指定する必要があります:
[mysqld] log-bin=mysql-binこの方法で生成される増分バイナリ ログ ファイルは、たとえば、mysql-bin です。 .000003、その後、それを復元します。 データは次のとおりです:
mysqldump --single-transaction --flush-logs --master-data=2 > backup.sqlさらに、mysqlbinlog では、--start-date、--stop-date、--start-position、および --stop-position パラメータを正確に指定することもできます。データを特定の時点に復元するか、特定の問題期間の後にデータを復元するには、次のように MySQL ドキュメントから関連する内容を直接抜粋します。