skillup

技術ブログ

Database

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

投稿日:

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

連鎖倒産

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

デメリット

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

対策

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

エラー監視

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

デメリット

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

対策

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

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

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

デメリット

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

対策

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

-Database
-

執筆者:


comment

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

関連記事

no image

SQL結合 サブクエリに関して

今回はサブクエリに関してです。 もちろんSQL実践入門を読み進めています。 SQL上ではテーブル、ビュー、サブクエリというのは機能的にはそれほど変わらず主にパフォーマンスの点で違いがでてきます。 以下 …

no image

SQLのチューニングに関して

ここ2か月ぐらいはSQLの本でがりがり勉強してきましたね。当然復習も必要かと思いますが、だいぶいろんなことを覚えたなあという気がします。 一番勉強になった本はもちろん「達人に学ぶ SQL徹底指南書」と …

no image

mysqlデータのCSV出力

ガチンコ塾のブログでもかいたのですが、行動力が大切だなーと思う今日この頃。 社長が熟練のJavaエンジニアで基本的に聞けば、基本的に解決することが多いのですが、外部の勉強会などにも出て情報収集の必要性 …

no image

HAVING句について

本日はHAVINGについて。 かろうじて用法はしっており、たまに使うこともありますが、あまりしっかり理解しているとはいえない状況ですので、掘り下げてみようと思います。 WHEREとは違い、抽出した結果 …

no image

MySQLのSETとFIND_IN_SETについて

MySQLの方ですが、単純な文字列や、数字、日付の他に配列に近いSET型、また5.7以降ではJSONなどを入れることができます。 Contents1 SET型2 FIND_IN_SET SET型 いわ …