2009/03/22

MySQLのレプリケーションねた2つ

MySQLのレプリケーション関連で、最近起きたトラブルねたを2つ

  • レプリケーションの遅延時間が時々異常に大きな値を示す場合がある。
  • MySQLのバージョンアップしたらレプリケーションが動かなくなった。
一つ目のレプリケーションの遅延時間は、Nagiosの監視(5分おき)から単発で大きすぎる遅延(5分以上)を検出していた。検出されてからコンソールで状態を確認(SHOW SLAVE STATUS\G)しても"Seconds_Behind_Master"は0としか表示されないことが続いていた。

原因は、マスタとスレーブがNTPの時刻合わせで正しい時間に設定される前にレプリケーションを初めてしまったため。レプリケーションの開始時にスレーブは、マスタとスレーブの時刻のズレを記憶して遅延時間を算出している。NTPの設定で、マスタとスレーブの時刻のズレが有る状態から無い状態へ変化していても遅延時間の算出する時には、時刻のズレを考慮しているので、異常に大きな遅延時間が出ていた。ちなみに、まったく遅延をしていない(=最新のバイナリログが実行済み)の場合は、"Seconds_Behind_Master"は必ず0と表示されるので、遅延が発生しない限り異常な値を示さない。

解決方法は、簡単でレプリケーションを止めてからまた始めるだけ。そうすることで、もう一度マスタとスレーブの時刻のズレが正しい値になるので、異常な遅延時間が出なくなる。


2つ目の"MySQLのバージョンアップしたらレプリケーションが動かなくなった"のは、マスタ側のMySQLを5.0.51aから5.0.77へバージョンアップしたらレプリケーションが止まった。(スレーブ側は5.0.51a)

原因は"my.cnf"に記述するバイナリログファイル名の仕様変更(?)だった。バイナリログを出力するためにmy.cnfに"bin-log="とだけ記述して、ファイル名を指定していないと引っかかる。

ファイル名を指定しないとバイナリログインデックスファイル([バイナリログファイル名].index)に記述されるバイナリログのファイルのパスが、バージョンアップをしたら相対パスから絶対パスに変わった。バイナリログファイル名を記述してある場合は、どちらの場合も相対パスのままだった。

対策としては、必ずバイナリログファイル名を記述するとバージョンアップをしても問題無く使える。(指定していなければ、今のバイナリログファイル名と同じファイル名をmy.cnfに記述しておく)

2008/12/29

Cactiの表示がおかしい

CentOS 4が入っているサーバーで、CactiのCPU表示がおかしくなっていたのでメモ

snmpのバグでInteger Maxになった際の挙動が変だった。

UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 4294967295

RedHatのBugzillaにもあがっていたので、yumでアップデートして対応完了!

==Bug 223775 - ssRawCpu* stays on 2^32-1 forever ==
https://bugzilla.redhat.com/show_bug.cgi?id=223775

==net-snmp bug fix update==
http://rhn.redhat.com/errata/RHBA-2007-0738.html

2008/10/04

Jrubyが動かん

Java 6で、JRuby 1.1.7のバイナリパッケージを展開してPATHを通しても動かない。
ちゃんと、JAVA_HOMEの環境変数を指定してもエラーが出て動かない

Exception in thread "main" java.lang.NoClassDefFoundError: org/jruby/Main

ソースも添付されていたから、JRubyそのものをビルドしなおしたら動いた。

2008/09/30

connect: Network is unreachable

default gateway の設定ミスorz

同じネットワークセグメントからはアクセスできて、外のネットワークにつなげない場合にちゃんとルーティングが正しいかどうか要確認

2008/09/17

Poderosaで文字化けしたのはフォントのせいだった

Poderosaで接続してるとコンソールの設定をUTF8で、ちゃんと表示される状況でも文字が化ける。(Linuxのマシンから接続すれば正常に表示される)
ただ単にフォントが無かっただけなんだけど、オプションで選択して設定できなかったのでメモ

メニューから "ツール" ->" 詳細プリファレンスエディタ"を選択

"org.poderosa.terminalemulator.japaneseFontName"を編集して、"Arial Unicode MS"を設定する。

これで、大半の言語は表示できる。

2008/08/29

Vistaでスリープするとネットワークに繋がらなくなる

Vistaの不具合というより、マザーボード(GigaByte EP45-DR3R)の不具合なので最新(F9)のBIOSのアップデートで直る。

中途半端に繋がったりして原因究明が手間取ったけど今のところ不具合が消えて問題はなくなった。

2008/09/01追記
また症状が出てきて、元に戻った・・・orz
どうも、DHCP絡みなので固定IPを設定して解決!(でいいのか?)

2008/08/17

Poderosa on Vista

PoderosaをVistaで快適に使う方法

ただ一つ

"C:\Program files\poderosa"にインストールしない。

これだけで、わざわざ管理者権限で使わなくても、ssh_known_hostは追加されるし設定等が起動のたびに初期化されることもなくなる。

Vistaから"C:\Program files\"以下に設定ファイルなどがを置けないように仕様が変わったのに、poderosaが対応できていないのがいけないんだけど、インストール場所を変えるだけで回避できるから、目をつぶろう