0

次のコマンドを使用して、で増分バックアップを作成していますMySQL

mysqldump -uusername -ppassword db_name --flush-logs > D:\dbname_incremental_backup.sql

ただし、sqlファイルは完全バックアップと同じくらい大きく、明らかにインポートにも長い時間がかかります。誰かが増分バックアップを作成し、データベース全体ではなく、各増分バックアップから新しいデータだけをインポートする方法を教えてもらえます

dev.mysql.comの関連記事をすべて読みましたが、それでもその方法を理解できません。

4

2 に答える 2

2

mysqldump完全バックアップのみを作成します。増分バックアップ用の組み込み機能はありません。

そのようなことには、おそらくPercona xtrabackupが必要ですが、それはInnoDBテーブルでのみ機能します。MyISAMテーブルの使用は非常に有害であると考えられているため、これは通常問題にはなりません。

于 2013-01-30T17:05:17.267 に答える
1

デフォルトでは、mysqlダンプはテーブルをドロップし、増分更新を不可能にします。結果のファイルを開くと、次のようなものが表示されます。 DROP TABLE IF EXISTS `some_table_name`;

--no-create-infoオプションを使用すると、ダンプして新しいテーブルを作成せずにダンプを作成できます。ダンプをインクリメンタルインポートに対応させるには、-skip-extended-importも使用する必要があります。これにより、挿入が行ごとに1つの挿入ステートメントに分割されます。インポートでの使用と組み合わせると--force、存在する行の挿入は失敗しますが、インポートは続行されます。すでに存在する行のログにエラーが表示されることになりますが、必要に応じて新しい行が挿入されます。

次のコマンドでエクスポートできるはずです(履歴に表示されないように、コマンドにパスワードを入力しないこともお勧めします) mysqldump -u username -p --no-create-info --skip-extended-insert db_name --flush-logs > D:\dbname_incremental_backup.sql

その後、次のコマンドでインポートできます。 mysql -u username -p --force db_name < D:\dbname_incremental_backup.sql

于 2018-07-24T05:22:28.757 に答える