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

推薦する

Centos8 で yum を使用して rabbitmq をインストールするチュートリアル

/etc/yum.repos.d/フォルダに入るrabbitmq-erlang.repo ファイルを...

nginx で HSTS を有効にしてブラウザを HTTPS アクセスにリダイレクトする方法の詳細な説明

前回の記事では、https を使用したローカルノードサービスアクセスを実装しました。前回の記事の効果...

MySql5.7.21 インストールポイント記録メモ

ダウンロードしたバージョンは、Zip 解凍版、Windows システムです。長い間 Windows ...

ネイティブ Js で実装されたシンプルなシームレス スクロール カルーセルのサンプル コード

シンプルなシームレススクロールカルーセルには多くの抜け穴があり、後から画像を追加するのは非常に不便で...

Vue+Springbootでインターフェースシグネチャを実装するためのサンプルコード

1. 実装のアイデアインターフェース署名の目的は、リクエストパラメータが改ざんされていないか、リクエ...

ウェブサイト制作におけるオンライン広告の新しいインタラクティブ体験(グラフィックチュートリアル)

インターネット時代が成熟するにつれて、オンライン広告の発展も加速しています。圧倒的な広告収入と完璧な...

フロントエンドJavaScript ES6の詳細について

目次1. はじめに1.1 Babel トランスコーダ1.2 ポリフィル2. let と const ...

MySQL テーブルの断片化を解消し、スペースを再利用する方法

目次MySQL テーブルの断片化の原因行の断片化行内断片化空き領域の断片化MySQL で極度に断片化...

Hadoop 2.Xの新機能、ごみ箱機能の説明

ごみ箱機能をオンにすると、削除されたファイルの元のデータをタイムアウトなしで復元できるため、誤って削...

WeChatアプレットが計算機機能を実装

この記事では、WeChatアプレットの計算機機能を実装するための具体的なコードを参考までに紹介します...

Tableとdivの簡単な紹介と使い方

ウェブフロントエンド1学生証名前性別年01張三男20 02李思女性21総人数60フォームのコンポーネ...

Linux で特定のプログラムを見つけるための whereis の例の詳細な説明

Linuxは特定のプログラムを見つけますwhereis コマンドは主にプログラム ファイルを検索し、...

デザインにおけるユーザーエクスペリエンスの背後にある8つのユーザー本能について話す

編集者注: この記事は、Teambition チームの @娄昊川 が寄稿したものです。Teambit...

便利なモバイルスクロールプラグイン BetterScroll

目次スクロールをスムーズにするBetterScrollのスクロール体験慣性ローリングエッジリバウンド...

MySQLデータベースはsysbenchに基づくOLTPベンチマークテストを実装します

Sysbench は、MySQL データベース ストレージ エンジン InnoDB のディスク I/...