SQL Server Management Studio を使用した複製設定
Microsoft SQL Server(MS SQL)を使用してセカンダリサーバ(高可用性またはHA)を構成する場合、プライマリおよびセカンダリのMS SQLデータベース間のデータベース複製を設定する必要があります。この設定は、PAM360から直接、またはSQL Server Management Studio経由で行うことができます。このドキュメントでは、SQL Server Management Studioを使用してプライマリデータベースとセカンダリデータベース間のMS SQL Serverレプリケーションを設定するための詳細ガイドを提供します。
1.前提条件
- PAM360インスタンスが稼働中のプライマリ・サーバーがある場合は、手動レプリケーションを続行するためにサーバーを停止します。
- PAM360 が使用する MS SQL プライマリサーバーがプライマリデータベースとして機能します。Microsoft SQL Server Management Studioを使用して手動レプリケーションを設定する際に、MS SQLの別のインスタンスをセカンダリデータベースとして指定する必要があります。
- 次に、MS SQLセカンダリデータベースのSSL証明書をプライマリサーバーにインポートします。セカンダリデータベースがまだSSLで設定されていない場合は、参照ヘルプドキュメントを使用して設定する必要があります。PAM360 では、データベース間の安全な通信を確保するために SSL が必須です。SSL証明書のインポートを行うには、コマンドプロンプトを開き、<PAM360-Primary-Installation-Directory>/binフォルダに移動し、以下のコマンドを実行します:
importCert.bat <Absolute-Path-of-the-MS-SQL-Secondary-Database-SSL-Certificate>
- SSL証明書のインポートが完了したら、<PAM360-Primary-Installation-Directory>/confフォルダに移動し、masterkey.keyファイルを開きます。次のステップで使用するために、このファイルからSQL Master Keyをコピーします。SQLサーバーを統合する際に推奨されたように、このキーを安全な場所に移動している場合は、次のステップで使用できるようにしておきます。
- システムにMicrosoft SQL Server Management Studioがインストールされていることを確認します。
- Microsoft SQL Server のインスタンスにレプリケーションがインストールされているか検証します。インストールされている場合のみ、Microsoft SQL Server Management Studioがレプリケーション・コンポーネントにアクセスできるようになります。
- セカンダリサーバーに SQL サーバーレプリケーションを設定する前に、セカンダリサーバーにデータベースを 作成し、以下のクエリを実行します:
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));
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), REASON VARCHAR(2500),PRIMARY KEY CLUSTERED (NOTIFY_ID));
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"));
2.プライマリおよびセカンダリの MS SQL データベース間の Microsoft SQL Server レプリケーションの構成
構成手順は、分かりやすいように4つのセクションに分類されています。システムにインストールされている Microsoft SQL Server Management Studio を起動し、MS SQL プライマリサーバーに接続し、次に続くステップを実行します。
ベストプラクティス
- 各ウィザードの説明をよく読み取り、[Next]をクリックします。
- レプリケーションプロセスが完全に終了した場合にのみ、[Finish]をクリックします。処理の途中で [Finish]をクリックすると、構成が壊れたり不完全になったりします。
- Cancelをクリックすると、いつでも構成プロセスを中止できます。
2.1 ディストリビューションの作成
- Microsoft SQL Server Managemenst Studioの[Object Explorer] メニューで、[Replication]モジュールを右クリックし、[Configure Distribution]をクリックします。
- Configure Distribution Wizardが開くので、[Next]をクリックして続行します。
- SQL Server Agent Startページが開いたら、[Yes, configure the SQL Server Agent service to start automatically]を選択し、サブスクリプションを同期するレプリケーショ ン エージェントの無人稼働を避けます。
- 次に開く [Distributor] ページで、 最初のオプション(つまりこのプライマリーサーバーをディストリビューターとして選択すること)を選択し、 [Next] をクリックします。
- スナップショットを保存するルートフォルダを指定し、[Next]をクリックします。
- Distribution database nameをpmpdistribution と入力します。ディストリビューションデータベースファイルとログファイルを格納するフォルダをそれぞれ選択し、[Next]をクリックします。
- このディストリビューターがパブリッシャーになったときに使用するプライマリサーバーを選択します。
- Configure distributionチェックボックスを有効にして、[Next]をクリックします。
- Finishをクリックして処理を完了するか、または[Back]をクリックして前の画面で選択したオプションを確認します。このウィザードのページは、このウィザードを閉じた後の詳細を表示します。
- Finishをクリックすると、以下のスクリーンショットのように、構成の進行が表示されます。ディストリビューションの構成を停止する場合は、「Stop」をクリックします。
- 以下のスクリーンショットのようにSuccessメッセージが表示されたら、ウィンドウをCloseします。
2.2 パブリケーションの作成
- Object Explorerメニューの[Replication]モジュールで、Local Publicationを右クリックし、 [ New Publication]をクリックします。
- New Publication Wizardが開くので、[Next]をクリックして続行します。
- New Publication Wizardから、公開するデータとオブジェクトを含むprimaryサーバーに作成されたデータベースを選択し、[Next]をクリックします。
- Publication TypeとしてMerge Publicationを選択します。選択したパブリケーションタイプがアプリケーション要件と互換性があることを確認し、[Next]をクリックします。
- このパブリケーションのサブスクライバが使用するSubscriber Typeとして、SQL Server 2008 or laterを選択します。Nextをクリックします。
- 次のステップでは、項目としてパブリッシュするテーブルを選択します。以下のテーブル以外のテーブルを全て選択し、[Next]をクリックします:
- SeqGenState
- Ptrx_ResGrpNotifyActionList
- MSPSeqGenState
- 画面に表示された問題のうち、アプリケーションの変更が必要なものを選択し、[Next] をクリックします。期待どおりに機能し続けるようにします。
- このステップでは、Filter Table Rows(表の行をフィルタリング)できます。アプリケーションのデータにフィルタを適用しない場合は、[Next] をクリックします。Addをクリックして、パブリケーションへのフィルタの追加を開始します。
- Snapshot Agentを直ちに実行するか、または指定した日/時刻にエージェントを実行するようスケ ジュールするかを選択します。Nextをクリックします。
- Security Settingsをクリックして、エージェントを実行するアカウントの詳細と接続設定を指定します。
- スナップショット・エージェントを実行するドメインまたはマシンのアカウントを選択します。オプション"Run under the SQL Server Agent service account"を選択します。また、パブリッシャに接続する方法として"By impersonating the process account"を選択し、[OK]を クリックして続行します。
- Create the Publicationチェックボックスを有効にして、[Next]をクリックします。
- Publication nameとしてPMP-HAを選択し、[Finish]をクリックしてプロセスを完了するか、[Back]をクリックして前の画面で選択したオプションを確認します。このウィザードを閉じた後の詳細については、以下のスクリーンショットを参照してください。
- Finishをクリックすると、以下のスクリーンショットに示すようにパブリケーションが作成されます。パブリケーションを停止する場合は、[Stop]をクリックします。
- 以下のスクリーンショットに示すように、Successメッセージが表示されたらウィンドウをCloseします。
スナップショット・エージェントのステータスを表示:
Publicationを右クリックし、[View Snapshot Agent Status]をクリックします。スナップショット作成の進行状況を示すウィンドウが開き、処理には数分かかります。スナップショットが無事に作成されたら、ウィンドウをCloseします。それぞれのボタンをクリックすることで、エージェントをStartまたはMonitorできます。
2.3 サブスクリプションの作成
- Objective Explorer メニューの[Replication] >> [Local Publications] で、セクション 2 で作成したパブリケーションを右クリックし、[New Subscriptions] をクリックします。
- 表示されたNew Subscription Wizardで、サブスクリプションを作成するパブリケーション (セクション 2(PMP-HA) で作成) を選択し、[Next] をクリックします。
- Merge Agentを実行する場所を選択します。下のスクリーンショットに示すように最初のオプションを選択し、[Next]をクリックします。
- 開いたSubscribersウィザードで、サブスクライバーを選択し、サブスクリプションのセカンダリ サーバー データベースを選択します。次に、[Add SQL Server Subscriber]をクリックして、セカンダリサーバー情報を追加します。
- 開いたポップアップで、セカンダリ Microsoft SQL サーバー情報を入力し、Connectをクリックします。
- セカンダリデータベースサーバに接続したら、New Subscription Wizardの[Next]をクリックします。
- サブスクリプションのセキュリティ情報を入力します。各Merge Agentのプロセス アカウントおよび接続オプションを指定します。
- 下のスクリーンショットに示すように、サブスクリプションが同期されるときにマージ エージェントが実行されるアカウントを指定します。パブリッシャーとディストリビューターへの接続方法を選択します。さらに、それぞれのセカンダリ サーバーログイン認証でサブスクライバーに接続する SQL サーバーログインを選択し、[OK] をクリックします。
- Agent Scheduleドロップダウンで選択可能なオプションから各エージェントの同期化スケジュールを選択し、[Next]をクリックします。
- 公開データとスキーマのスナップショットでサブスクリプションをInitialize(初期化)するかどうかを選択し、[Next]をクリックします。
- 利用可能なオプションからサブスクリプションのSubscription Typeを選択します。また、Priority for Conflict Resolution(競合解決の優先度)を選択し、[Next]をクリックします。
- Create the subscription(s)チェックボックスを有効にして、[Next]をクリックします。
- Finishをクリックして処理を完了するか、[Back]をクリックして前の画面で選択したオプションを確認します。このウィザードを閉じた後の詳細については、以下のスクリーンショットを参照してください。
- Finishをクリックすると、以下のスクリーンショットのようにサブスクリプションが作成されます。サブスクリプションの作成を停止したい場合は、Stopをクリックします。
- 以下のスクリーンショットのようにSuccessメッセージが表示されたら、ウィンドウをCloseします。
同期ステータスの表示
Subscriptionを右クリックし、[ View Synchronization Status]をクリックします。下のウィンドウが表示され、同期の進行状況を確認できます。同期完了までに数分かかります。同期が100%完了したら、ウィンドウを閉じます。StopまたはMonitorボタンをクリックすると、同期を停止または監視できます。
これで SQL サーバーの複製は成功しました。
2.4 プライマリ・サーバー内でのクエリの実行
プライマリ・サーバーで以下のクエリを実行します:
update Ptrx_HighAvailability set INSTANCENAME='MASTER_INSTANCE' where Ptrx_HighAvailability.ISMASTER='true';
例 :update Ptrx_HighAvailability set INSTANCENAME='pam-win11' where Ptrx_HighAvailability.ISMASTER='true';
update Ptrx_HighAvailability set INSTANCEPORT='MASTER_PORT' where Ptrx_HighAvailability.ISMASTER='true';
例:update Ptrx_HighAvailability set INSTANCEPORT='1433' where Ptrx_HighAvailability.ISMASTER='true' ;
update Ptrx_HighAvailability set INSTANCENAME='SLAVE_INSTANCE' where Ptrx_HighAvailability.ISMASTER='false';
例:update Ptrx_HighAvailability set INSTANCENAME='pam-secwin11' where Ptrx_HighAvailability.ISMASTER='false' ;
update Ptrx_HighAvailability set INSTANCEPORT='SLAVE_PORT' where Ptrx_HighAvailability.ISMASTER='false';
例:update Ptrx_HighAvailability set INSTANCEPORT='1433' where Ptrx_HighAvailability.ISMASTER='false';
MASTER_INSTANCE はプライマリ SQL サーバ、SLAVE_INSTANCE はセカンダリ SQL サーバ、MASTER/SLAVE_PORT は SQL サーバで使用されるポートです。
いますぐプライマリSQL Serverを起動してください。レプリケーションで問題が発生した場合は、[Replication>>Local Publications]に移動し、作成したパブリケーションを右クリックして[Launch Replication Monitor]をクリックします。開いたポップアップ内で、同期状態、最終同期の詳細などを確認できます。
いますぐ、ここに記載されているセカンダリ・サーバ設定を続行してください。
注意
PAM360 ビルド 8000 以降では、シームレスな操作のために、manage_key.confファイルで指定されたファイルパスにpam360_key.keyファイルを保持することが必須です。PAM360 はこのファイルに継続的にアクセスし、操作が中断されないようにします。pam360_key.keyファイルが指定されたパスに利用可能でない場合、サービスが起動しなかったり、データベースのバックアップなどの特定の機能が機能しないことがあります。










































