Chat now with support
Chat with Support

SharePlex 11.4 - 管理者ガイド

このガイドについて このガイドで使用される表記規則 SharePlexの概要 SharePlexの実行 SharePlexの複数のインスタンスの実行 sp_ctrlでのコマンドの実行 SharePlexパラメータの設定 データレプリケーションの設定 コンテナデータベースとの間のレプリケーションの設定 名前付きキューの設定 分割レプリケーションの設定 変更履歴ターゲットへのレプリケーションの設定 レプリケーション戦略の設定 DDLレプリケーションの設定 エラー処理の設定 データトランスフォーメーションの設定 セキュリティ機能の設定 SharePlexユーザのセキュリティグループへの割り当て 本番システムでのレプリケーションの開始 SharePlexの監視 レプリケーションの問題の防止と解決 非同期データのrepair Captureプロセスの調整 Postプロセスの調整 Oracleフェールオーバー後のレプリケーションのリカバリ アクティブなレプリケーション環境に対する変更 Oracleアプリケーションのパッチまたはアップグレードの適用 ソースまたはターゲットのOracleデータのバックアップ トラブルシューティングのヒント 付録A: ピアツーピア図 付録B: SharePlex環境変数

分割レプリケーションの変更

レプリケーションがアクティブな状態でも、水平パーティションまたは垂直パーティションのレプリケーション設定を変更できます。これらの手順はどちらもアクティブなレプリケーション設定を再アクティベーションする必要がありますが、SharePlexはこれらの変更に関連するテーブルだけをロックします。

注意: 設定ファイルの変更についての詳細は、「アクティブな設定ファイルの変更」を参照してください。

分割レプリケーションの詳細については、「分割レプリケーションの設定」を参照してください。

サポート対象データベース

Oracle

すべてのターゲット

水平分割レプリケーションを変更するには:

  1. sp_ctrlを実行します。
  2. パーティションまたはパーティションスキームを変更するには、以下のいずれかのコマンドを発行します。構文およびその他の情報については、『SharePlexリファレンスガイド』のアルファベット順のコマンドリストを参照してください。

    コマンド 認証レベル 説明

    add partition

    2 パーティションスキームと行パーティションを作成します。

    drop partition

    2 パーティションスキームから行パーティションを削除します。

    drop partition scheme

    2 パーティションスキームを削除します。

    modify partition

    2 パーティションスキームの行パーティションを変更します。
  3. パーティションスキームをドロップした場合:

    1. アクティブな設定ファイルを新しいファイルにコピーしますただし、非アクティベーションしないでください

      sp_ctrl> copy config filename to newname

    2. コピーを編集して、パーティションスキームが指定されたルーティングマップを削除または変更します。

      sp_ctrl> edit config filename

  4. 新しい設定ファイルをアクティベーションします。

    sp_ctrl> activate config filename

垂直分割レプリケーションを変更するには:

  1. アクティブな設定ファイルのコピーを作成しますただし、非アクティベーションしないでください

    sp_ctrl> copy config filename to newname

  2. コピーしたファイルを編集して、適切な列パーティションを変更します。

    sp_ctrl> edit config filename

  3. 新しい設定ファイルをアクティベーションします。

    sp_ctrl> activate config filename

アクティブなレプリケーション設定への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

    24の次に大きい2×10の倍数=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の倍数以上に維持しながら、データのレプリケーションを継続します。

重要! トランザクションがロールバックされた場合でも、シーケンスは増分され続けます。レプリケートされたシーケンスを使用するソーステーブルに対して多数のロールバックが発行されると、実際にはテーブル内の列に使用されないまま、シーケンス値が増加します。その結果、Postが次に有効な操作を適用したときに、ターゲットシステム上のシーケンス値が、レプリケートされた行の値よりも小さくなる可能性があります。多数のロールバックがある場合は、ターゲットテーブルを定期的に表示して、ターゲットシーケンスの現在の値がテーブル内の最大値より大きいままであることを確認してください。ターゲットシーケンスの現在値がテーブル内の最大値より小さい場合は、前述の手順を繰り返してシーケンス関係を再確立します。

レプリケーションからのオブジェクトの削除

レプリケーションからのソースオブジェクトの削除

レプリケーションからソースオブジェクトを削除するには、設定を再アクティベーションする必要があります。

注意: Oracleのみ削除されるオブジェクトは、設定がアクティベーションされるときにロックされますが、削除されるオブジェクトだけがロックされるため、アクティベーションは元のアクティベーションよりも時間がかかりません。

設定ファイルからテーブルを削除することなく、そのテーブルへのポストを防ぐことができます。例えば、データに破損があり、そのテーブルにDML操作またはDDL操作を適用させたくない場合などに、これを実行できます。テーブルへのポストを防ぐには、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の変更

この手順は、SharePlexでサポートされていないタイプのDDL変更に適用されます。SharePlexでサポートされているDDLは、該当するSharePlexパラメータが正しく設定されていることを前提として、設定ファイルを再アクティベーションしたり、オブジェクトへのユーザアクセスを停止したりすることなく、ソースデータベースに適用することができます。サポートされているDDLは、SharePlexによりターゲットにレプリケートされ、そこからPostによって適用されます。サポートされているDDL操作と必要なパラメータの一覧については、『SharePlexリリースノート』を参照してください。

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

サポート対象データベース

Oracle

要件

手順

  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は最後の停止ポイントからレプリケーションを再開し、データは同期された状態を維持します。

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating