- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2020-11-27T03:16:03+00:00","default:wikiadmin","wikiadmin")
#author("2020-12-07T02:21:35+00:00","default:wikiadmin","wikiadmin")
-個人レベルならmysqldump流し込み、それ以外はフルバックアップ+binlogでロールフォワード
*ファイルの種別 [#n3a4b5a8]
|mysql-bin.index|今のbinログを保持するテキストファイル|
|mysql-bin.00000x|binログ。mysql再起動か--flush-logsをつけてdumpした場合にはインクリメントされる|
*mysqlbinlog [#ja17adc5]
バイナリログとあるが、実はSQLを羅列したファイル
**binlog_formatの確認 [#w4c2266d]
show variables like 'binlog_format';
-デフォルトはstatementのようだ
**ポイントインタイムリカバリー [#qf218a2d]
https://dev.mysql.com/doc/refman/5.6/ja/point-in-time-recovery.html
binlogが別れていても一度に復旧させないと不整合の元になる。
-NG (1に一時テーブルが含まれているとコネクション切断時に消滅、2で使っているとエラー)
mysqlbinlog binlog.000001 | mysql -u root -p
mysqlbinlog binlog.000002 | mysql -u root -p
-OK
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
-base64の情報を除去する(Auroraに流し込むときには必要)
mysqlbinlog mysql-bin.000005 --base64-output=DECODE-ROWS
**実行バージョン [#zfa35bb3]
|From|To|結果|
|Mariadb 5.5|mariadb 5.5|OK|
|Mariadb 5.5|10.5.4-MariaDB|OK|
*binlog2sql [#m52408c0]
中国製ツール
https://www.percona.com/blog/2020/07/09/binlog2sql-binlog-to-raw-sql-conversion-and-point-in-time-recovery/
**インストール [#zf1289e0]
**使い方 [#bbc4176a]
binlogを持ってきて、接続情報もsuper admin権限必要。接続時に-dでdatabase指定できるようだが、binlogにあるやつは全部出るので意味なし!
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'
**注意点 [#ace4fd44]
-一バイトにみたない列で本来b'0'とするところが'0'となってサイズオーバー