Chat now with support
Chat with Support

SharePlex 8.6.6 - リファレンス・ガイド

このガイドについて このガイドで使用されている表記規則 SharePlex コマンド SharePlex パラメータ SharePlex ユーティリティ 付録 B:SharePlex 環境変数

SharePlex をサポートするための Oracle データベースのセットアップ

特定の Oracle データベース設定は複製に影響を及ぼすので、適切に設定する必要があります。

Post カーソルをサポートするための OPEN_CURSORS の調整

SharePlex では、ターゲットデータベースで Oracle OPEN_CURSORS パラメータの値を正しく設定する必要があります。OPEN_CURSORS の値を表示するには、次の SQL 文を使用してデータベースをクエリします。

select value from V$PARAMETER where name = 'open_cursors' ;

Post プロセスは、終了時に閉じるルーチンコール用の 10 個のカーソルのほか、SQL Cache 機能が有効になっている場合(デフォルト設定)はトランザクション当たり 50 個以上のカーソルを予約しています。詳細については、次を参照: SQL Cache のチューニング

SQL Cache を無効にする場合は、アプリケーションが生成する並行更新トランザクション(セッション)のピーク数を概算し、次の公式に従います。

10 +(並行トランザクションのピーク数 x 2)= 必要最小オープンカーソル数

OPEN_CURSORS の値が存在しない場合、変更または追加できます。Oracle パラメータに変更を加える前に、Oracle マニュアルを参照してください。

接続をサポートするための PROCESSES パラメータの調整

SharePlex およびデータベースユーザーによって作成された接続を処理するためにinit.ora ファイルの PROCESSES パラメータを設定する必要があります。その値は、データベースがソースデータベース、ターゲットデータベース、またはその両方として機能するかどうかによって決まります。

データベースがソースとしてのみ機能する場合

データベースがソースとしてのみ機能する場合、次の公式では Read プロセスによるログインが考慮されます。

(ソースデータベースセッションのピーク数) + (バックグランドの Oracle プロセス) + (SP_ORD_LDA_ARRAY_SIZE パラメータ値 + 3) = PROCESSES 用の設定

データベースがターゲットとしてのみ機能する場合

Post プロセスはトランザクションの一貫性を保つため、ソースシステム上のセッション数と同じ数の接続をターゲットシステムに作成します。ターゲットシステムの PROCESSES パラメータは、これらすべての接続に加えて、次の内容に十分対応できるように高く設定する必要があります。

  • 一連の接続によって生成されるバックグラウンドの Oracle プロセス
  • クエリ目的でターゲットデータベースにアクセスするユーザーのピーク数

次の公式で説明します。

(ソースデータベースセッションのピーク数) + (ターゲットデータベースセッションのピーク数) + (バックグランドの Oracle プロセス) = PROCESSES 用の設定

データベースがソースおよびターゲットの両方として機能する場合

データベースがソースとターゲットの両方として機能する場合、次の公式では、以下による接続が考慮されます。

  • Read プロセス
  • Post プロセス
  • バックグラウンドの Oracle プロセス
  • ユーザー接続

(ソースデータベースセッションのピーク数) + (ターゲットデータベースセッションのピーク数) + (バックグランドの Oracle プロセス) + (SP_ORD_LDA_ARRAY_SIZE パラメータの値 + 3) = PROCESSES 用の設定

post を改善するためのログバッファサイズの調整

データベースライターの数は特に複数の並行トランザクションがある場合、複製に影響を及ぼします。トランザクションがコミットされるとき、そのバッファデータがディスクにフラッシュされます。もしほとんどのトランザクションが小さく、しかしそのバッファが大きい場合は、Post が遅くなる原因となります。大きいトランザクションがコミットされ、そして標準サイズのトランザクションがコミットされた場合は、2 つ目の COMMIT はバッファ全体がディスクにフラッシュされるまで待たなければなりません。

ディスクにフラッシュするバッファのサイズを減少することで Post プロセスを高速化することができます。ログバッファのサイズを 1024 KB または可能であれば 512 KB まで減少してください。

ユーザー数に基づく SharePlex トランザクションテーブルの調整

SharePlex はターゲットデータベースの read の一貫性を維持するために、SHAREPLEX_TRANS テーブルを更新します。テーブルの複製のパフォーマンスを改善して競合を減らすため、このテーブルの initrans 設定の調整が必要な場合があります。

  • プロダクションデータベースが 500 から 1,000 人の同時ユーザーを持っている場合、SHAREPLEX_TRANS テーブルの initrans が 30 になるように再構築します。
  • プロダクションデータベースが 1,000 人以上の同時ユーザーを持っている場合、SHAREPLEX_TRANS テーブルの initrans が 40 になるように再構築します。

キャラクタセットの変換の制御

このトピックでは、Oracle ソースと Oracle ターゲットの間および Oracle ソースと非 Oracle ターゲットの間のキャラクタセットの変換が SharePlex でどのように処理されるのかを説明します。

Oracle ソースと Oracle ターゲットの間の複製

使用している Oracle キャラクタセット内のすべての文字を SharePlex で複製するには、次のいずれかを満たしている必要があります。

  • キャラクタセットは、ソースとターゲットで同じであること
  • ソースデータベースのキャラクタセットは、ターゲットデータベースのキャラクタセットのサブセットであること(ソースに含まれているすべての文字がターゲットのキャラクタセット内に存在すること)

次のキャラクタセットが SharePlex 向けにテストされ、サポートされています。

US7ASCII

UTF8

WE8ISO8859P1

AL16UTF16

AL32UTF8

KO16KSC5601

デフォルトでは、SharePlex は Oracle ターゲットデータベースによるキャラクタ変換の実行を許可します。Post がソースデータのキャラクタエンコーディングについて Oracle に通知し、Oracle が必要に応じて変換を実行します。

関連するキャラクタセットによって Oracle 変換はデータ損失が生じる可能性があります。例:

例 1:JA16SJIS キャラクタセットに含まれる日本語の「米印(※)」の文字に対応する記号は、US7ASCII キャラクタセットには含まれていません。この記号を US7ASCII データベース内で複製しようとした場合、Oracle が「?」文字に変換します。

例 2:Oracle によると、WE8ISO8859P1 キャラクタセットは US7ASCII キャラクタセットのスーパーセットであるので、US7ASCII に含まれる文字は変換されずに WE8ISO8859P1 ターゲットデータベースに post されると想定するのが論理的です。これは、0x00 から 0x7F. までの範囲に適応されます。しかし、Oracle は 0x80 から 0xFF までの範囲の文字は、先頭ビットを取り去ります。この「変換」はソースのスーパーセットであるキャラクタセットに複製する際に、データ損失となる可能性があります。

注: Oracle はキャラクタセットが同一である場合は、文字の変換はしません。このため、キャラクタセットが WE8ISO8859P1 のデータベースに対して WE8ISO8859P1 データを post した場合、Oracle のデータ変換処理はバイパスされます。

変換なしでデータを適用するには

SP_OPO_NLS_CONVERSION パラメータを 1 に設定して、変換なしでデータを適用します。詳細については、「SharePlex SharePlex リファレンスガイド」を参照してください。

注: NLS_NCHAR_CHARACTERSET がソースデータベースとターゲットデータベースで異なる場合、SharePlex は常に NVARCHAR および NCLOB データを変換します。

Oracle ソースと非 Oracle ターゲットの間の複製

オープンターゲットのターゲット(非 Oracle ターゲット)に複製する場合、SharePlex は任意の Oracle Unicode キャラクタセットと US7ASCII キャラクタセットからの複製をサポートします。SharePlex は Unicode キャラクタセットでオープンターゲットにデータを post するので、ソースデータが Unicode または US7ASCII の場合、ターゲットでの変換は必要ありません。

ただし、次に該当する場合、ターゲットでの変換が必要です。

  • ソースデータのキャラクタセットが Oracle Unicode または US7ASCII 以外のものである場合は、Oracle クライアントをターゲットにインストールして、ターゲットに post するために Unicode への変換を実行する必要があります。
  • Unicode 以外のキャラクタセットでターゲットデータベースにデータを post する必要がある場合は、ターゲットに Oracle クライアントをインストールして変換を実行し、target コマンドを使用して、Post が使用するターゲットキャラクタセットを識別する必要があります。このコマンドの詳細については、『 SharePlex リファレンスガイド』を参照してください。

Linux 上で Oracle クライアントとの変換を実行するには

  1. ターゲットシステムに Oracle Administrator Client をインストールします。クライアントは、管理者インストールタイプでなければなりません。Instant Client および Runtime のインストールタイプはサポートされていません。
  2. ORACLE_HOME をクライアントインストールに設定します。ORACLE_SID をエイリアスまたは存在しない SID に設定します。SharePlex ではそれらは使用されないので、データベースを実行する必要はありません。
  3. ターゲットシステムに SharePlex をインストールするには、オープンターゲットインストーラではなく、Oracle ベースの SharePlex インストーラをダウンロードします。Oracle ベースのインストーラには、ターゲットデータベースに post する前に、Oracle クライアントライブラリの変換関数を使用してデータを変換するように Post に指示する機能が含まれています。
  4. SharePlex for Oracle の手順に従ってください(オープンターゲットへのインストール用ではありません)。
  5. SP_OPX_NLS_CONVERSION パラメータがデフォルトの 1 に設定されていることを確認します。

Windows 上で Oracle クライアントとの変換を実行するには

  1. ターゲットシステムに Oracle Administrator Client をインストールします。クライアントは、管理者インストールタイプでなければなりません。Instant Client および Runtime のインストールタイプはサポートされていません。
  2. SharePlex レジストリキー \HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\QuestSoftware\SharePlex\port_number で、ORACLE_HOME を Oracle クライアントのインストール場所に設定し、ORACLE_SID をエイリアスまたは存在しない SID に設定します。Oracle データベースは必要ありません。SharePlex は、クライアントライブラリのみを使用する必要があります。
  3. Windows インストーラを使用して SharePlex をします。
  4. SP_OPX_NLS_CONVERSION パラメータがデフォルトの 1 に設定されていることを確認します。

Unicode および US7ASCII データを変換せずに適用するには

ソースデータが Unicode または US7ASCII であり、LOB データを複製していない場合、変換または Oracle クライアントは必要ありません。SP_OPX_NLS_CONVERSION パラメータを 0 に設定して変換を無効にし、Post が実行中の場合は再起動します。

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating