SQL Server Management Studio を使用したレプリケーションによる MS SQL の高可用性
ミッションクリティカルな環境で重要な要件の1つは、パスワードへのアクセスが妨害されないことです。PAM360には、この実現のため、高可用性機能があります。Microsoft SQL (MS SQL) サーバーで実行されるセットアップの高可用性 (HA) を構成する際、MS SQL Server Management Studio を使用してマスター MS SQL データベースとスレーブ MS SQL データベースの間でレプリケーションを実行できます。MS SQL Serverに同じ高可用性構成を説明する別のドキュメントがありますが、ただ1つ違うのは、マスターとスレイブMS SQLデータベースの間のレプリケーションがPAM360自体を使って実行される点です。
必要な手順
手順1:
プライマリ サーバーが実行されている場合は停止します。
手順2:
PAM360プライマリサーバーが使用する MS SQL Serverは、マスタ―データベースとして機能します。MSSQL の別のインスタンスをスレーブ データベースとして指定する必要があります。次に、MS SQL ServerスレイブデータベースのSSL証明書をPAM360プライマリサーバーにインポートします。この手順に進む前に、MS SQL スレーブ サーバーも SSL で構成されていることを確認してください。以下の手順を実行することでこれを行うことができます。
SQL ServerのSSL証明書をPAM360プライマリにインポートするには:
<PAM360 Primary Installation Folder>/bin ディレクトリに移動し、コマンドimportCert.bat <slavecert.cer >を実行します。
手順3:
<PAM360 Primary Installation Folder>/confディレクトリに移動し、ファイルmasterkey.keyを開き、SQL マスターキーをコピーします。これは次の手順で使用します。(SQL サーバーの統合中に推奨に従ってこのキーを安全な場所に移動した場合、次の手順で使用できるようにキーを保管しておいてください)。
手順4:
マスター MS SQL データベースとスレーブ MS SQL データベース間の MS SQL サーバー レプリケーションを構成します。
前提条件:
1.MS SQL Server Management Studio がシステムにインストールされていることを確認してください。
2.MS SQL サーバーのインスタンスにレプリケーションがインストールされているかどうかを確認します。この場合にのみ、Microsoft SQL Server Management Studio はレプリケーション コンポーネントにアクセスできるようになります。
3.セカンダリ サーバーで SQL サーバー レプリケーションを構成する前に、データベースを作成し、以下のクエリを実行します:
i) CREATE TABLE SeqGenState ( ROWGUID UNIQUEIDENTIFIER ROWGUIDCOL UNIQUE DEFAULT NEWSEQUENTIALID(), SEQNAME VARCHAR(100) NOT NULL, CURRENTBATCHEND BIGINT NOT NULL, CONSTRAINT SeqGenState_PK PRIMARY KEY CLUSTERED (SEQNAME));
ii) CREATE TABLE Ptrx_ResGrpNotifyActionList ( ROWGUID UNIQUEIDENTIFIER ROWGUIDCOL UNIQUE DEFAULT NEWSEQUENTIALID(), NOTIFY_ID BIGINT, ACCOUNT_ID BIGINT NOT NULL, ACTION_TYPE VARCHAR(200), SHARECHANGEUSER_ID VARCHAR(1000), OPERATED_NAME VARCHAR(300), OPERATED_TIME DATETIME, IPADDRESS VARCHAR(255), PRIMARY KEY CLUSTERED (NOTIFY_ID));
iii) CREATE TABLE "MSPSeqGenState" ( ROWGUID UNIQUEIDENTIFIER ROWGUIDCOL UNIQUE DEFAULT NEWSEQUENTIALID(), "ORGANIZATIONID" BIGINT NOT NULL, "SEQNAME" NVARCHAR(100) NOT NULL, "CURRENTBATCHEND" BIGINT NOT NULL, CONSTRAINT "MSPSeqGenState_PK" PRIMARY KEY CLUSTERED ("ORGANIZATIONID", "SEQNAME"));
1.SQL Server レプリケーションの構成
MS SQL Server Management Studioを起動します。明確に理解できるように、構成手順は 3 つの部分に分かれています。
覚えておくべきポイント:
- [次へ]をクリックする前に、各ウィザードの説明書をよくお読みください。
- 完全レプリケーションプロセスが終了したときのみ、[終了]をクリックします。プロセスの途中で [完了] をクリックすると、構成が壊れたり、不完全になったりします。
- いつでも[キャンセル]をクリックして、構成プロセスを中断できます。
I部 - ディストリビューションを作成:
- オブジェクト エクスプローラーで、[レプリケーション] を右クリックし、[ディストリビューションの構成] をクリックします。
- 表示されたディストリビューションの構成ウィザードで、最初のオプションを選択します。つまり、以下のスクリーンショットに示すように、このサーバー自体を独自のディストリビュータとして使用することを選択します。[次へ]をクリックします。
- スナップショットを保存するルート フォルダを指定します。[次へ]をクリックします。
- ディストリビューションの名前を指定します。ディストリビューション データベース ファイルとログ ファイルをそれぞれ保存するフォルダを選択します。[次へ]をクリックします。
- このディストリビュータがパブリッシャーになったときに使用するサーバーを選択します。
- このウィザードを終了するときに何を行うかを選択します。[ディストリビューションの構成]または[スクリプト・ファイルの生成]、またはその両方を選択できます。[次へ]をクリックします。
- [完了]をクリックしてプロセスを完了するか、[戻る]をクリックして前の画面で選択したオプションを確認します。このウィザードを閉じた後に何が起こるかについて詳しくは、以下のスクリーンショットを参照してください。
- [完了]をクリックすると、以下のスクリーンショットに示すように構成処理が表示されます。ディストリビューションの構成を停止する場合は、[停止]をクリックします。
- 以下のスクリーンショットに示すように、成功メッセージが表示されたらウィンドウを閉じます。
II部 - パブリケーションを作成:
- オブジェクト エクスプローラーの [レプリケーション] で、[ローカル パブリケーション] を右クリックし、[新しいパブリケーション] をクリックします。
- 表示された新しいパブリケーション ウィザードで、パブリッシュするデータとオブジェクトを含むプライマリ データベースを選択します。[次へ]をクリックします。
- パブリケーションの種類として[パブリケーションの統合]を選択します。選択したパブリケーションの種類がアプリケーションの要件と互換性があることを確認してください。[次へ]をクリックします。
- このパブリケーションのサブスクライバーが使用する SQL Server 2008 としてサブスクライバー タイプを選択します。[次へ]をクリックします。
- 次の手順では、記事として公開するテーブルを選択し、[次へ]をクリックします。以下のテーブルを除くすべてのテーブルを選択します:
- SeqGenState
- Ptrx_ResGrpNotifyActionList
- MSPSeqGenState
- アプリケーションが期待どおりに機能し続けるためには、アプリケーションの変更が必要になる可能性がある、画面に表示された問題を選択します。[次へ]をクリックします。
- この手順では、テーブルの行をフィルタリングできます。[追加] をクリックしてパブリケーションへのフィルターの追加を開始します。アプリケーション内のデータをフィルターしたくない場合は、[次へ] をクリックします。
- スナップショット エージェントをすぐに実行するか、指定した日時にエージェントを実行するようにスケジュールするかを選択します。[次へ]をクリックします。
- [必須] 実行するエージェントのアカウント名とその接続設定を指定します。[次へ]をクリックします。
- これは、スナップショット エージェントを実行するドメインまたはマシン アカウントを選択する手順です。[SQL Server エージェント サービス アカウントで実行する]オプションを選択します。また、[プロセス アカウントを偽装する]方法を選択してパブリッシャーに接続します。[OK]をクリックします。
- このウィザードを終了するときに何を行うかを選択します。パブリケーションの作成またはスクリプト ファイルの生成、あるいはその両方を選択できます。[次へ]をクリックします。
- パブリケーション名を指定します。[完了]をクリックしてプロセスを完了するか、[戻る]をクリックして前の画面で選択したオプションを確認します。このウィザードを閉じた後に何が起こるかについて詳しくは、以下のスクリーンショットを参照してください。
- [完了] をクリックすると、以下のスクリーンショットに示すように、パブリケーションが作成されていることがわかります。パブリケーションの作成を停止する場合は、[停止]をクリックします。
- 以下のスクリーンショットに示すように、成功メッセージが表示されたらウィンドウを閉じます。
スナップショット エージェントのステータスの表示:
パブリケーションを右クリックし、[スナップショット エージェント ステータスの表示]をクリックします。スナップショット作成の進行状況を示す以下のウィンドウが表示されます。このプロセスには数分かかります。スナップショットが正常に生成されたら、ウィンドウを閉じます。それぞれのボタンをクリックして、エージェントを開始したり監視したりすることもできます。
III部 -サブスクリプションを作成:
- オブジェクト エクスプローラーの [レプリケーション] >> [ローカル パブリケーション] で、パート II (プライマリ) で作成したパブリケーションを右クリックし、[新しいサブスクリプション] をクリックします。
- 表示される新しいサブスクリプションウィザードで、II部(PAM360-HA)で作成したパブリケーションを選択します。[次へ]をクリックます。
- エージェントの統合を実行する場所を選択します。以下のスクリーンショットに示すように、最初のオプションを選択します。[次へ]をクリックします。
- [必須] サブスクライバーを選択し、各サブスクリプションのデータベースも選択します。[次へ]をクリックします。
- これで、サーバーに接続できるようになります。以下のスクリーンショットに示すように、必要なサーバー情報を構成します。[接続]をクリックします。
- データベース サーバーに接続すると、新しいサブスクリプション ウィザードが再度表示されます。[次へ]をクリックします。
- [必須] サブスクリプションのセキュリティ情報を入力します。各統合エージェントのプロセス アカウントと接続オプションについて言及します。[次へ]をクリックします。
- サブスクリプションの同期時に統合エージェントが実行されるドメインまたはマシン アカウントを指定します。パブリッシャーとディストリビューターに接続する方法を選択します。さらに、サブスクライバーへの接続方法を選択します。[OK]をタップします。
- 各統合エージェントのプロセス アカウントと接続オプションを指定します。[次へ]をクリックします。
- [エージェント スケジュール] ドロップダウンで利用可能なオプションから各エージェントの同期スケジュールを選択します。[次へ]をクリックします。
- パブリケーション データとスキーマのスナップショットを使用してサブスクリプションを初期化するかどうかを選択します。[次へ]をクリックします。
- 利用可能なオプションからサブスクリプションのサブスクリプション タイプを選択します。また、競合解決の優先順位を選択します。[次へ]をクリックします。
- このウィザードを終了するときに何を行うかを選択します。サブスクリプションを作成するか、スクリプト ファイルを生成するか、あるいはその両方を選択できます。[次へ]をクリックします。
- [完了]をクリックしてプロセスを完了するか、[戻る]をクリックして前の画面で選択したオプションを確認します。このウィザードを閉じた後に何が起こるかについて詳しくは、以下のスクリーンショットを参照してください。
- [完了] をクリックすると、以下のスクリーンショットに示すように、サブスクリプションが作成されていることがわかります。サブスクリプションの作成を停止する場合は、[停止]をクリックします。
- 以下のスクリーンショットに示すように、成功メッセージが表示されたらウィンドウを閉じます。
同期ステータスの表示:
[サブスクリプション] を右クリックし、[同期ステータスの表示] をクリックします。同期の進行状況を示す以下のウィンドウが表示されます。これには数分かかります。同期が 100% 完了したら、ウィンドウを閉じます。それぞれのボタンをクリックして、同期を停止したり監視したりすることもできます。
これで、SQL サーバーのレプリケーションが正常に完了しました。
IV部 - クエリを実行:
プライマリ サーバーで以下のクエリを実行します:
update Ptrx_HighAvailability set INSTANCENAME='MASTER_INSTANCE' where Ptrx_HighAvailability.ISMASTER='true';
update Ptrx_HighAvailability set INSTANCEPORT='MASTER_PORT' where Ptrx_HighAvailability.ISMASTER='true';
update Ptrx_HighAvailability set INSTANCENAME='SLAVE_INSTANCE' where Ptrx_HighAvailability.ISMASTER='false';
update Ptrx_HighAvailability set INSTANCEPORT='SLAVE_PORT' where Ptrx_HighAvailability.ISMASTER='false';
手順5:
プライマリサーバーを起動します。
手順6:
PAM360の別のインスタンスを個別ワークステーションにセカンダリサーバーとしてインストールします。インストールプロセス中、PAM360をセカンダリとしてインストールするには、オプション"このサーバーを高可用性セカンダリサーバーとして構成(読取専用)"を選択します。インストール後、PAM360セカンダリサーバーを起動する必要はありません。
手順7:
PAM360セカンダリサーバーをインストールした後、それを変更し、以下の手順を実行して、MS SQLで実行します:
- ChangeDB.bat を実行します。
- ファイル<PAM360 Standby Installation Folder>/bin ChangeDB.bat (Windows)または<PAM360 Standby Installation Folder>/bin sh ChangeDB.sh (Linux)を編集して、SQL Serverについての詳細をPAM360に入力します。
- SQL Server を選択し、以下のように値を入力します:
- スレーブデータベースのホスト名: MS SQL サーバーがインストールされているマシンの名前または IP アドレス。
- ポート:PAM360がデータベースと接続する必要があるポート番号。デフォルトでは1433です。
- データベース名:スレーブ データベースの名前。ここでは、上記のステップ 4 で行ったとおりにスレーブ データベースの名前を正確に指定するように注意してください。
- 認証:SQL サーバーに接続する方法。SQL ServerをWindowsから接続している場合、Windowsシングルサインオンファシリティを利用するオプションがあります。ただし、PAM360サービスは、SQL Serverに接続する権限があるサービスアカウントで実行されている琴が条件です。その場合は、[Windows]オプションを選択してください。それ以外の場合は、[SQL]オプションを選択します。認証に使用されるユーザー名とパスワードはどこにも保存されないため、[Windows]オプションを選択することをお勧めします。
- ユーザーネームとパスワード:オプション"SQL"を選択した場合、PAM360をデータベースに接続する必要があるユーザー名とパスワードを指定します。ここで入力したユーザー名とパスワードは、PAM360に保存されます。したがって、ホストの強化に注意してください。
ここでは、Windows からデータベースに接続している場合は、Windows ログイン認証情報も使用するオプションがあります。この場合、ユーザー名を次のように入力します:<domain-name>\<username>。 - 暗号化キー:データをSQLサーバーで暗号化および保存するキー。"デフォルト"のままにするか、PAM360にしてキーを生成します。カスタム キーを使用してマスター データベースを構成した場合は、ここでも[カスタム]を選択します。
- [カスタム]オプションを選択した場合: 上記を実行した後、Master データベースに記載されているように、GUI で証明書名と対称キー名を指定します:
- [テスト]をクリックし、[保存]をクリックします。
手順8:
PAM360ライセンス、カスタムアイコンおよびリブランディング設定(該当する場合)をセカンダリに適用するには、プライマリから各ファイルをコピーし、セカンダリに貼り付けます。
手順9:
manage_key.confをプライマリからセカンダリにコピーし、ファイルを編集して、ファイルpam360_key.key (暗号化マスターキー)の場所を指定します。次に、セカンダリサーバーを起動します。PAM360では、起動するごとに、pam360_key.keyファイルにフルパスでアクセスできる必要がありますので、注意してください。いずれにせよ、正常に起動した後はキーは必要ないため、キー ファイルのあるデバイスはオフラインになることができます。
2.高可用性セットアップの確認
上の手順を実行した後、プライマリまたはセカンダリサーバーの[管理者] >> [全般] >> [高可用性]で、メッセージを確認し、高可用性セットアップが正常に作動しているか確認します。セットアップが適切であれば、次のステータス メッセージが表示されます:
高可用性ステータス: 稼働中
これは、高可用性が正常に機能していることを示しています。ステータスが「失敗しました」に変わった場合、セットアップが失敗したことを表しています。