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
    #       :  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