Chat now with support
Chat with Support

SharePlex 8.6.6 - 管理ガイド

このガイドについて このガイドで使用されている表記規則 SharePlex の概要 SharePlex の実行 複数の SharePlex インスタンスの実行 sp_ctrl でのコマンドの実行 SharePlex パラメータ 複製のための Oracle 環境の準備 設定ファイルの作成 オープンターゲットのターゲットへの複製の設定 複製方法の設定 分割レプリケーションの設定 名前付きキューの設定 変更履歴ターゲットを維持するための SharePlex の設定 Oracle DDL の複製 エラー処理のセットアップ データの変換 SharePlex セキュリティ機能の設定 実稼動環境での複製のアクティベート SharePlex の監視 複製上の問題の防止および解決方法 非同期データの修復 Oracle の高可用性を維持するための手順 アクティブな複製環境の変更 Oracle アプリケーションのパッチまたはアップグレードの適用 ソースまたはターゲット上の Oracle データのバックアップ Capture プロセスのチューニング Post プロセスのチューニング 付録 A:ピアトゥピアの説明図 付録 B:SharePlex 環境変数

アクティブな複製設定への Oracle シーケンスの追加

アクティブな複製環境の変更 > アクティブな複製設定への Oracle シーケンスの追加

アクティブな設定ファイルにシーケンスを追加するための手順は、シーケンスを使用するオブジェクトへのユーザーアクセスを停止できるかどうかによって異なります。そのシーケンスを使用してテーブルの列にデータを投入する場合、ユーザーアクセスを停止できない場合があります。

ご使用の環境でどの手順が最適かを判断するには、次の手順を確認してください。

シーケンスの自動追加の有効化

自動追加が有効でない場合のシーケンスの追加

サポートされるデータベース

Oracle ソースおよびターゲット

シーケンスの自動追加の有効化

設定ファイルで名前がワイルドカードを満たす場合、シーケンスを複製に自動的に追加するように SharePlex を設定できます。詳細については、「Oracle DDL 複製の制御」を参照してください。

自動追加が有効でない場合のシーケンスの追加

シーケンスの自動追加機能が有効でない場合は、以下の手順が適用されます。

シーケンスで列にデータを投入しない場合の、シーケンスの追加

  1. ソースシステム上のオブジェクトに対するユーザー活動を停止します。
  2. sp_ctrl で、copy config コマンドを発行して、アクティブな設定ファイルのコピーを作成します。

    sp_ctrl> copy config filename to newname

    ここで、filename はアクティブなファイルの名前で、newname は新しいファイルの名前です。

  3. edit config コマンドを発行して、デフォルトのテキストエディタで新しい設定ファイルを開きます。

    sp_ctrl> edit config newname

  4. 新しいシーケンスを設定ファイルに追加します。
  5. ファイルを保存してクローズします。
  6. ターゲットシステムにターゲットシーケンスを作成します。ターゲットシステムでの一意性を保証するには、ターゲットシーケンスの開始値が「ソース」シーケンスの開始点より大きくなければなりません。次の公式を使って、ターゲットの START_WITH の値を求めます。

    source_INCREMENT_BY_value = START_WITH_value

  7. 新しい設定をアクティベートします。これで、元の設定がディアクティベートされます。

    sp_ctrl> activate config newname

  8. オブジェクトへのユーザーアクセスを許可します。

シーケンスで列にデータを投入する場合の、シーケンスの追加

  1. sp_ctrl で、copy config コマンドを発行して、アクティブな設定ファイルのコピーを作成します。

    sp_ctrl> copy config filename to newname

    ここで、filename はアクティブなファイルの名前で、newname は新しいファイルの名前です。

  2. edit config コマンドを発行して、デフォルトのテキストエディタで新しい設定ファイルを開きます。

    sp_ctrl> edit config newname

  3. 新しいシーケンスを設定ファイルに追加します。
  4. ファイルを保存してクローズします。
  5. 新しい設定をアクティベートします。これで、元の設定がディアクティベートされます。

    sp_ctrl> activate config newname

  6. ソースシステムで、データをソースシステムからターゲットシステムにフラッシュします。このコマンドは Post を停止し、ソースデータとターゲットデータ間の同期点を確立するマーカーを、データストリームに置きます。

    sp_ctrl>  flush datasource

    ここで、datasource は、ソースインスタンスの o.ORACLE_SID です(例: o.oraA)。

  7. Post の停止後、ターゲットシステムに次の Oracle コマンドを発行し、シーケンスの最後の既知の値を探します。この値を記録します。

    select max(column_name) = last known value

  8. 次の式の値を計算します。

    source_INCREMENT_BY_value x source_CACHE_value

    たとえば、ソースシーケンスの増分値が 2 であり、キャッシュサイズが 10 である場合は、値は 20 になります。

  9. select max (column_name) コマンドで記録した値を起点として、次に高い (source_INCREMENT_BY_value x source_CACHE_value) の倍数を決定します。

    例:

    INCREMENT_BY = 2

    CACHE = 10

    select max(column_name) = 24

    (2×10)の倍数で、24 より大きい値 = 40

  10. 前のステップで得られた値に、別の (source_INCREMENT_BY_value x source_CACHE_value) の倍数を加算します。その結果がターゲットシーケンスの START WITH の値になります。たとえば、前の式では START WITH の値は次のようになります。40 + (2 x 10) = 60
  11. 計算した START WITH の値を使用して、ターゲットシーケンスを作成します。
  12. ターゲットで Post を起動します。

    sp_ctrl> start post

    SharePlex は、ターゲットシーケンスを、ソースシーケンスよりも (source_INCREMENT_BY_value x source_CACHE_value) の 1 倍以上前に保ちながら、データの複製を継続します。

重要!

シーケンスはトランザクションがロールバックされた場合も加算されていきます。複製されたシーケンスを使用するソーステーブルに対して多数のロールバックが発行されると、テーブル内の列では、実際に使用されずにシーケンス値が増加します。その結果、Post が次の有効な操作を適用すると、ターゲットシステム上のシーケンス値が、複製された行の値よりも小さくなる場合があります。

ロールバックが何度も発生した場合は、ターゲットテーブルを定期的に確認して、ターゲットシーケンスの現在値が、テーブルの最大値よりも大きいことを確認してください。ターゲットシーケンスの現在値がテーブルの最大値よりも小さい場合は、前述の手順を繰り返して、シーケンス関係を再度確立してください。

複製からのオブジェクトの削除

アクティブな複製環境の変更 > 複製からのオブジェクトの削除

複製からソースオブジェクトを削除するには、設定を再アクティベートする必要があります。

注: 削除されるオブジェクトは設定がアクティベートされるときにロックされますが、ロックされるのはそれらのオブジェクトのみであるため、元のアクティベーションよりも短時間で済みます。

設定ファイルからテーブルを削除することなく、そのテーブルへの post を禁止できます。たとえば破損したデータがあり、DML または DDL 操作をそのテーブルに適用したくない場合などは、この操作が必要です。テーブルへの post を禁止するには、SP_OPO_DISABLE_OBJECT_NUM パラメータを使用します。このパラメータの詳細については、『 SharePlex リファレンスガイド』を参照してください。

サポートされるデータベース

SharePlex によってサポートされているすべてのデータベース

手順

  1. sp_ctrl で、copy config コマンドを発行して、アクティブな設定ファイルのコピーを作成します。

    sp_ctrl> copy config filename to newname

    ここで、filename はアクティブなファイルの名前であり、newname は新しいファイルの名前です。

  2. edit config コマンドを発行して、新しい設定ファイルをデフォルトのテキストエディタで開きます。

    sp_ctrl> edit config newname

  3. 新しい設定ファイルで、複製から削除したいオブジェクトのエントリを削除します。複製から削除するオブジェクトがワイルドカードの条件を満たしている場合は、not 表記を使用して、そのオブジェクトを除外します。詳細については、「ワイルドカードによる複数のオブジェクトの指定」を参照してください。

  4. ファイルを保存してクローズします。
  5. 新しい設定をアクティベートします。これで、元の設定はディアクティベートされます。

    sp_ctrl> activate config newname

  6. 削除したオブジェクトへのユーザーアクセスを許可します。

アクティブな複製設定での DDL の変更

アクティブな複製環境の変更 > アクティブな複製設定での DDL の変更

この手順は、SharePlex によってサポートされているタイプではない DDL 変更に適用されます。SharePlex によってサポートされている DDL は、該当する SharePlex パラメータが正しく設定されているという前提に基づき、設定ファイルの再アクティベートやオブジェクトに対するユーザーアクセスの停止を行わずにソースデータベースに適用できます。サポートされている DDL は SharePlex によってターゲットに複製され、Post によって適用されます。サポートされている DDL 操作と必須パラメータのリストについては、『SharePlex リリースノート』を参照してください。

この手順を使用して、SharePlex によってサポートされているタイプではない DDL を適用します。DDL は、ソースシステムとターゲットシステムの両方で SharePlex の外部に適用する必要があります。この手順では、設定ファイル内のオブジェクトへのアクセスと設定ファイルの再アクティベーションを停止して、内部テーブルを更新する必要があります。ただし、変更されたオブジェクトのみが分析されるので、アクティベーション時間はフルアクティベーションで必要な時間よりも短くなります。

サポートされるデータベース

Oracle

必要条件

  • SharePlex の実行方法を知っている必要があります。「SharePlex の実行」を参照してください。
  • activate config コマンドで設定ファイルをアクティベートする方法を理解している必要があります。
  • SharePlexflush コマンドを理解している必要があります。『 SharePlex リファレンスガイド』を参照してください。

手順

  1. ソースシステム(ピアトゥピアレプリケーションを使用している場合はすべてのシステム)で、ソースオブジェクトへのアクセスを停止します。
  2. ソースシステム(ピアトゥピアで信頼されるソース)で、データをソースシステムからターゲットシステムにフラッシュします。このコマンドは Post プロセスを停止し、ソースデータとターゲットデータ間の同期点を確立するマーカーを、データストリームに置きます。

    sp_ctrl> flush datasource

    ここで、datasource は、ソースインスタンスのデータベース指定です。たとえば、o.oraA のようになります。

  3. ターゲットシステム(ピアトゥピアですべてのセカンダリシステム)は、post キュー内のメッセージ数が各システムで 0 であることと、Post が停止していることを確認します。

    sp_ctrl> lstatus

  4. ソースシステムで、DDL 変更を行います。
  5. ソースシステムで、設定ファイルを再アクティベートします。

    sp_ctrl> activate config filename

  6. ソースシステムで、ユーザーアクティビティの再開を許可します。複製された変更内容が post キューに蓄積されます。
  7. ターゲットシステムで、対応する DDL 変更を行います。
  8. [高可用性およびピアトゥピアのみ]セカンダリシステムで、設定ファイルを再アクティベートします。

    sp_ctrl> activate config filename

  9. ターゲットシステムで、Post を起動します。

    sp_ctrl> start post

SharePlex は最後の停止ポイントから複製を再開するので、データは同期したままになります。

複製に影響する Oracle の変更

アクティブな複製環境の変更 > 複製に影響する Oracle の変更

このトピックは、複製がアクティブな間に Oracle 環境に一般的な変更を加える場合に役立ちます。

サポートされるデータベース

Linux および UNIX 上の Oracle

ORACLE_HOME の場所の移動

ORACLE_HOME を変更する場合は、SharePlex を Oracle ライブラリに再リンクする必要があります。

  1. SharePlex をシャットダウンします。

    sp_ctrl> shutdown

  2. ORACLE_HOME を移動します。
  3. oratab ファイルを編集して、新しい ORACLE_HOME を指定します。
  4. defaults.yaml ファイルを編集して、新しい ORACLE_HOME を指定します。このファイルは SharePlex 製品ディレクトリの data サブディレクトリにあります。
  5. SharePlex を起動します。

ターゲット ORACLE_SID の変更

  1. ソースシステムで sp_ctrl を実行します。
  2. ソースシステムでは、アクティブな設定ファイルを新しい名前にコピーしますが、ディアクティベートしないでください。

    sp_ctrl> copy config filename to newname

  3. ソースシステムで、新しい設定ファイルを開きます。

    sp_ctrl> edit config filename

  4. このターゲットデータベースおよびターゲットシステムを含む、すべてのルーティングマップの ORACLE_SID を新しい ORACLE_SID に変更します。
  5. 設定ファイルを保存して閉じますが、ディアクティベートしないでください。
  6. ソースシステムで、複製に関与するオブジェクトへのユーザーアクセスを停止します。
  7. ソースシステムで、キューの中のデータをターゲットにフラッシュします。このコマンドは Post プロセスを停止し、ソースとターゲットデータベース間の同期点を確立し、Post プロセスを停止します。

    sp_ctrl> flush datasource

    ここで、datasource は、ソースインスタンスのデータベース指定です。たとえば、o.oraA のようになります。

  8. ソースシステムで、新しい設定ファイルをアクティベートします。これで、元の設定ファイルがディアクティベートされます。

    sp_ctrl> activate config filename

    : SharePlex はテーブルを分析する必要がないので、アクティベーションが短時間で完了します。

  9. ソースシステムで、複製に関与するオブジェクトへのユーザーアクセスを許可します。
  10. ターゲットシステムで、Post が停止したことを確認します。Post が停止していない場合は、Post の停止が表示されるまで、コマンドを発行し続けます。

    sp_ctrl> status

  11. ターゲットシステムで、データベースをシャットダウンし、ORACLE_SID の名前を変更します。
  12. ターゲットシステムで、Post を開始します。

    sp_ctrl> start post

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating