abecchiのブック
(112 keywords)

abecchiのお気に入り

  • Dictionary<string,dobby> Dictionary<string,dobby>
  • マインディアからのお知らせ マインディアからのお知らせ
  • akkun_choi pedia akkun_choi pedia

abecchiのブックのメンバー

  • akkun_choi akkun_choi
  • 西小倉パンデイロ 西小倉パンデイロ
  • 里香 里香
  • デイヴィッド デイヴィッド

abecchiのブックの最新の日記

前の5件 一覧を見る 次の5件

 

Couldn't read the MAX(ID) autoinc value from the index (PRIMARY)

MySQLで不具合に遭遇してDBが落ちてしまった。

システムをアップデートして一日後、MySQLがダウン。innodb_force_recoveryを設定して再起動しても、ログイン後SQLを実行した時点でエラーになり、最新データをエクスポートできない。最悪デイリーバックアップまでデータを戻して復旧させることを覚悟した。

エラーメッセージを見ていると、「Couldn't read the MAX(ID) autoinc value from the index (PRIMARY)」というメッセージが目に止まった。検索をかけるとMySQLのバグレポートに突き当たった。

http://bugs.mysql.com/bug.php?id=44030

要点は、

  • InnoDB, auto_increment, テーブル定義の変更で発生
  • 5.1.40でワークアラウンドが提供され、エラーは発生するもののデータのエクスポートが可能になる


というものだった。今サーバーで使っているバージョンが5.1.37だったので手元のWindowsマシンに最新の5.1.44をインストール、サーバーのDBディレクトリをまるごとコピーしてきて5.1.44で読み込ませた上でデータをエクスポート、それをクリーンインストールしたDBサーバーにインポートして何とか復旧した。

久々に徹夜した。

 

EC2でゾーン間EBSボリューム移動

Amazon EC2のTips

EBSボリュームはゾーンをまたいでマウントはできない。ただ、EBSボリューム自体をゾーンをまたいでコピーすることはできる。以下はその手順。

1. まずEBSボリュームをアンマウントした上で、スナップショットを取る。
2. スナップショットからEBSボリュームを作成する際、ゾーンを指定できるので、コピーしたいリージョンを選ぶ。

S3に保存したOSのイメージはインスタンスを起動する時にリージョンを指定できるので、こんなことはする必要はない。

注)ご指摘がありました。「リージョン間」ではなく「ゾーン間」でした。失礼いたしました。

 

IEの場合だけoffset.topが絶対座標を返さない(jQuery)

マウスオーバーでメニューバーの「上に」メニューを表示する機能を実装していたら、IEの場合だけoffset.topの値がおかしい事に気づいた。

日々の小ネタ:IEにおける座標の取得

またもや先人達の貴重なページのおかげで、IEの場合だけoffset.topの値がスクロール量を差し引いた「表示画面内の位置」、IE以外はスクロールを考えない「ドキュメント全体内の位置」を示している事に気づいた。jQueryでもいまだに解消されていないブラウザ間の差異だ。
仕方なくブラウザで場合分けしたコードを書いた。

var v_parent_menu_top = $(’#parent_menu’).offset().top;
if ($.support['cssFloat']) {
var v_new_top = v_parent_menu_top – v_menu_box_height;
} else {
var v_new_top = v_parent_menu_top – v_menu_box_height + $(’html:first’).scrollTop();
}

いつまでたってもシステム屋の苦労が絶えないわけである。

前の5件 一覧を見る 次の5件