skillup

技術ブログ

Database

アンチパターン 連鎖倒産+エラー監視+データのバックアップ

投稿日:

本日は主にインフラの設計的なことに関して。

連鎖倒産

いい言い方が思いつかなかったんでこんな感じにしました(汗)要はあるサーバーのレスポンスが悪いことが原因で他の業務が遅延し、影響を受けることです。

デメリット

  • 重要でないちょっとしたサービスの停止で他のシステムが止まる、などということが起こる
  • あるシステムがハングし、適切なエラーを返さないため、いつまでも応答を待ってしまう

対策

  • エラー時の対策、障害テスト。基本正常系を前提としないこと
  • 受け取るだけ受け取って、そのトランザクションは一旦終わりにし、その後の処理は別のトランザクションで行う(キューイング)
  • 同期と非同期を分けること
  • 基本マイナス思考(どこかしらでシステムが落ちる、失敗する)で考えること(汗)
  • 他のAPIなどを使っている場合も要注意。

エラー監視

正常に稼働しているかどうかの確認。

デメリット

  • 異常時の検知(サーバーの死活だけでなく、ユーザー権限なども注意)が遅れる
  • バッチ時の処理などすぐにはわからないもの

対策

  • 人間の注意力を過信しすぎないこと
  • 監視ツールでのテンプレートを参考にする
  • DB構築の中のプロセスの1つに入れる

データのバックアップ体制

バックアップをしていない。障害への対策が弱い

デメリット

  • いざというときに欲しいときにデータが得られない

対策

  • リカバリについてフルバックアップ(いわゆる全データのバックアップ)以外にも差分バックアップなどの方法に熟知しておく
  • DB構築時の手順書の中などにバックアップの考えを入れておく
  • やや別件だが障害対策時はてんぱっていることが多いので、処理をその場で考えずフローを書いておき頭から実行するのが良い

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

NOT EXISTSの利用2

今回もNOT EXISTSの利用です。 前回の問題にプラスアルファし、列が一緒でないと連続でも意味ない仕様にします。 例えば下記のようなテーブルがあるとします。 seat | row_id | sta …

no image

MySQLでのlocalhostと127.0.0.1の違い

たまにMySQLでローカルのホストに接続する時に、localhostで接続するときと127.0.0.1で接続するときで挙動が違う(片方だとエラーになり、もう片方だとエラーにならない)などがあるのでちょ …

no image

SQL基礎 手続き型言語と集合思考の言語

どんな仕事でもそうだと思いますが、長年惰性で使っていると日常の作業はなんとかできてるけど、実は深く理解していない&効率のいいやり方を知らない、ということが結構あります。 私の場合、ちょっと前にCSSを …

no image

自己結合のイメージ

前回に引き続き結合について考えます。 例えば下記のようなテーブルがあり、重複行を削除するとします。 1 りんご 50 2 みかん 100 3 みかん 100 4 みかん 100 5 バナナ 80 この …

no image

Cakeでのリレーションについて

いまさらながらCakeのリレーションについての復習。 基本から。 Contents1 基本的なリレーション1.1 1対N1.2 N対11.3 動的な紐づけ 基本的なリレーション 下記のようなテーブル構 …

アーカイブ