2005年10月20日

サーバーの役割(ロール)変更

監視サーバー、または配布先サーバーで実行
 
新しいソースサーバーでピックアップされた配布先サーバーは継続
 
監視サーバーはクリティカルなコンポーネント
  フォールトトレラントにする
  監視サーバーがダウンしている場合は配布先サーバーで役割の変更を行う
 
手順
  1. ログインをコピーする DTS パッケージの作成
    DTSデザイナのログイン転送タスクを使用して sysxlogin のバックアップをコピー
    データベースユーザーは自動的にコピーされるがログインアカウントは手動コピーが必要
  2. ロール変更の実行 → 手動操作
    (1) sp_change_primary_role 'データベース名', final_state=3
      → 現プライマリサーバーで実行
        最後のバックアップを行い、プライマリサーバーを読み取り専用にする
      ※ final_state … データベース復旧状態
     
1 RECOVERY
2 NO RECOVERY
3 STANDBY
    (2) sp_change_secondary_role 'データベース名' → 現セカンダリサーバーで実行
        最後のバックアップログのコピー、復元を行い、セカンダリサーバーを変更可にする
      ※ 計画的に実行する場合は (1) → (2) と実行
         障害発生時等は (2) のみ実行
      sp_change_monitor_role → 監視サーバー上で実行
         役割変更通知確認、情報更新
      sp_resolve_logins → 変更後の新プライマリサーバーで実行
         データベースユーザーとログインアカウントの対応関係の確認、更新
 
ロール変更後のクライアントの接続性
  切り替えはクライアントから見て自然に行われるべき
    クライアント側に切り替えを確認させる何らかの仕組みが必要
  A. ODBC DSN を使用してアプリケーションを再指定 → ODBC 接続を複数作っておく
  B. ネットワーク負荷分散 (NLB) を使用して変更されたサーバー名を選択
    障害発生時、クライアント接続は自動切換え、SQL Server はログ配布で手動切り替え
  C. セカンダリサーバーの名前とIPアドレスをプライマリサーバーと同じに変更(要再起動)
    SQL Server が仮想サーバーとして構成されている場合は不可能 → 要クラスタ再インストール
  D. 新しいサーバーを指定するよう DNS を再構成 → 要キャッシュクリア
  A. か B. が簡単?
posted by w@ko at 19:27|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。