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

推薦する

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

1. ソフトウェアをダウンロードする1. MySQL の公式サイトにアクセスし、Oracle アカ...

docker を使用した pxc クラスターのインストールに関する詳細なチュートリアル

目次序文事前準備ディレクトリを作成するcustom.cnf を作成する証明書を作成するpxc クラス...

Mysql の主キーと一意キーの違いのまとめ

主キーとは何ですか?主キーは、テーブル内の各タプル (行) を一意に識別するテーブル内の列です。主キ...

CentOS で MySQL を完全にアンインストールする方法

この記事では、CentOSでのMySQLの完全アンインストールについて記録しています。具体的な内容は...

CSS3 で less のテキストの長い影を実装する

この記事では主に、CSS3 LESS で長いテキストの影を実装する方法を紹介し、皆さんと共有します。...

Link と @import の違いを詳しく見る

ページで CSS を使用する主な方法は、スタイル属性値をインラインで追加する方法、ページ ヘッダーで...

Mysql の大きな SQL ファイルの高速リカバリ ソリューションの共有

序文MySQL データベースを使用する過程では、データベースのバックアップと復元が必要になることがよ...

Workbench を介して MySQL データベースにリモートでアクセスする方法の詳細な説明

序文Workbench が 1 台のコンピューターにインストールされており、別の Ubuntu サー...

Dockerイメージ作成の完全なプロセス

目次序文作成手順CentOSベースイメージを作成するコンテナを作成してカスタマイズするカスタムコンテ...

Vue.js を学ぶ際に遭遇する落とし穴

目次クラス void のポイントES6 矢印関数ヴュートファイvue-cli非同期と同期実行と展開ヒ...

MySQL の重要なログファイルの包括的なインベントリ

目次導入ログ分類パラメータファイルエラーログファイル完全なログファイルスロークエリログバイナリログフ...

Vueフォームで画像を処理する方法

質問: Vue にブログ投稿をアップロードするためのフォームがあり、タイトル、本文、説明、スニペット...

VMware 15.5 に CentOS7 をインストールするためのグラフィック チュートリアル

1. VMware 15.5で新しい仮想マシンを作成する1. VMware を開き、ホームページで「...

JavaScript ES6 分割演算子の理解と応用

目次序文脱構築記号の役割使い方分割割り当ての適用アプリケーションの簡単な紹介JSONデータを抽出する...

vue+elementui+vuex+sessionStorage を使用して履歴タグ メニューを実装するためのサンプル コード

一般的には、左側にメニューがあった後、ページの上部に履歴タブ メニューを追加する必要があります。他の...