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イメージの実装

推薦する

mysql5.6 マスタースレーブ設定と非同期の問題の詳細な説明

目次1. MySQL マスタースレーブレプリケーションの原理2. MySQLのコンパイルとインストー...

iframe タグの使用方法の詳細な説明 (属性、透明度、適応高さ)

1. iframe の定義と使用法iframe 要素は、別のドキュメントを含むインライン フレーム...

Vueカスタム命令とその使用方法の詳細な説明

目次1. 指令とは何ですか? Vue でよく使われる組み込みの v ディレクティブv-if と v-...

MySQL 8.0.14 のインストールと設定方法のグラフィックチュートリアル (一般)

MySQLサービス8.0.14のインストール(一般)の参考までに、具体的な内容は次のとおりです。イ...

CentOS7 インストール GUI インターフェースとリモート接続の実装

ブラウザ (Web ドライバー) ベースの Selenium テクノロジを使用してデータをクロールす...

Vue の計算プロパティ

目次1. 基本的な例2. 計算プロパティキャッシュとメソッド3. 計算プロパティセッター序文:通常、...

インタビュアーはCSSで固定アスペクト比を実現する方法を尋ねました

この質問に関連するニーズはまだないかもしれませんし、面接でこの質問をされたことがないかもしれませんが...

MySQL パフォーマンスの包括的な最適化方法リファレンス、CPU、ファイルシステムの選択から mysql.cnf パラメータの最適化まで

この記事では、一般的な MySQL 最適化方法をいくつかまとめて簡単に紹介します。これは、フルタイム...

Linuxはデュアルネットワークカードボンドとドライバーインターフェースを使用する

債券とは何かNIC ボンドは、実稼働シナリオでよく使用されるテクノロジーです。複数の NIC を 1...

Docker-compose を使用して GitLab をデプロイする方法

Docker-compose は GitLab をデプロイします1. Dockerをインストールする...

MySQL インデックス障害の上位 10 の問題の概要

目次背景1. クエリ条件に「or」が含まれているため、インデックスが失敗する可能性があります。 2....

Dockerコンテナが起動直後に終了する問題を解決する

最近、Docker がコンテナの起動時に特定のプロセスを直接実行できるようにする方法を調べていたとこ...

MySQL全文検索の使用例

目次1. 環境整備2. データの準備3. ショーを始める4. 単語分割エンジン要約する参考文献1. ...

Quickjs は JavaScript サンドボックスの詳細をカプセル化します

目次1. シナリオ2. 基盤となるAPIを簡素化する2.1 自動的に破棄を呼び出す2.2 VM値を作...

Mysql でサーバーの UUID を変更する方法

問題の原因:スレーブサーバーがクローンマスターサーバーである場合、server-uuidの値は同じで...