#author("2020-12-05T12:45:36+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にあるやつは全部出るので意味なし!なおファイルはカレントディレクトリに持ってこないとエラー!複数ならstop-fileを指定する python3 binlog2sql/binlog2sql/binlog2sql.py -h127.0.0.1 -P3306 -uroot -pxxxxx --start-file='mysql-bin.000002' **注意点 [#ace4fd44] -一バイトにみたない列で本来b'0'とするところが'0'となってサイズオーバー