1, さまざまな使用方法
A. 最も単純な使用法:
mysqldump -uroot -pPassword [database name] > [dump file]
上記のコマンドは、次のようなダンプ ファイル (ダンプ ファイル) に指定されたデータベースをバックアップします。
mysqldump -uroot -p123 test > test.dump
によって生成test.dump ファイルには、テーブル作成ステートメント (データベース構造の生成) とデータを挿入するための挿入ステートメントが含まれています。
B. --opt
--opt パラメータを追加すると、生成されるダンプ ファイルは少し異なります:
テーブル作成ステートメントには、テーブル名があれば削除が含まれます
。挿入前に含まれるステートメントのロック テーブル tableName write には、挿入後のロック解除テーブルが含まれます
C. クロスホスト バックアップ
次のコマンドを使用して、host1 のsourceDb を host2 の targetDb にコピーします。 host2 ホスト上に作成:
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]
複数のデータベースをバックアップします
構文:
mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql
--databases オプションを追加し、その後に複数のデータベースを追加します
mysqldump -u root -p --databases test mysql > D:\backup.sql
すべてのデータベースをバックアップします
戻るための sqldump コマンドすべてのデータベースをバックアップする方法は次のとおりです:
mysqldump -u username -p -all-databases > BackupName.sql
例:
mysqldump -u -root -p -all-databases > D:\all.sql
2, Linux cron コマンドと組み合わせて、スケジュールされたバックアップを実現します
たとえば、すべてのデータベースをバックアップする必要があります。毎朝 1:30 に特定のホストにアクセスし、ダンプ ファイルを gz 形式に圧縮します。その後、次のコード行を /etc/crontab 設定ファイルに追加できます:
30 1 * * * root mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/disk2/database_`date '+%m-%d-%Y'`.sql.gz
最初の 5 つのパラメータは、分、時間、日を表します。 、月、年をそれぞれ表し、アスタリスクは任意を意味します。 date '+%m-%d-%Y' は、現在の日付を MM-DD-YYYY 形式で取得します。
3. MySQL データベースをバックアップするための完全なシェル スクリプトの例
#vi /backup/backup.sh#!bin/bash cd /backupecho "You are in backup dir"mv backup* /oldbackupecho "Old dbs are moved to oldbackup folder"File = backup-$Now.sql mysqldump -u user -p password database-name > $Fileecho "Your database backup successfully completed"
上記のスクリプト ファイルは、backup.sh として保存され、システム内に 2 つのディレクトリ /olcbackup および /backup が作成されます。 Backup.sh が実行されるたびに、/backup ディレクトリ内にある、backup で始まる名前を持つすべてのファイルが /oldbackup ディレクトリに移動されます。
上記のスクリプトの実行計画を次のように作成します:
#crontab -e30 1 * * * /backup.sh
4、mysqldump 完全バックアップ + mysqlbinlog バイナリログ増分バックアップ
mysqldump バックアップ ファイルからデータを復元すると、更新されたデータは失われます。したがって、mysqlbinlog バイナリログ増分バックアップも組み合わせる必要があります。 my.ini または my.cnf に、バイナリ ログまたは mysqld --log-bin を有効にする次の設定が含まれていることを確認してください:
[mysqld] log-bin=mysql-bin
新しいバイナリ ログ ファイルを生成するには、mysqldump コマンドに --flush-logs オプションが必要です:
mysqldump --single-transaction --flush-logs --master-data=2 > backup.sql
この方法で生成された増分バイナリログファイルは、たとえば mysql-bin.000003 であり、データは次のように復元されます。
shell>mysql -uroot -pPwd <backup_sunday_1_pm.sql><div class="cnblogs_Highlighter sh-gutter"><div>
<code class="sql plain">shell>mysql-bin.000003 |
さらに、mysqlbinlog では、データを正確に復元するために --start-date、--stop-date、--start-position、および --stop-position パラメータを指定することもできます。または、途中で問題が発生した期間をスキップしてデータを回復し、次のように MySQL ドキュメントから関連する内容を直接抜粋します。 |
以上がmysqldump コマンドの使用例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。