レプリケーションがアクティブな状態でも、水平パーティションまたは垂直パーティションのレプリケーション設定を変更できます。これらの手順はどちらもアクティブなレプリケーション設定を再アクティベーションする必要がありますが、SharePlexはこれらの変更に関連するテーブルだけをロックします。
注意: 設定ファイルの変更についての詳細は、「アクティブな設定ファイルの変更」を参照してください。
分割レプリケーションの詳細については、「分割レプリケーションの設定」を参照してください。
Oracle
すべてのターゲット
水平分割レプリケーションを変更するには:
パーティションまたはパーティションスキームを変更するには、以下のいずれかのコマンドを発行します。構文およびその他の情報については、『SharePlexリファレンスガイド』のアルファベット順のコマンドリストを参照してください。
コマンド | 認証レベル | 説明 |
---|---|---|
add partition |
2 | パーティションスキームと行パーティションを作成します。 |
drop partition |
2 | パーティションスキームから行パーティションを削除します。 |
drop partition scheme |
2 | パーティションスキームを削除します。 |
modify partition |
2 | パーティションスキームの行パーティションを変更します。 |
パーティションスキームをドロップした場合:
アクティブな設定ファイルを新しいファイルにコピーします(ただし、非アクティベーションしないでください)。
sp_ctrl> copy config filename to newname
コピーを編集して、パーティションスキームが指定されたルーティングマップを削除または変更します。
sp_ctrl> edit config filename
新しい設定ファイルをアクティベーションします。
sp_ctrl> activate config filename
垂直分割レプリケーションを変更するには:
アクティブな設定ファイルのコピーを作成します(ただし、非アクティベーションしないでください)。
sp_ctrl> copy config filename to newname
コピーしたファイルを編集して、適切な列パーティションを変更します。
sp_ctrl> edit config filename
新しい設定ファイルをアクティベーションします。
sp_ctrl> activate config filename
アクティブな設定ファイルにシーケンスを追加する手順は、シーケンスを使用するオブジェクトに対するユーザアクセスを停止できるかどうかによって異なります。シーケンスがテーブルの列の入力に使用されている場合、ユーザアクセスを停止できない可能性があります。
以下の手順を確認し、どの手順がお使いの環境に最適であるかを判断してください。
Oracleのソースとターゲット
設定ファイル内のワイルドカードを満たす名前のシーケンスがある場合、自動的にレプリケーションに追加するようにSharePlexを設定できます。詳細については、Oracle DDLレプリケーションの制御を参照してください。
以下の手順は、シーケンスの自動追加機能が有効になっていない場合に適用します。
sp_ctrlで、copy configコマンドを発行し、アクティブな設定ファイルのコピーを作成します。
sp_ctrl> copy config filename to newname
ここで、filenameはアクティブなファイルの名前で、newnameは新しいファイルの名前です。
edit configコマンドを発行して、デフォルトのテキストエディタで新しい設定ファイルを開きます。
sp_ctrl> edit config newname
ターゲットシステム上にターゲットシーケンスを作成します。ターゲットシステムでの一意性を確保するために、ターゲットシーケンスの開始値をソースシーケンスの開始値よりも大きくする必要があります。以下の式を使用して、ターゲットのSTART_WITH値を決定します。
source_INCREMENT_BY_value = START_WITH_value
新しい設定をアクティベーションします。これにより元の設定が非アクティブになります。
sp_ctrl> activate config newname
sp_ctrlで、copy configコマンドを発行し、アクティブな設定ファイルのコピーを作成します。
sp_ctrl> copy config filename to newname
ここで、filenameはアクティブなファイルの名前で、newnameは新しいファイルの名前です。
edit configコマンドを発行して、デフォルトのテキストエディタで新しい設定ファイルを開きます。
sp_ctrl> edit config newname
新しい設定をアクティベーションします。これにより元の設定が非アクティブになります。
sp_ctrl> activate config newname
ソースシステムで、ソースシステムからターゲットシステムにデータをフラッシュします。このコマンドはPostを停止し、データストリームにマーカーを置いて、ソースデータとターゲットデータ間の同期ポイントを確立します。
sp_ctrl> flush datasource
ここで、datasourceは、ソースインスタンスのo.ORACLE_SIDです。例: o.oraA。
Postが停止した後、ターゲットシステムで以下のOracleコマンドを発行し、シーケンスの最後の既知の値を確認します。この値を記録しておきます。
select max(column_name) = last known value
以下の式の値を求めます。
source_INCREMENT_BY_value x source_CACHE_value
例えば、ソースシーケンスが2ずつ増分し、キャッシュサイズが10の場合、値は20になります。
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。
ターゲットで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でサポートされるすべてのデータベース
レプリケーションからソースオブジェクトを削除するには:
sp_ctrlで、copy configコマンドを発行し、アクティブな設定ファイルのコピーを作成します。
sp_ctrl> copy config filename to newname
ここで、filenameはアクティブなファイルの名前で、newnameは新しいファイルの名前です。
edit configコマンドを発行して、デフォルトのテキストエディタで新しい設定ファイルを開きます。
sp_ctrl> edit config newname
新しい設定ファイルで、レプリケーションから削除するオブジェクトのエントリを削除します。レプリケーションから削除するオブジェクトがワイルドカードを満たす場合は、not表記を使用してオブジェクトを除外します。詳細については、ワイルドカードを使用した複数のオブジェクトの指定を参照してください。
新しい設定をアクティベーションします。これにより元の設定が非アクティブになります。
sp_ctrl> activate config newname
この手順は、SharePlexでサポートされていないタイプのDDL変更に適用されます。SharePlexでサポートされているDDLは、該当するSharePlexパラメータが正しく設定されていることを前提として、設定ファイルを再アクティベーションしたり、オブジェクトへのユーザアクセスを停止したりすることなく、ソースデータベースに適用することができます。サポートされているDDLは、SharePlexによりターゲットにレプリケートされ、そこからPostによって適用されます。サポートされているDDL操作と必要なパラメータの一覧については、『SharePlexリリースノート』を参照してください。
SharePlexでサポートされていないタイプのDDLを適用するには、この手順を使用します。DDLは、ソースシステムとターゲットシステムの両方で、SharePlexの外部に適用する必要があります。この手順では、設定ファイル内のオブジェクトへのアクセスを停止する必要があり、内部テーブルを更新するために設定ファイルの再アクティベーションも必要です。ただし、変更されたオブジェクトのみが分析されるため、アクティベーションは、完全なアクティベーションよりも短時間で完了します。
Oracle
ソースシステム(ピアツーピアの場合は信頼できるソース)で、ソースシステムからターゲットシステムにデータをフラッシュします。このコマンドはPostプロセスを停止し、データストリームにマーカーを置いて、ソースデータとターゲットデータ間の同期ポイントを確立します。
sp_ctrl> flush datasource
ここで、datasourceはソースインスタンスのデータベース指定です。例: o.oraA。
ターゲットシステム(ピアツーピアの場合はすべてのセカンダリシステム)で、各システムのpostキュー内のメッセージ数が0になっていること、およびPostが停止していることを確認します。
sp_ctrl> lstatus
ソースシステムで、設定ファイルを再アクティベーションします。
sp_ctrl> activate config filename
[高可用性およびピアツーピアレプリケーションのみ] セカンダリシステムで、設定ファイルを再アクティベーションします。
sp_ctrl> activate config filename
ターゲットシステムでPostを開始します。
sp_ctrl> start post
SharePlexは最後の停止ポイントからレプリケーションを再開し、データは同期された状態を維持します。
© ALL RIGHTS RESERVED. 利用規約 プライバシー Cookie Preference Center