ブログ

おっと、MySQLバイナリログを削除しました

長い一日で疲れ果てて、間違いを犯してチーム全体に多大な時間を費やすこともあります。

Yesterday, I was testing various backup and recovery methods supported by ZRM, a MySQL backup service for an upcoming release. MySQLのZRM requires binary logging to be enabled on the MySQL server. I ran out of disk space during testing and removed the binary logs.

誤って、MySQLサーバーで使用された最後のバイナリログを削除しました。MySQLサーバーは最新のバイナリログを使用してデーモンを実行しています。

Short version - I could not start MySQL server at all.

MySQLバイナリログを回復する:サーバーを起動しようとしたときのスタックトレース

$service mysqld start

061031 17:38:48 mysqldが起動しました

061031 17:38:48 InnoDB:開始。ログシーケンス番号14 1645228884

/usr/libexec/mysqld: File '/var/lib/mysql/mysql-bin.000017' not found (Errcode: 2)

061031 17:38:48 [ERROR] Failed to open log (file '/var/lib/mysql/mysql-bin.000017', errno 2)

061031 17:38:48 [エラー]ログファイルを開けませんでした

061031 17:38:48 [ERROR] Can't init tc log

061031 17:38:48 [エラー]中止

061031 17:38:48 InnoDB: Starting shutdown...

061031 17:38:51 InnoDB:シャットダウンが完了しました。ログシーケンス番号14 1645228884

061031 17:38:51 [注] / usr / libexec / mysqld:シャットダウンが完了しました

061031 17:38:51 mysqldが終了しました

問題を解決する方法についてのアイディアをくれたAishwaryaに感謝します。バイナリログインデックスファイル(/var/lib/mysql/mysql-bin.index)には、最新のバイナリログファイルに関する情報が格納されます。インデックスファイルを削除すると、問題が解決します。もちろん、私はZRM for MySQLを使用してデータベースのバックアップを持っていて、バイナリログを削除する前の任意の時点に回復できました。

Bottom line: Do not delete the most recent binary log file to save disk space and do regular backups.  ZRM is preferred and here’s a リンク 詳細については

返信を残す

jaJapanese
en_USEnglish fr_FRFrench it_ITItalian es_ESSpanish de_DEGerman pt_BRPortuguese sv_SESwedish tr_TRTurkish nl_NLDutch pl_PLPolish zh_TWChinese id_IDIndonesian ko_KRKorean ms_MYMalay thThai jaJapanese