その他
    ホーム 技術発信 DoRuby Slony-Iでのフェイルオーバー手順

    Slony-Iでのフェイルオーバー手順

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    Slony-Iで同期をとっている環境での、マスタDBとスレーブDBのフェイルオーバー手順です。

    フェイルオーバー前

     マスタDB:db1

     スレーブDB:db2

    postgres@db1$ postgres stop
     →障害発生の想定
    postgres@db1$ slon_kill
     →db1,db2それぞれでSlonyデーモンを起動している場合なので注意
    postgres@db2$ slonik_failover 1 2 | slonik
     →これでdb2がマスタになり更新の操作が行えるようになる。
      フェイルオーバーはマスタが死んでても可能
     →アプリの参照DBを元スレーブのdb2に変更
    postgres@db1,2$ vi /usr/local/etc/slon_tools.conf
     ----------
     $MASTERNODE = 2; <==1を2に変えておく
     ----------
    postgres@db1$ postgres start
     →障害復旧の想定
    
    db1 をdb2からスキーマダンプなどしてDB作成(createlang忘れずに)
    
    postgres@db2$ slonik_drop_node 1 | slonik
    postgres@db2$ slonik_store_node 1 | slonik
    postgres@db2$ slonik_subscribe_set set1 1 | slonik
    postgres@db1$ slon_start
     →同期開始。冗長性回復
    
    記事を共有