ここでは、レプリケーションの設計や構築を行う前の調査項目を説明します。
レプリケーションに使用できるSQL Serverの資源を確認してください。
データファイル
SQL Serverの資源をレプリケーションで、データファイルとして扱えるかを確認してください。
SQL Serverのテーブルとビューが使用できます。
同期方式や運用形態によって異なります。また、マスタとして使用するか、レプリカとして使用するかによっても異なります。
運用形態 | 同期方式 | マスタ | レプリカ |
---|---|---|---|
配布 | 一括方式 | テーブル | テーブル |
差分方式 | テーブル | テーブル | |
集約 | 一括方式 | テーブル | テーブル |
差分方式 | テーブル | テーブル | |
共用 | 一括方式 | - | - |
差分方式 | テーブル | テーブル |
※)主キーを必要とする同期方式(一括方式の処理モードが追加、更新)の場合は使用できません。
SQL Server 2005のシノニムは、PowerReplicationでデータファイルとして扱えません。
データ型
SQL Serverのデータファイルに使用できる項目のデータ型を、"2.1.3 データファイル"の"表2.4 使用できるSQL Serverのデータ型"を参照し確認してください。
PowerReplicationは、データ型を変換して異なるDBMS間を連携します。データ型を変換する仕組みは、"付録D データ型対応づけの仕組み"を参照してください。
制約
データファイルに設定するDBMSの制約を確認してください。
NOT NULL制約、一意性制約、CHECK制約、外部キー制約(参照整合性制約)
これらの制約を定義したデータファイルを反映先とした場合、制約に違反するようなデータ反映を行う同期の実行はエラーとなります。差分同期を使用するレプリケーションの環境を構築している場合、一括同期を実行して復旧することが必要な状態となります。
外部キー制約(参照整合性制約)
外部キー制約で関連しているすべてのデータファイルを同一のレプリケーショングループに定義してください。定義しない場合、同期実行後のデータファイルが参照制約条件を満たさない状態になる場合があります。
レプリケーションで必要な主キーがデータファイルに設定されているかを確認してください。
一括同期を行う場合、一括方式の処理モードが「追加」または「更新」のとき、マスタとレプリカの両方のデータファイルに主キーを設定することが必要です。
差分同期を行う場合、マスタとレプリカの両方のデータファイルに主キーを設定することが必要です。
レプリケーションの主キーは、NULL値およびデータの重複を許さない索引またはPRIMARY KEYを設定することが必要です。
データファイルの索引を構成する項目が複数存在する場合は、複数の項目を1つのレプリケーションの主キーとして扱います。
レプリケーションの主キーとして扱う索引またはPRIMARY KEYを構成する項目は、以下のデータ型を使用してください。
numeric
decimal
int
smallint
tinyint
char
varchar
datetime
smalldatetime
レプリケーションの主キーに、上記以外のデータ型を含む索引またはPRIMARY KEYを設定すると、同期の実行で誤ったデータが変更される場合や、エラーが発生する場合があります。この場合、一括同期を実行して復旧することが必要な状態となります。
文字データのコード系
データベースに格納する文字データのコード系を確認してください。
文字データのコード系が異なるデータベースを連携するため、レプリケーションで扱う文字データを正しく文字コード変換するための環境を構築することが必要です。
EBCDIC/JEFコードとシフトJISコードの変換を行う場合、PowerReplicationをインストールするサーバに文字コード変換製品をインストールし、文字コード変換の環境を構築することが必要です。対応する文字コード変換製品については、"1.4.1 動作環境"の"PRIMERGY 6000と連携する場合の前提製品"を参照してください。
EBCDIC/JEFコードとUnicodeの変換を行う場合、PowerReplicationをインストールするサーバに文字コード変換製品をインストールする必要はありません。この場合、文字コード変換はASP側で行われます。
JIS X 0123:2004に対応した文字セット(JIS2004)の4バイトの文字は、変換できません。また、外字(利用者定義文字)は連携する両方のシステムで正しく変換できない環境の場合、変換できません。変換できない文字が含まれる場合、代替文字‘_’(アンダーバー)に置き換えられて同期は継続されます。
変換できない文字が代替文字‘_’に置き換えられたことが、詳細メッセージ情報ファイルに出力されます。
同期対象のデータファイルを操作する利用者プログラムを点検してください。
レプリケーションを円滑に運用するため、利用者プログラムを点検することが必要です。
扱うデータファイル
"扱えるデータを確認する"で調査した結果から、利用者プログラムを点検してください。
データファイルを変更または再作成した場合、データファイルにアクセスしている利用者プログラムの見直しを行ってください。
データファイルの更新
差分同期を使用するレプリケーションの環境を構築する場合、データファイルの更新に、以下のSQL文またはCOBOL命令を使用していることを確認してください。
SQL文
INSERT文
UPDATE文
DELETE文
COBOL命令(PowerRDBconnectorを使用する場合)
WRITE命令
REWRITE 命令
DELETE命令
DBMSのユーティリティやその他の方法でデータファイルを更新する場合、トリガー機能が働かない方法で更新すると、データファイルを更新した内容が、反映先に差分方式の同期で反映できません。
なお、差分同期を利用してレプリケーションの環境を構築する場合、トリガー機能が働かない方法でデータファイルを更新しても、同期の実行で更新データが正しく反映されず、データベース間で整合性が保てない状態となります。
差分同期を利用してレプリケーションの環境を構築する場合、以下の方法でデータファイルを更新すると、同期の実行で更新データが正しく反映されず、データベース間で整合性が保てない状態となります。
SQL文のDDL文(TRUNCATE TABLE文、DROP TABLE文、ALTER TABLE文など)
BULK INSERTステートメントを使用したデータ転送
PowerRDBconnectorを使用した利用者プログラムからのOUTPUTモードのオープン
DTS(Data Transformation Service)を使用したCSVファイルのインポート
bcpユーティリティを使用したデータ転送
LINQ(Language Integrated Query)を使用したアプリケーションからの更新
データパーティション機能
データベース※の復元
※)この場合、データベースとは、同期対象のデータファイルおよび更新情報を格納したデータベースを示します。
SQL文、DTS、bcpユーティリティ、LINQおよびデータパーティション機能については、SQL Server Books Onlineを参照してください。
PowerRDBconnectorについては、"PowerRDBconnector説明書 SQL Server編"を参照してください。
データベース間で整合性が保てない状態になると、一括同期を実行して復旧することが必要です。
PowerRDBconnectorを使用する場合、使用するWindowsとDBMS製品の組合せを"PowerRDBconnector説明書 SQL Server編"を参照して確認してください。
同期と利用者プログラムの同時実行
レプリケーションサービスの同期と利用者プログラムが同時に実行される場合の影響を確認してください。
レプリケーションサービスの同期実行は、同期対象のデータファイルに対してトランザクションを使用してテーブルロックまたはレコードロックします。このため、利用者プログラムと同時にレプリケーションサービスの同期を実行すると、利用者プログラムの実行、またはレプリケーションサービスの同期実行のどちらか一方が、排他獲得のエラー、または先に実行されたトランザクションの終了待ち状態となる場合があります。
レプリケーションサービスの排他制御とトランザクションの動作は、"2.3.3 排他制御とトランザクション"を参照してください。
なお、レプリケーションサービスの同期が、利用者プログラムと同時に実行されたことによって、利用者プログラムが操作中のため同期を実行できない場合があります。この場合、実行できなかった同期が、次回の同期実行で行われます。
レプリケーションサービスの同期と利用者プログラムが同時に実行されることによって、発生する業務への影響を回避、軽減するために、運用形態や同期方式、同期を実行するタイミングなどを設計することが必要です。
利用者プログラムの応答時間
差分同期を使用するレプリケーションの環境を構築する場合、以下を確認してください。
差分同期の対象となるデータファイルを利用者プログラムからデータ更新するたびに、更新情報が更新情報ファイルへ出力されます。したがって、差分同期の対象としないデータファイルへの更新に比べて、利用者プログラムの応答時間が長くなります。
このため、運用を開始する前の動作検証で、利用者プログラムの応答時間を測定し、業務への影響を判断してください。
月次処理や日次処理などで、一度に大量のデータを更新するバッチ処理の有無を点検してください。
差分同期の対象となるデータファイルを更新するバッチ処理は、応答時間が大幅に長くなります。
バッチ処理で更新するデータファイルは、同期方式を一括方式に変更するか、バッチ処理と同期の実行順序を設計することが必要です。
1回のトランザクション区間内で更新しているデータファイルを確認してください。
差分同期を実行した場合、利用者プログラムで動作したトランザクション単位に、相手サーバへデータを反映します。
同期は、レプリケーショングループ単位に行われるため、利用者プログラムのトランザクション区間内で更新している複数のデータファイルを別々のレプリケーショングループに定義していると、相手サーバでは、データファイル間でデータの一貫性が保てなくなります。
差分同期を実行した場合、相手サーバで動作するレプリケーションサービスのトランザクションの処理は、"2.3.3 排他制御とトランザクション"を参照してください。
差分同期を使用するレプリケーションの環境を構築する場合、利用者プログラムのトランザクション区間内で更新するデータの一貫性を保つように、レプリケーショングループを設計することが必要です。
構築済みのデータベースを使用して、レプリケーションの環境を構築する場合、データベースの運用方法を点検してください。
差分同期を利用するレプリケーションの環境では、トリガー機能が動作しない機能を使用してデータベースを運用できません。トリガー機能に影響するSQL Serverの機能を使用した運用を行っていないか調査してください。
SQL Serverのバックアップ機能やユーティリティ(DTS、bcpユーティリティなど)などで、トリガー機能が動作しない操作を行うと、差分同期でデータベース間の整合性が保てなくなり、一括同期が必要となる場合があります。
トリガー機能の動作については、SQL Server Books Onlineを参照してください。
PowerReplicationは、SafeCLUSTERやWindowsクラスタなどを使用してデータベースを二重化する運用に対応していません。
連携するサーバ間でネットワークの環境を確認してください。
連携するサーバ間は、重要なデータが定期的に集中して転送されるため、回線速度が高速で、かつ、安全なネットワークの環境が必要です。
PowerReplicationは、広域ネットワーク(WAN:Wide Area Network)を使用して環境を構築できます。
IP-VPNなどで安全なネットワークの環境を使用してください。
業務に適用できる回線速度を確保してください。
有効回線速度 : 256Kbps以上(推奨)
回線品質が安定したネットワークの環境を使用してください。
PowerReplicationの動作中に回線が切断されると、レプリケーションの動作環境を復旧するために、一括同期の実行やレプリケーションの構成定義の再作成が必要になる場合があります。
DHCP(Dynamic Host Configuration Protocol)を使用する場合
DHCPを使用してIPアドレスが動的に割り振られたサーバは、レプリケーションのマスタとして構築できません。レプリカとして構築できます。
複数の通信アダプタを装着したサーバを使用する場合
複数の通信アダプタを装着したサーバで動作するレプリケーションサービスは、レプリケーションマネージャでサーバ定義に設定したIPアドレスを使用してください。
なお、1台のサーバで、1つのDBMSに対して2つ以上のサーバ定義を作成できません。
Windowsファイアウォールの設定について
Windows Server 2003(Service Pack 1以降)、Windows Server 2008またはWindows Server 2008 R2を使用する場合、Windowsファイアウォールの設定を確認してください。設定は、Windowsのコントロールパネル「Windows ファイアウォール」で確認できます。
レプリケーションの環境を構築することによる相手サーバへの影響を確認してください。
連携する相手サーバにもレプリケーションの環境を構築することが必要です。自サーバで行う作業と同様の作業を相手サーバでも行ってください。
また、同期を実行すると、連携する相手サーバでレプリケーションサービスが動作しますので、相手サーバで動作する利用者プログラムへの影響を確認してください。
サーバの負荷
相手サーバでCPUやディスクの負荷が高くなることによる影響を考慮して、設計および動作検証を行ってください。
同期を実行すると、相手サーバのデータベースを参照および更新するため、DBMSの処理によって相手サーバのCPUやディスクの負荷が高くなります。
資源見積り
相手サーバでも、自サーバにレプリケーションの環境を構築する場合と同様に資源見積りを行ってください。
相手サーバへの反映はトランザクションで動作するため、Symfoware6000のトランザクションの動作環境を作成することが必要です。相手サーバでSymfoware6000を使用する場合、バックアウトファイル(BOF)を作成することが必要です。
Symfoware6000のトランザクション動作環境の作成方法、バックアウトファイルの見積り方法および作成方法は、PRIMERGY 6000の「ASP RDB説明書」を参照してください。
利用者プログラムへの影響
同期を実行すると、相手サーバでレプリケーションサービスが同期対象のデータファイルを排他獲得します。このため、相手サーバで同期対象のデータファイルを操作する利用者プログラムが、レプリケーションサービスと同時動作した場合の影響を確認してください。
レプリケーションサービスの排他制御は、"2.3.3 排他制御とトランザクション"を参照してください。