ファイルの種別

mysql-bin.index今のbinログを保持するテキストファイル
mysql-bin.00000xbinログ。mysql再起動か--flush-logsをつけてdumpした場合にはインクリメントされる

mysqlbinlog

バイナリログとあるが、実はSQLを羅列したファイル

binlog_formatの確認

show variables like 'binlog_format';

ポイントインタイムリカバリー

https://dev.mysql.com/doc/refman/5.6/ja/point-in-time-recovery.html

binlogが別れていても一度に復旧させないと不整合の元になる。

mysqlbinlog binlog.000001 | mysql -u root -p
mysqlbinlog binlog.000002 | mysql -u root -p
mysqlbinlog binlog.000001 binlog.000002 | mysql -u root -p
mysqlbinlog binlog.000001 >  /tmp/statements.sql
mysqlbinlog binlog.000002 >> /tmp/statements.sql
mysql -u root -p -e "source /tmp/statements.sql"
mysqlbinlog --start-position=880 mysql-bin.000011 | more

 mysqlbinlog mysql-bin.000005 --base64-output=DECODE-ROWS

実行バージョン

FromTo結果
Mariadb 5.5mariadb 5.5OK
Mariadb 5.510.5.4-MariaDBOK

binlog2sql

中国製ツール

https://www.percona.com/blog/2020/07/09/binlog2sql-binlog-to-raw-sql-conversion-and-point-in-time-recovery/

インストール

使い方

binlogを持ってきて、接続情報もsuper admin権限必要。接続時に-dでdatabase指定できるようだが、binlogにあるやつは全部出るので意味なし!なおファイルはカレントディレクトリに持ってこないとエラー!複数ならstop-fileを指定する

python3 binlog2sql/binlog2sql/binlog2sql.py -h127.0.0.1 -P3306 -uroot -pxxxxx --start-file='mysql-bin.000002'

注意点


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-10-14 (金) 13:16:53