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

推薦する

HTML入力ファイルコントロールはアップロードされるファイルの種類を制限します

入力ファイルの HTML コントロールを Web ページに追加します。 <input id=&...

Vue フロントエンド開発における階層的にネストされたコンポーネント間の通信の詳細な説明

目次序文例まとめ序文Vue の親子コンポーネントは、props を通じて親コンポーネントの値を子コン...

Windows システムの MySQL が中国語を入力および表示できない問題の解決方法

ステップ 1: メモ帳を使用して、MySQL インストール ディレクトリの「my.ini」ファイルを...

ボタンの権限判定を実装するためのVueカスタムv-has命令

アプリケーションシナリオバックグラウンド管理システムを例にとると、各ユーザーには異なるボタン権限があ...

適応型ウェブページを設計および作成する方法

3G の普及により、携帯電話を使ってインターネットにアクセスする人が増えています。モバイル デバイス...

Linuxロスレス展開方法

概要クラウド プラットフォームのお客様のサーバーでは、業務量が拡大し続けるとディスク容量が不足する場...

Linux のパスワードを紛失した場合にリセットする方法

1. スタートアップメニューでは、カーソルを最初の行に移動します - eを押します 2. UTF-8...

Vue-Routerのインストールプロセスと原理の詳細

目次1. フロントエンドルーティングの実装原則2. vue-Routerの基本的な使い方2.1. イ...

Alibaba Cloud イメージリポジトリを使用して外部 Docker イメージを構築する方法の詳細な説明

Alibaba Cloud Image Repositoryを使用して外部イメージをダウンロードする...

MySQL 最適化の概要 - クエリエントリの合計数

1. COUNT(*) と COUNT(COL) COUNT(*)は通常、主キーに対してインデックス...

チェックボックスの不確定プロパティの使用の紹介

Windows XP でフォルダーのプロパティ ダイアログ ボックスを使用すると、フォルダーの属性カ...

Linux でネットワーク パケット損失と遅延をシミュレートする方法

netem と tc: netem は、Linux カーネル バージョン 2.6 以降で提供されるネ...

Linuxのバージョン情報を復号化する方法

Linux バージョンに関する情報を表示および解釈するのは、見た目よりも少し複雑です。単純なバージョ...

テーブルの追加と削除の操作を実装する js

この記事の例では、テーブルを追加および削除するためのjsの具体的なコードを参考までに共有しています。...

Linux Centos8 CA証明書作成チュートリアル

必要なファイルをインストールする Yum インストール openssl-* -yデータベースインデッ...