メイン

2005年09月26日

mySQLダウン

20時半くらいにmySQLがダウンしたみたいで、このBLog開けませんでしたね。
見に来ていただいたかたすいません。
どうもメモリリークがあるみたいで、徐々にSQLが使えるメモリ空間が減ってしまう。
極限まで行くとダウンする様です。
今のところ対策が見つかりません。

※Wordpressの事について書いたものです

2005年08月25日

またMS-SQLでトラブルだった

MS-SQLを使ってます。
バージョンは7ですね。
更新用DB < ----レプリケーション-------> 参照用DB
と2台での運用にしてるわけです。バックアップの意味も込めてレプリケーションを実施しています。即時更新型です。
ついこのまえはデータベース内に不整合があってレプリケーションの操作ができなくなってMSにサポート依頼して直しました。
それもつかのま、昨日は参照用DBにデータが降りてないってのでみてみたらレプリケーションモニタに赤×記がいっぱい出てるよ。何やっても消えない。そうこうしているうちにモニタに表示されているエージェントのリストがおかしくなってきた。
一番の原因は多分パブリケーションを設定しているサーバーのDBをおいているドライブが終わってしまったこと。これは前から注意してたんだけど一気に容量オーバーしちゃったよ。移設するか・・・今悩んでるところ。
それをきっかけにおかしくなったんだけど、はまった原因はディストリビューターになっている別のサーバーがこれまた容量一杯になったせいでディストリビューションのデータが狂っちゃったこと。
とりあえずドライブをできるだけ空けてやって、そのうえでdistributionというテーブルの中身を直接編集してやることで、すっごい時間がかかったけど直りました。心臓がドキドキしましたよ。

2005年08月01日

MS-SQL

土曜の深夜に来た雷、会社が停電になって・・・・ブレーカーが-落ちてたんだけど、それは2時間たらずで復旧してもらいました。
電源が復帰するとほとんどのサーバーは自動起動になってるんだけど、MS-SQLのメインサーバーが起動してませんでした。
日曜の晩にそれも復旧させたけど、どーかなーって心配してたこと、MS-SQLのレプリケーション。
2台がしばらく通信できないでいるとレプリケーションが停止してしまう。やっぱりそうなってました。
あまり長い時間停止してるとレプリケーションは再開できず、初期化しなくちゃならない。初期化って10G位のデータをせっせと複写するからめちゃくちゃ手間ひま係るんだよね。
案の定、再開不能だって。サブスクライバで初期化してね!って表示されるからしかたなく初期化しようとしてみたが・・・・
なんと!テーブルのどっかで引っかかって初期化できない、おまけに削除も出来なくなった。
触れるところは全部試したけどやっぱりだめだー、調子いいときはとても便利だけどだだこねはじめるととっても大変、レプリケーション。
今回ばかりはMSのサポートに有償できいてみようかな、って思う。
前に一度だけ、HDDが壊れてデータベースが死んだとき、サポートにお世話になったことがあります。電話で指示されながらあれこれやって復活させたんだけど、直るといいなぁ、6年分のデータのレプリカだから。

2003年04月01日

MS-SQLでまたはまった

前回、手作業で削除して直したタイムスタンプ列、こいつの残骸が残ってました。気づかなかったー。
夕方6時になったころに発見されました。大急ぎで直さねば・・・・・・
レプリケーションを解除するために、サブスクライバを外して、パブリケーションを消して・・・・・
・・・・・また同じだ~
まぁ今度はすんなり直しましたけど。

2003年03月13日

MS-SQLではまった

MS-SQLを3台で即時更新型のレプリケーションを設定してあります。
以前、訳あってほんとはダメなんですがレプリケーションを設定したまま強引にマスターテーブルの構造を変更しておきました。
そのマスターはデータ追加がないマスターだったので問題にならなかったのですが、久々データ追加動作に入り、つじつまがあわない事がサーバーにバレてしまいました。レプリケーションが停止状態です。
どうやら、レプリケーションを作りなおさなければいけないらしい・・・・
サブスクリプションを削除、次に、パブリケーションを削除。
それから改めてパブリケーションを作成。即時更新タイプのサブスクリプションを作成。
ここではまりました。
即時更新では相互更新のつじつま合わせにタイムスタンプを置いてそれで管理するかどうかの選択オプションがあり、選択を勘違いしてセットしてしまいました。
それでそのタイムスタンプの列を作る動作に3~4時間くらいかかったでしょうか?待ちました。
そうそう、データは3G程度です。
一通りのレプリケーションの設定をし、スナップショットでレプリカ作成の完了を待つこと・・・2時間くらいかな。
さてデータの更新テスト・・・・これはOK
そして、データ投入テスト・・・・・エラーだ????
なんで?
そう、そのタイムスタンプ列はNullではいけないのでした。
私の作ったC++のアプリケーションはそんなタイムスタンプまで対応していません。もうもう4年前のアプリだから直すのやだなぁ~
ということでまたレプリケーションを全部解除しました。
そしてタイムスタンプ列を取り外し。これも一つ一つのテーブルに対しての処理なので、全部で30個くらいあるテーブルでは外す処理のあと、完了までの待ち時間がそれぞれ数十分くらいずつかかり、全部で何時間かを要しました。
改めて、パブリケーション、サブスクリプションを作成して、スナップショットが完了するのを待ちました。
今度は正常に行きました。
うっかりしたミスでほとんど、一日つぶされました。
でも復帰できて良かった。データ投入部分が動作しなくなったので一瞬、全滅かと思った。