MySQLデータベースバックアップツールには、mysqlの公式バックアップツールである独自のmysqldumpがあります。ただし、サードパーティのバックアップ ツール mydumper は、その優れた機能により、より多くの人に使用されています。次に、それらの間のバックアップ効率をテストによって検証します。
少数のテーブルまたは単一のライブラリのみをバックアップする場合は、innobackup よりも mysqldump と mydumper の方が便利ですが、mydumper には、マルチスレッド バックアップ、定期的な一致バックアップ、グループ化、セルフテストなど、比較的多くの機能が追加されています。さらに、mydumper と mysqldump は本質的に同じエクスポート論理データであり、innodb のオンライン ホット バックアップをサポートしていません。もちろん、一部のテーブル データをバックアップするために innobackup を使用することもできますが、これは同じタイプのバックアップではありません。 mydumper と mysqldump としてメソッドを使用するため、以下でのみテストします。以下に示すように、mydumper と mysqldump の間で使用します。
ディレクトリ /data/mysql_bak に、ライブラリ内の各テーブルはテーブル定義とデータの 2 つのファイルとして保存されます。
全体の実行時間は次のとおりで、合計 123 秒かかります
# cat metadata Started dump at: 2017-05-19 10:48:00 SHOW MASTER STATUS: Log: mysql-bin.000406 Pos: 2165426 GTID:(null) SHOW SLAVE STATUS: Host: 10.144.127.4 Log: mysql-bin.000419 Pos: 506000361 GTID:(null) Finished dump at: 2017-05-19 10:50:03
mydumper -B test --regex 'test.*' -c -e -G -E -R --use-savepoints -h 10.0.21.5 -u root -P 3301 -p xxxxxx -t 8 -o /data/mysql_bak/
mysqldump エクスポート。
以下のように、デフォルトの mysqldump ツールを使用してライブラリをエクスポートし、圧縮します。 表示:
# time mysqldump -B test -E -R -h 10.0.21.5 -u root -P 3301 -p | gzip >/data/test.sql.gz Enter password: real 3m19.805s user 4m47.334s sys 0m10.395s
real 1 行は、mysqldump の全体の実行時間が 199.8 秒であることを示しています
概要データはそれほど多くなく、mysqldump と mydumper の間の時間差は大きくありません。ほとんどの時間はデータ転送レベルに消費されます。ライブラリが十分に大きければ、mydumper の下位バージョンの利点を反映できます。 MySQL の上位バージョンの構文変更により、次のエラーのようなエクスポート エラーの問題が発生します:
** (mydumper:18758): CRITICAL **: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 (1064)
この問題に対処するには、mydumper の上位バージョンの場合、この問題がまだ発生する場合は、次のエラーを使用できます。それ以降のバージョンでは、github
公式コードを参照して、対応するコードを変更できます。
以上がmysqlにおけるmydumperとmysqldumpの比較の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。