mydumperのインストールと使用
6256 ワード
mydumperはユーティリティとして、マルチスレッド作業を良好にサポートし、パラレルマルチスレッドのテーブルからデータを読み込み、異なるファイルに同時に書き込むことができ、従来のmysqldumpよりも処理速度が速い.その特徴の1つは、処理中にリストをロックする必要があるため、作業期間中にバックアップ作業を実行する必要がある場合、DMLブロックを引き起こすことです.しかし、一般的に現在のMySQLには主従があり、バックアップもほとんど上から行われているので、ロックの問題は考慮しなくてもいいです.これにより、mydumperはバックアップタスクをよりよく完了できます.
mydumperプロパティマルチスレッドバックアップ マルチスレッド論理バックアップであるため、バックアップ後に複数のバックアップファイルが生成される バックアップ時にMyISAMにFTWRL(FLUSH TABLES WITH READ LOCK)を施し、DML文 をブロックするバックアップデータの一貫性の確保 ファイル圧縮をサポート binlog のエクスポートをサポートマルチスレッドリカバリをサポート デーモンモードでの動作、タイミングスナップショット、および連続バイナリ・ログのサポート バックアップファイルのブロック化をサポート インストール手順:
1、ダウンロード:
2、インストール依存パッケージ:yum install glib 2-devel mysql-devel zlib-devel pcre-devel openssl-devel cmake
3、mydumperを解凍してコンパイルなどを実行する.
#tar -zxvf mydumper-0.9.1.tar.gz -C/usr/local/
#mv mydumper-0.9.1 mydumper
#cd /usr/local/mydumper
# cmake .
戻り値:
-- Configuring done -- Generating done
-- Build files have been written to:/usr/local/mydumper
#make
エラー:
make[2]: *** No rule to make target `/usr/lib64/libmysqlclient.so', needed by `mydumper'. Stop.
make[1]: *** [CMakeFiles/mydumper.dir/all] Error 2
解決:削除再実行がある場合
ln -s/usr/local/mysql/lib/libmysqlclient.so/usr/lib64/
#make
#make install
結果:
Install the project...-- Install configuration: ""-- Installing:/usr/local/bin/mydumper
-- Installing:/usr/local/bin/myloader
検証:
[root@nfs2 mydumper]# mydumper -V
mydumper 0.9.1, built against MySQL 5.6.39-83.1
mydumperパラメータ:
-B,--databaseがバックアップするデータベース、指定しない場合はすべてのライブラリ-Tをバックアップ、--tables-listがバックアップするテーブル、名前をカンマで区切って-o,--outputdirバックアップファイルが出力するディレクトリ-s,--statement-sizeが生成したinsert文のバイト数、デフォルト1000000
-r,--rowsテーブルを行ごとにブロックする場合、指定したブロックの行数を指定します.このオプションを指定すると--chunk-filesizeが閉じます.
-F,--chunk-filesizeテーブルをサイズ別にブロックする場合、指定するブロックサイズは、MB-c,--compress圧縮出力ファイル-e,--build-empty-filesテーブルデータが空の場合、または空のファイル(デフォルトではデータがない場合はテーブル構造ファイルのみ)-xを生成するか、--regexは正規表現と一致する'dbである.table'-i,--ignore-engines無視のストレージエンジンは、すべての厚さで-mを分割し、--no-schemasはテーブル構造-kをバックアップしません.--no-locksは一時的な共有読取り専用ロックを使用しません.このオプションを使用すると、データの不一致が発生します.less-lockingは、InnoDBテーブルへのロックの適用時間を短縮します(このモードのメカニズムは後述します)-l、--long-query-guardは、バックアップをブロックする長いクエリーのタイムアウト時間を秒単位で設定します.デフォルトは60秒です(タイムアウト後、デフォルトmydumperは終了します)--kill-long-queriesは長いクエリーを殺します(終了しません)-b,--binlogsはbinlog-Dをエクスポートします.--daemonはデーモン・プロセス・モードを有効にし、デーモン・プロセス・モードはある間隔でデータベースをバックアップします-I,--snapshot-interval dumpスナップショット間隔時間、デフォルト60 s、daemonモードで-L、--logfileで使用するログファイル名(mydumperで生成されたログ)、デフォルトでは標準出力--tz-utcタイムゾーンが使用されるオプションです.説明しない--skip-tz-utc同上--use-savepointsはsavepointsを使用してmetadataの採取によるロック時間を減らし、SUPER権限が必要である--success-on-1146 Not increment error count and Warning instead of Critical in case of table doesn't exist-h、--host接続のホスト名-u、--userバックアップで使用されるユーザー-p,--passwordパスワード-P,--portポート-S,--socket socket通信で使用されるsocketファイル-t,--threadsオープンのバックアップスレッド数、デフォルトは4-C、--compress-protocol mysqlと通信するデータ-Vを圧縮し、--versionはバージョン番号-v,--verbose出力情報モードを表示し、0=silent、1=errors、2=warnings、3=info、デフォルトは2
myloadパラメータ:
-d,--directoryバックアップファイルのフォルダ-q,--queries-per-transactionごとに実行されるクエリーの数、デフォルトは1000-o、--overwrite-tablesリカバリするテーブルが存在する場合は、まずdropでテーブルを削除し、このパラメータを使用して、バックアップが必要な場合はテーブル構造-Bをバックアップします.--databaseでリストアが必要なデータベース-e,--enable-binlogリストアデータを有効にするバイナリログ-h,--hostホスト-u,--userリストアのユーザー-p,--passwordパスワード-P,--portポート-S,--socket socketファイル-t,--threadsリストアで使用されるスレッド数、デフォルトは4-C、--compress-protocol圧縮プロトコル-V、--version表示バージョン
-v,--verbose出力モード,0=silent,1=errors,2=warnings,3=info,デフォルト2
使用例:
1、指定されたテーブルデータをバックアップする:
mydumper -h 192.168.21.130 -u load_data -p root123 -P 3306 -B lepus -T mysql_slow_query_review_history -m -o ./test/
データのリストア:
myloader -h 192.168.21.187 -u root -P 4000 -B test -d/tmp/test/
2、バックアップ毎の出力サイズを指定する(毎回1 W個の記録サイズファイルを生成し、10 W個の記録を複数の小ファイルに切断する)
mydumper -h 192.168.21.130 -u load_data -p root123 -P 3306 -B lepus -T mysql_slow_query_review_history -r 10000 -m -o ./test/
還元:myloader-h 192.168.21.187-u root-P 4000-B test-d/tmp/test/
3、DB全体をバックアップし、マルチスレッドの各ファイルサイズを64 MBと指定し、Bを追加しない場合、インスタンス全体をバックアップする
mydumper -h 192.168.21.130 -P 3306 -u load_data -p root123 --kill-long-queries -t 8 -F 64 -B lepus --skip-tz-utc -o/disk1/lepus
エクスポートしたデータを元に戻します.ライブラリ情報を指定する必要はありません.
データ復元:myloader-h 127.0.0.1-u root-P 4000-t 32-d./var/test
mydumperプロパティ
1、ダウンロード:
2、インストール依存パッケージ:yum install glib 2-devel mysql-devel zlib-devel pcre-devel openssl-devel cmake
3、mydumperを解凍してコンパイルなどを実行する.
#tar -zxvf mydumper-0.9.1.tar.gz -C/usr/local/
#mv mydumper-0.9.1 mydumper
#cd /usr/local/mydumper
# cmake .
戻り値:
-- Configuring done -- Generating done
-- Build files have been written to:/usr/local/mydumper
#make
エラー:
make[2]: *** No rule to make target `/usr/lib64/libmysqlclient.so', needed by `mydumper'. Stop.
make[1]: *** [CMakeFiles/mydumper.dir/all] Error 2
解決:削除再実行がある場合
ln -s/usr/local/mysql/lib/libmysqlclient.so/usr/lib64/
#make
#make install
結果:
Install the project...-- Install configuration: ""-- Installing:/usr/local/bin/mydumper
-- Installing:/usr/local/bin/myloader
検証:
[root@nfs2 mydumper]# mydumper -V
mydumper 0.9.1, built against MySQL 5.6.39-83.1
mydumperパラメータ:
-B,--databaseがバックアップするデータベース、指定しない場合はすべてのライブラリ-Tをバックアップ、--tables-listがバックアップするテーブル、名前をカンマで区切って-o,--outputdirバックアップファイルが出力するディレクトリ-s,--statement-sizeが生成したinsert文のバイト数、デフォルト1000000
-r,--rowsテーブルを行ごとにブロックする場合、指定したブロックの行数を指定します.このオプションを指定すると--chunk-filesizeが閉じます.
-F,--chunk-filesizeテーブルをサイズ別にブロックする場合、指定するブロックサイズは、MB-c,--compress圧縮出力ファイル-e,--build-empty-filesテーブルデータが空の場合、または空のファイル(デフォルトではデータがない場合はテーブル構造ファイルのみ)-xを生成するか、--regexは正規表現と一致する'dbである.table'-i,--ignore-engines無視のストレージエンジンは、すべての厚さで-mを分割し、--no-schemasはテーブル構造-kをバックアップしません.--no-locksは一時的な共有読取り専用ロックを使用しません.このオプションを使用すると、データの不一致が発生します.less-lockingは、InnoDBテーブルへのロックの適用時間を短縮します(このモードのメカニズムは後述します)-l、--long-query-guardは、バックアップをブロックする長いクエリーのタイムアウト時間を秒単位で設定します.デフォルトは60秒です(タイムアウト後、デフォルトmydumperは終了します)--kill-long-queriesは長いクエリーを殺します(終了しません)-b,--binlogsはbinlog-Dをエクスポートします.--daemonはデーモン・プロセス・モードを有効にし、デーモン・プロセス・モードはある間隔でデータベースをバックアップします-I,--snapshot-interval dumpスナップショット間隔時間、デフォルト60 s、daemonモードで-L、--logfileで使用するログファイル名(mydumperで生成されたログ)、デフォルトでは標準出力--tz-utcタイムゾーンが使用されるオプションです.説明しない--skip-tz-utc同上--use-savepointsはsavepointsを使用してmetadataの採取によるロック時間を減らし、SUPER権限が必要である--success-on-1146 Not increment error count and Warning instead of Critical in case of table doesn't exist-h、--host接続のホスト名-u、--userバックアップで使用されるユーザー-p,--passwordパスワード-P,--portポート-S,--socket socket通信で使用されるsocketファイル-t,--threadsオープンのバックアップスレッド数、デフォルトは4-C、--compress-protocol mysqlと通信するデータ-Vを圧縮し、--versionはバージョン番号-v,--verbose出力情報モードを表示し、0=silent、1=errors、2=warnings、3=info、デフォルトは2
myloadパラメータ:
-d,--directoryバックアップファイルのフォルダ-q,--queries-per-transactionごとに実行されるクエリーの数、デフォルトは1000-o、--overwrite-tablesリカバリするテーブルが存在する場合は、まずdropでテーブルを削除し、このパラメータを使用して、バックアップが必要な場合はテーブル構造-Bをバックアップします.--databaseでリストアが必要なデータベース-e,--enable-binlogリストアデータを有効にするバイナリログ-h,--hostホスト-u,--userリストアのユーザー-p,--passwordパスワード-P,--portポート-S,--socket socketファイル-t,--threadsリストアで使用されるスレッド数、デフォルトは4-C、--compress-protocol圧縮プロトコル-V、--version表示バージョン
-v,--verbose出力モード,0=silent,1=errors,2=warnings,3=info,デフォルト2
使用例:
1、指定されたテーブルデータをバックアップする:
mydumper -h 192.168.21.130 -u load_data -p root123 -P 3306 -B lepus -T mysql_slow_query_review_history -m -o ./test/
データのリストア:
myloader -h 192.168.21.187 -u root -P 4000 -B test -d/tmp/test/
2、バックアップ毎の出力サイズを指定する(毎回1 W個の記録サイズファイルを生成し、10 W個の記録を複数の小ファイルに切断する)
mydumper -h 192.168.21.130 -u load_data -p root123 -P 3306 -B lepus -T mysql_slow_query_review_history -r 10000 -m -o ./test/
還元:myloader-h 192.168.21.187-u root-P 4000-B test-d/tmp/test/
3、DB全体をバックアップし、マルチスレッドの各ファイルサイズを64 MBと指定し、Bを追加しない場合、インスタンス全体をバックアップする
mydumper -h 192.168.21.130 -P 3306 -u load_data -p root123 --kill-long-queries -t 8 -F 64 -B lepus --skip-tz-utc -o/disk1/lepus
# : abc、bcd、cde
mydumper -u backup -p 123456 -h 192.168.180.13 -P 3306 -e --regex 'abc|bcd|cde' -o bbb/
# : abc、mysql、test,
mydumper -u backup -p 123456 -h 192.168.180.13 -P 3306 -e --regex '^(?!(abc|mysql|test))' -o bbb/
エクスポートしたデータを元に戻します.ライブラリ情報を指定する必要はありません.
データ復元:myloader-h 127.0.0.1-u root-P 4000-t 32-d./var/test