mysql における mydumper と mysqldump の比較

mysql における mydumper と mysqldump の比較

いくつかのテーブルまたは単一のデータベースのみをバックアップする場合は、innobackup よりも mysqldump と mydumper の方が便利です。ただし、mydumper には、マルチスレッド バックアップ、定期的な一致バックアップ、グループ化、セルフチェックなどの比較的多くの機能があります。また、mydumper と mysqldump は論理データのエクスポートに関しては基本的に同じであり、innodb のオンライン ホット バックアップをサポートしていません。もちろん、innobackup を使用して一部のテーブル データをバックアップすることもできますが、mydumper と mysqldump と同じバックアップ方法ではないため、以下では mydumper と mysqldump の使用のみをテストします。

mydumper エクスポート

以下に示すように、mydumper ツールを使用して、8 つのスレッドでテスト (9.4G) データをエクスポートし、圧縮します。
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/

/data/mysql_bak ディレクトリでは、データベース内の各テーブルがテーブル定義とデータの 2 つのファイルとして保存されます。

全体の実行時間は以下の通りで、合計123秒です。

# 猫のメタデータ 
ダンプ開始日時: 2017-05-19 10:48:00
マスターステータスを表示:
  ログ: mysql-bin.000406
  ポジション: 2165426
  GTID: (ヌル)

スレーブステータスを表示:
  ホスト: 10.144.127.4
  ログ: mysql-bin.000419
  ポジション: 506000361
  GTID: (ヌル)

ダンプ終了日時: 2017-05-19 10:50:03

mysqldump エクスポート

次のように、デフォルトの mysqldump ツールを使用してリポジトリをエクスポートし、圧縮します。

# 時間 mysqldump -B テスト -E -R -h 10.0.21.5 -u ルート -P 3301 -p | gzip >/data/test.sql.gz
パスワードを入力してください: 

実数 3分19秒805
ユーザー 4分47秒334秒
システム 0分10秒395秒

実際の行は、mysqldump の全体の実行時間が 199.8 秒であることを示しています。

要約する

一般的に、データ量が少ないため、mysqldump と mydumper の時間差は大きくありません。ほとんどの時間はデータ転送に費やされます。データベースが十分に大きい場合、mydumper の利点が反映されます。また、MySQL の上位バージョンの構文が変更されたため、mydumper の下位バージョンでは、次のエラーなどのエクスポート エラーが発生します。

** (mydumper:18758): CRITICAL **: 'SET OPTION SQL_QUOTE_SHOW_CREATE=1' を実行できませんでした: SQL 構文にエラーがあります。 
'OPTION SQL_QUOTE_SHOW_CREATE=1' の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。 
1行目(1064)

この問題を解決するには、mydumper の上位バージョンを使用します。上位バージョンでもこの問題が引き続き発生する場合は、github の公式コードを参照して、対応するコード変更を行うことができます。

以下もご興味があるかもしれません:
  • PHP スケジュールバックアップ MySQL および mysqldump 構文パラメータの詳細
  • mysqldump に -w パラメータを追加してデータをバックアップする場合の注意点
  • mysqldump データベース バックアップ パラメータの詳細な説明
  • MySQL5.7 mysqldump バックアップとリカバリの実装
  • mysqldump を使用した MySql のインポートおよびエクスポート方法の概要
  • MySQL mysqldump の使い方の詳しい説明
  • Dockerはmysqldumpコマンドを使用してプロジェクト内のmysqlデータをバックアップおよびエクスポートします。
  • MySQLdump コマンドを使用した MySQL データの移行
  • Linux mysqldump によるデータベース、データ、テーブル構造のエクスポートの詳細な説明
  • mysqldumpデータエクスポートの問題に関する詳細な議論
  • mysqldump でデータベースをバックアップするときに特定のライブラリを除外する例
  • mysqldump (MySQL データベースのバックアップとリカバリ) の使用方法についての簡単な説明
  • 知らないかもしれないmysqldumpパラメータ

<<:  Vue コンポーネント値転送中のデータ損失の分析と解決

>>:  alpineをベースにdockerfileで作成したクローラーScrapyイメージの実装

推薦する

Linux コマンドラインからファイルを削除する実用的な方法

rm コマンドrm コマンドは、ファイルを削除するときによく使用されるコマンドです。ファイルまたはデ...

IE で ClearType をオンにした後の透明フォントの問題の解決方法

IE で ClearType をオンにした後に発生する透明フォントの問題を解決するには、透明要素に背...

Nginx Httpモジュールシリーズにおけるautoindexモジュールの具体的な使用法

ブラウザ モジュールの主な機能は、http リクエスト ヘッダーの「User-Agent」の値とブラ...

WeChatアプレットでグローバル変数を監視する方法

最近、仕事で問題に遭遇しました。グローバル変数 red_heart があります。これは多くの場所で使...

MySQLのデッドロックとログに関する詳細な説明

最近、MySQL オンラインでいくつかのデータ異常が発生しましたが、すべて早朝に発生しました。ビジネ...

MySQL クエリの重複データ (重複データを削除し、ID が最も小さいデータのみを保持します)

開発の背景:最近、私はバッチ データを MySQL データベースにインポートする機能に取り組んでいま...

Vueナンバープレート入力コンポーネントの使い方の詳しい説明

参考までに、シンプルなナンバープレート入力コンポーネント(vue)です。具体的な内容は次のとおりです...

シンプルなショッピングカート機能を実現するjs

この記事の例では、簡単なショッピングカート機能を実現するためのjsの具体的なコードを参考までに共有し...

Vueパンくずコンポーネントのカプセル化方法

Vueはパンくずコンポーネントをカプセル化して参照します。具体的な内容は次のとおりです。効果を達成す...

jconsole を使用してリモート Tomcat サービスを監視する方法

JConsoleとはJConsole は Java 5 で導入されました。 JConsole は、コ...

JS ベースのページフローティングボックスを実装するためのサンプルコード

スクロール バーを下に引くと、主にposition:fixed;スタイルにより、フローティング ボッ...

JavaScript関数におけるこのポイントの問題の詳細な説明

このキーワードどのオブジェクトが関数を呼び出しますか? また、関数内の this はどのオブジェクト...

Vueは遅延読み込みによりページの応答速度を向上

目次概要遅延読み込みとは何ですか?最適化を開始するビジネスモジュールを分割する遅延読み込みルート構成...

Nginx における 2 つの現在の制限方法についての簡単な説明

負荷は通常、システム設計時に予測されます。システムがパブリック ネットワークに公開されている場合、悪...

レスポンシブWebデザイン学習(2) — 動画をレスポンシブにすることはできるのか?

前回のエピソードレビュー:昨日は、ページがさまざまなデバイス サイズにどのように対応するかについて説...