準備手順なしでpercona-xtrabackupから復元した後、ib_logfile0
およびib_logfile1
復元データに存在しませんでした。そのため、起動時に次のメッセージが表示されます。
140223 04:10:24 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
140223 04:46:51 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
140223 4:46:51 InnoDB: Initializing buffer pool, size = 18.0G
140223 4:46:54 InnoDB: Completed initialization of buffer pool
140223 4:46:54 InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
140223 4:46:54 InnoDB: Log file ./ib_logfile1 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
140223 4:46:54 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
140223 4:46:55 InnoDB: Error: page 7 log sequence number 45 3368182252
InnoDB: is in the future! Current system log sequence number 42 975484940.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/forcing-innodb-recovery.html
どうすればこれを修正できますか?
3つのオプションがあります
準備ステップは、乗車のために丸太を運ぶことを目的としていました。戻ってバックアップを再度実行する必要があります。
車輪の再発明ではなく、私の投稿を参照してください InnoDBログシーケンス番号は将来のものです
これはかなり危険ですが、2つの連続するrsyncに同じ時間がかかるまで、ライブMySQLインスタンスに対してrsyncを複数回実行できます。次に、ソースでmysqlをシャットダウンし、もう1つrsyncを実行します。次に、デューデリジェンスの後、新しいサーバーでmysqlを起動します。
私の以前の投稿を参照してください 「将来」MySQL InnoDBログから抜け出すためのより良い方法はありますか?
このブログ投稿 は、ib_logfile0
およびib_logfile1
なしでfrm
およびibd
ファイルからデータを回復する方法を説明しています。 (もちろん、これはログファイルに書き込まれただけのデータを回復しません。)ガイドは少しラフで、あちこちで適応させる必要がありますが、私のために働きました。