cancelコマンドは、実行中のcompare、repair、copy、またはappendコマンドジョブをキャンセルするために使用します。
ジョブをキャンセルするには、キャンセルするジョブのジョブIDを指定する必要があります。ジョブIDは、compare、repair、copy、またはappend ジョブを開始するコマンドを発行したときに、そのジョブから返されます。
sp_ctrl> repair using 1elliot
repairing 7 of 7 objects
repair started; job id 408
または、job statusコマンドを発行することで、直近にストリームされたジョブのジョブIDを取得することもできます。
sp_ctrl> job status
Job ID: 408
PID: 11527
Host: prodsys
Started: 22-FEB-15 18:08:09
Job Type: Repair
Status: Processing - 0 objects completed
サポート対象のソース: | Oracle |
サポート対象のターゲット: | Oracle |
認証レベル: | オペレーター(2) |
発行場所: | ソースシステム |
関連コマンド: | compare、repair、copy、append |
基本コマンド | リモートオプション |
---|---|
cancel job_id |
[ on host | on host:portnumber | on login/password@host | on login/password@host:portnumber ] |
コンポーネント | 説明 |
---|---|
jobID |
キャンセルするジョブのID。 例: sp_ctrl>cancel 407 |
これらのオプションにより、リモートマシンにコマンドを発行したり、ログイン名、パスワード、ポート番号、またはそれらの組み合わせを含むコマンドをスクリプト化したりすることができます。
オプション | 説明 |
---|---|
on host |
リモートシステム(現在のsp_ctrlセッションが実行されているシステム以外)でコマンドを実行します。リモートシステムのログイン認証情報の入力を求めるプロンプトが表示されます。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例: sp_ctrl(sysB)>status on SysA |
on host:portnumber |
リモートログインとポート番号を指定する必要がある場合は、リモートシステムでコマンドを実行します。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例: sp_ctrl(sysB)>status on SysA:8304 |
on login/password@host |
リモートログイン、パスワード、ホスト名を指定する必要がある場合は、リモートシステムでコマンドを実行します。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例:sp_ctrl(sysB)>status on john/spot5489@SysA |
on login/password@host:portnumber |
リモートログイン、パスワード、ホスト名、ポート番号を指定する必要がある場合は、リモートシステムでコマンドを実行します。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例: sp_ctrl(sysB)>status on john/spot5489@SysA:8304 |
clean historyコマンドは、compare、repair、copy、appendコマンドの古いジョブから情報とログを削除するために使用します。
これらのジョブは、ソースシステムとターゲットシステムにログファイルを生成します。デフォルトでは、ジョブがSP_SYS_JOB_HISTORY_RETENTIONパラメータで設定された値より古くなると、ジョブ情報とログファイルが消去されます。clear historyコマンドを使用すると、特定のジョブやテーブル、または特定の期間を経過したすべてのジョブについて、ジョブ情報とログをオンデマンドでクリアすることができます。
サポート対象のソース: | Oracle |
サポート対象のターゲット: | Oracle |
認証レベル: | オペレーター(2) |
発行場所: | ソースシステム |
関連コマンド: | compare、repair、copy、append |
基本コマンド | コマンドオプション | リモートオプション |
---|---|---|
clear history { all | source_owner.source_table | age days | jobID } |
[for o.source_sid] |
[ on host | on host:portnumber | on login/password@host | on login/password@host:portnumber ] |
コンポーネント | 説明 |
---|---|
all |
すべてのジョブを削除します。 例: sp_ctrl(sysA)> clear history all |
source_owner.source_table |
特定のテーブルの履歴を削除します。 例: sp_ctrl(sysA)> clear history clear history user2.employee |
age days |
指定した日数より古いジョブ履歴を削除します。 例: sp_ctrl(sysA)> clear history age 10 |
jobID | 指定されたジョブID(job statusコマンドで取得)の履歴を削除します。 |
for o.source_sid |
オプション。アクティブな設定がない場合、または複数のアクティブな設定がある状況でclear historyコマンドを使用するために使用できます。いずれの場合も、forオプションを使用してソースSIDを指定する必要があります。 例: sp_ctrl(sysA)>clear history all for o.source_sid1 |
これらのオプションにより、リモートマシンにコマンドを発行したり、ログイン名、パスワード、ポート番号、またはそれらの組み合わせを含むコマンドをスクリプト化したりすることができます。
オプション | 説明 |
---|---|
on host |
リモートシステム(現在のsp_ctrlセッションが実行されているシステム以外)でコマンドを実行します。リモートシステムのログイン認証情報の入力を求めるプロンプトが表示されます。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例: sp_ctrl(sysB)>status on SysA |
on host:portnumber |
リモートログインとポート番号を指定する必要がある場合は、リモートシステムでコマンドを実行します。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例: sp_ctrl(sysB)>status on SysA:8304 |
on login/password@host |
リモートログイン、パスワード、ホスト名を指定する必要がある場合は、リモートシステムでコマンドを実行します。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例:sp_ctrl(sysB)>status on john/spot5489@SysA |
on login/password@host:portnumber |
リモートログイン、パスワード、ホスト名、ポート番号を指定する必要がある場合は、リモートシステムでコマンドを実行します。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例: sp_ctrl(sysB)>status on john/spot5489@SysA:8304 |
ステータスデータベースから古い警告メッセージを削除するには、clear statusコマンドを使用します。
このコマンドを使用するには:
SharePlexは、消去されたメッセージを識別するメッセージをイベントログに書き込みます。
このコマンドは、デフォルトシステムのステータスデータベースからメッセージを消去します。別のシステムのステータスデータベースからメッセージを消去するには、[on host]オプションを使用します。
注: すべてのメッセージが消去できるわけではありません。
サポート対象のソース: | Oracle |
サポート対象のターゲット: | すべて |
認証レベル: | オペレーター(2) |
発行対象: | ソースまたはターゲットシステム |
関連コマンド: | show statusdb |
基本コマンド | リモートオプション |
---|---|
clear status {statusID| all} |
[ on host | on host:portnumber | on login/password@host | on login/password@host:portnumber ] |
コンポーネント | 説明 |
---|---|
statusID |
削除したい個々のメッセージのSharePlex割り当てID(show statusdbコマンドを使用して取得)。 例: sp_ctrl(sysA)>clear status 20 |
all |
この引数を使用すると、消去可能なメッセージがすべて削除されます。 例: sp_ctrl(sysA)>clear status all |
これらのオプションにより、リモートマシンにコマンドを発行したり、ログイン名、パスワード、ポート番号、またはそれらの組み合わせを含むコマンドをスクリプト化したりすることができます。
オプション | 説明 |
---|---|
on host |
リモートシステム(現在のsp_ctrlセッションが実行されているシステム以外)でコマンドを実行します。リモートシステムのログイン認証情報の入力を求めるプロンプトが表示されます。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例: sp_ctrl(sysB)>status on SysA |
on host:portnumber |
リモートログインとポート番号を指定する必要がある場合は、リモートシステムでコマンドを実行します。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例: sp_ctrl(sysB)>status on SysA:8304 |
on login/password@host |
リモートログイン、パスワード、ホスト名を指定する必要がある場合は、リモートシステムでコマンドを実行します。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例:sp_ctrl(sysB)>status on john/spot5489@SysA |
on login/password@host:portnumber |
リモートログイン、パスワード、ホスト名、ポート番号を指定する必要がある場合は、リモートシステムでコマンドを実行します。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例: sp_ctrl(sysB)>status on john/spot5489@SysA:8304 |
compareおよびcompare usingコマンド(まとめてcompareコマンドと呼びます)を使用して、ターゲットテーブルがソーステーブルと同期していることを確認します。
compareを実行した後、repairコマンドまたはrepair usingコマンドを実行し、同期していない行をrepairすることができます。
注意: 実行中のcompareまたはrepairは、ソーステーブルには一切影響を与えません。SharePlexは、読み取りの一貫性についてのクエリを実行するためだけにデータベースにログインし、ソーステーブルのロックは短時間です。SharePlexは、処理中にターゲットテーブルを短時間ロックしますが、ユーザはロックをほとんど意識することなくアクセスを継続できます。
SharePlexは、DML操作(INSERT、UPDATE、DELETE)によって発生した、ターゲットテーブル内の非同期行を検出し、repairすることができます。
SharePlex は、以下のcompareとrepairをサポートせずにスキップします。
高度なデータ型
TEXT
CHAR > 2,000
VARCHAR > 4000
サイズなしのVARCHAR
BYTEA
compareまたはrepair中のテーブルに対してDDLを実行しないでください。compareは、SharePlexがサポートするものも含め、DDL操作によって引き起こされる非同期状態を検出しません。DDLがテーブル定義を変更すると、compareする必要がある行を取得するためにcompareプロセスにより作成されたSELECTステートメントが無効になります。
DDLによって発生した非同期状態を修正したら、repairコマンドを使用して行のデータを再同期することができます。
compareおよびcompare usingでサポートされるデータ型の詳細については、『SharePlexリリースノート』を参照してください。
レプリケーションのレイテンシは、compareやrepairの処理のパフォーマンスを低下させる可能性があります。ターゲット上でcompareおよびrepairプロセスを生成するためにソースから送信されたメッセージは、複製されたデータと共にキューを通じて送信されます。データバックログによる遅延が生じると、生成メッセージの送信が遅れることにより、プロセスが読み取りの一貫性を失うことがあります。可能であれば、compareやrepairはピーク以外の時間帯に行います。
ビューをrepairするには、以下が真でなければなりません。
Compareプロセスのパフォーマンスを向上させるために、SharePlexはSP_DEQ_PARALLELISMパラメーターによる並列ヒントをサポートしています。このため、並列度、つまり起動するワーカープロセスの数を指定できます。
デフォルトでは、PostgreSQLデータベースオプティマイザはSQLステートメントに最適な問い合わせ実行計画を選択します。これは、並列ヒントで指定した並列度に直接関連していないこともあります。pg_hint_planにより、クエリを実行するたびに配列ヒントを使用して実行計画を調整することができます。SharePlexは、データベースにpg_hint_plan拡張機能がインストールまたは設定されている場合、内部でこれを利用します。
並列クエリを使用するための構文の例は以下の通りです。
pg_hint_plan拡張機能は並列ヒントをサポートしています。Parallel(table <# of workers> [soft|hard])
SharePlexはハードパースをサポートする並列ヒントを使用します。Parallel(table <# of workers> [hard])
注意: ワーカーの数は、データベースシステムのCPU VCoreより少なくなければなりません。
以下のシナリオでは、compareを実行する際に特別な処理が必要となります。
使用例 | サポートcompare |
---|---|
統合レプリケーション |
統合レプリケーションは、ターゲットデータベースとPostプロセスがソースホストのIDを各行に追加するように設定されている場合にサポートされます。中央のターゲットテーブルの正しい行をcompareまたはrepairするには、targetwhereオプションを使用し、ソースID値をwhere句の基準にします。 例えば、ある企業の東部本社のデータベースのテーブルと、中央の企業データベースの正しい行をcompareするには、東部データベースのソースIDに「East」を使用し、その値をtargetwhere句の基準にすることができます。repairコマンドで同じtargetwhere句を使用します。compareプロセスおよびrepairプロセスは、ソースID値を使用して、東部データベースに有効な行のみを選択します。 ソースIDを特定する統合レプリケーション以外の実装でcompareコマンドやrepairコマンドを使用すると、ターゲット行が不要に削除される可能性があります。この設定の詳細については、『SharePlex管理ガイド』を参照してください。 ターゲット行が正確に選択されるように、targetwhereオプションと標準のwhereオプションを組み合わせる必要があるかもしれません。 |
ピアツーピアレプリケーション |
ピアツーピア構成では、どのシステムを信頼できるソースシステムとし、どのシステムをセカンダリシステム、つまりターゲットシステムとするかを決めなければなりません。セカンダリシステムは、repairが行われるシステムです。ピアツーピア環境でcompareやrepairを実行する前に、以下の手順に従ってください。
この設定の詳細については、『SharePlex管理ガイド』を参照してください。 |
キーのないテーブル |
compareおよびrepairコマンドは、ソースおよびターゲットシステム上でORDER BY句付きのSELECTステートメントを発行します。大規模なテーブルにプライマリキーまたはNULL以外の一意キーとインデックス(一意のインデックスが望ましい)を持つ場合、順序付けはより速くなります。それ以外の場合は、すべての列がキーとして使用されます。 一意の行識別子はないが、一意の行として識別できる列がテーブルに1つ以上ある場合、orderbyオプションを指定してcompareコマンドを使用できます。このオプションを使用すると、SharePlexは、ソースシステム上のsp_desvrログに、コマンドがこれらの列をキーとして使用したという通知を出力します。 |
余分なソース列またはターゲット列があるテーブル |
ソーステーブルまたはターゲットテーブルに余分な列があり、それらの列にソートの基準となる一意の値が含まれている場合は、sourcewhere句またはtargetwhere句とともにcompareコマンドを使用します。「compareする行の制御」を参照してください。 |
XMLデータでのcompare操作 |
XMLデータに対してCompare操作を実行すると、「ORA-04036: PGA memory used by instance exceeds PGA_AGGREGATE_LIMIT(ORA-04036: インスタンスが使用するPGAメモリがPGA_AGGREGATE_LIMITを超えています)」エラーが表示されます。 回避策:
|
compareは、DML操作によって引き起こされる次のようなターゲットテーブルの非同期状態を検出します。
ソースシステムでcompareコマンドまたはcompare usingコマンドを実行すると、SharePlexは以下のイベントを開始します。
行数がサニティチェックに合格すると、テーブルは以下のようにcompareされます。
compareおよびrepairコマンドは、すべての非同期行をrepairするために必要なSQLを、ログファイルと同じ場所にあるSQLファイルに書き込みます。compareコマンドのみが発行された場合、SharePlexはこれらのSQLステートメントを実行しません。repairコマンドを実行した場合、このコマンドは、非同期行をrepairするSQLステートメントを実行すること以外はcompareコマンドと同じように動作します。
SQLログファイルの出力を抑制することができます。このファイルを抑制する理由には以下のようなものがあります。
SQLログファイルを抑制するには、nosqllogオプションをcompareまたはrepairコマンドで使用します。
SharePlexの現在のインスタンスの実行中に、compareとrepairのすべての実行についてSQLログファイルの出力を抑制するには、SP_SYS_SECURE_MODE環境変数を1に設定します。この変数はSharePlexを起動する前に設定する必要があるため、sp_copプロセスが実行されている場合は、この変数を設定した後に再起動する必要があります。この環境変数を指定してsp_copを実行すると、compareコマンドとrepairコマンドによってSQLファイルにデータは保存されず、Post処理でもSharePlexのエラーログにデータは保存されません。
すべてのcompareおよびrepairコマンドでは、複数のプロセスを同時に実行することができます。複数のcompareおよびrepairコマンドを同時に実行し、それぞれがソーステーブルとターゲットテーブルのペアを処理することも、PostgreSQLのワイルドカードを使用して1つのコマンドで複数のテーブルセットを指定することもできます。SharePlexによるワイルドカードのサポートの詳細については、『SharePlex管理ガイド』を参照してください。
レプリケーションプロセスとcompareおよびrepairプロセスなど、最大で20のSharePlexプロセスでpostキューを同時に使用することができます。一度に最大で5つのcompareおよびrepairプロセスを実行できるようにすることをお勧めします。
制限に達したためにcompareやrepairに失敗した場合、SharePlexはイベントログにメッセージを記録します。
注意: editコマンドを使用し、以前のコマンドを編集して新しいコマンドを作成すれば、複数のコマンドをより簡単に実行できます。
アクティブな設定のサブセットは、以下の方法でcompareできます。
1つのスキーマに属するレプリケーション内の全テーブルをcompareするには、以下のようにcompareコマンドにワイルドカードを指定します。
sp_ctrl> compare scott.%
設定ファイル内の全テーブルをcompareするには、compare usingコマンドを使用します。
sp_ctrl> compare using myconfig
レプリケーション内の全テーブルを1つのターゲットルートとcompareするには、以下のようにatオプションを指定してcompare usingコマンドを使用します。
sp_ctrl> compare using config.active at prodsys@o.ora112
compareおよびrepairコマンドには、処理の対象として選択する行をフィルタリングできるwhereオプションがあります。デフォルトでは、これらのコマンドはテーブルのすべての行に影響し、ソーステーブルに含まれていないターゲットテーブルの列は無視されます。
whereオプションを使用すると、ソーステーブルとターゲットテーブルの同じ名前の列に基づいて行をフィルタリングすることができます。
ソーステーブルまたはターゲットテーブルに1つ以上の余分な列が存在し、それらの行に行の一意性を決定する値が含まれている場合は、sourcewhereおよびtargetwhereオプションを使用します。
このオプションを正しく使用するには:
ソースとターゲットの両方で同じ名前を持つ他の列には、標準のwhereオプションを使用します。
重要! 余分な行を持つターゲットテーブルに対してcompareとrepairの両方を実行する予定がある場合は、UPDATEとDELETEのcompare用にtargetwhereのみを使用してください。repairコマンドはINSERTの正しい値を決定できません。この問題を回避するには、余分な列にデフォルト値を設定するか、挿入された行を手動で更新します。
compareまたはrepairコマンドが発行されるたびに、ジョブIDがsp_ctrlディスプレイに表示されます。sp_ctrlディスプレイを利用できない場合は、compare statusコマンドを実行することでジョブIDを表示できます。
compareのステータスや結果を表示するには、sp_ctrlのcompare statusコマンドを使用します。
詳細については、compare status を参照してください。
sp_xdesvrおよびsp_xdecltプロセスは、実行するシステム上にログファイルを書き込みます。SharePlexの変数データディレクトリのlogサブディレクトリにあるファイルを開きます。
sp_xdesvrプロセスが書き込むログの名前はxdesvr_<jobid>_r.<dbid>_p<process id>.logです。ここで、
sp_xdecltプロセスが書き込むファイル名は、xdeclt_<jobid>-<tableid>_r.<dbid>_p<processid>.logに.logまたは.sqlを付加したものです。ここで、
ログファイル名の例:
xdesvr_7_r.aparopka_p4970.log
xdeclt_7-1_r.aparopka_p25095.log
xdeclt_7-1_r.aparopka_p25095_01.sql
ディスク使用量を制御するために、ログは循環方式でエージングされます。現在のログがサイズの限界に達すると、SharePlexは新しいログファイルを生成します。新しいログは最大ログ数まで作成され、その後、SharePlexは最も古いログから上書きを開始します。
注意: compare usingコマンドの場合は、稀に複数のログファイルが存在します。
実行中のcompareまたはrepairジョブを停止するには、cancelコマンドを使用します。
sp_ctrl(sysA)>cancel JOBID
詳細については、「cancel」を参照してください。
SharePlex は、終了した各ジョブの履歴をソースシステムのデータベースに保持します。SP_SYS_JOB_HISTORY_RETENTIONパラメーターは、履歴の保持期間を制御します。
この履歴を必要に応じて消去するには、clear historyコマンドを使用します。SharePlexがジョブの履歴を削除すると、履歴の元となったログファイルも削除されます。
データベースのジョブ履歴を消去せずにソースシステムからログファイルを削除するには、remove logコマンドを使用します。このコマンドは、ターゲットシステムから古いログファイルを削除するためにも使用できます。
ログファイルのサイズを制御するには、SP_DEQ_LOG_FILESIZEパラメーターを設定します。
INSERT、UPDATE、DELETEの各操作に対して別々のSQLファイルを作成するには、すべての操作タイプに対して1つのファイルを使用するのではなく、log splitオプションを使用します。
プロセスがSELECTクエリを実行するときにフェッチされる行のブロックのサイズを制御することができます。ブロックサイズは、SP_DEQ_MALLOCパラメーターで設定された値に基づいて計算されます。この値は、使用されるcompareスレッドの数で等分され、その後、すべての列のサイズを足した値に基づいて再計算されます。
compareによって検出された非同期行をrepairするには、repairコマンドまたはrepair usingコマンドを使用します。repair / repair usingを参照してください。
サポート対象のソース: | Oracle |
サポート対象のターゲット: | Oracle |
認証レベル: | オペレーター(2) |
発行場所: | ソースシステム |
関連コマンド: | repair / repair using |
必須のコマンドコンポーネント
コンポーネント | 説明 |
---|---|
compare owner.source_table[.partition] |
基本コマンドは、すべてのソース行をすべてのターゲット行とcompareします。 owner.source_tableは、ソーステーブルの所有者と名前です。大文字と小文字を区別したり、名前の中にスペースを入れたりするには、二重引用符を使います。例えば、"HR".emp。 ワイルドカードのテーブル名(オーナー名は不可)がサポートされています。compareするためには、このコマンドのワイルドカードを満たすテーブルがアクティブなレプリケーション設定に(明示的またはワイルドカードで)リストされていなければなりません。SharePlexがワイルドカードをどのように処理するかについては、『SharePlex管理ガイド』を参照してください。 例 sp_ctrl(sysA)>compare scott.emp sp_ctrl(sysA)>compare scott.emp.west |
compare using filename |
基本コマンドは、filenameにリストされたテーブル内のすべてのソース行とすべてのターゲット行をcompareします。 filenameは、compareするソーステーブルの名前が含まれているファイルの名前です。 例 sp_ctrl(sysA)>compare using sales |
オプションのコマンドコンポーネント
コンポーネント | 説明 |
---|---|
at target_host@o.target_sid |
compareに有効 ソーステーブルをそのターゲットの1つとのみcompareします。ソーステーブルが複数のターゲットシステムにレプリケートされる場合に使用します。 target_hostはターゲットシステムの名前です。 target_sidはターゲットOracleインスタンスのORACLE_SIDです。 例 sp_ctrl(SysA)>compare scott.emp at prod@o.prodsid |
for o.SID |
compareに有効 ソーステーブルを含むOracleインスタンスを指定します。システム上の複数のOracleインスタンスに同じソーステーブルがある場合に使用します。 SIDは、ソースインスタンスのORACLE_SIDです。大文字と小文字は区別され、oratabファイルまたはV$PARAMETERテーブルに表示される通りに入力する必要があります。 このオプションを使用する場合は、必要なコマンド引数の後に記述する必要がありますが、他のオプションとともに任意の順序で記述できます。 例 sp_ctrl (SysA)>compare scott.emp for o.oraA |
hint "hint" |
compareに有効 SELECTステートメントにOracleヒントを含めます。ヒントはソースおよびターゲットシステム上で使用されます。 "hint"は2000文字以内のOracle標準のヒントです。ヒント全体を二重引用符で囲みます。ヒント文字列の先頭の/*+と末尾の*/を省略します。SharePlexによって追加されます。 このオプションを使用する場合は、必要なコマンド引数の後に記述する必要がありますが、他のオプションとともに任意の順序で記述できます。 例 sp_ctrl (SysA)>compare scott.emp where “file >001005” hint “emp(salary)” オペレーティングシステムのコマンドラインからcompareを実行する場合、引用符で囲まれた文字列には、以下の例のようにエスケープされた二重引用符の余分なセットが必要です。 /productdir/bin/sp_ctrl compare scott.emp hint “\“emp(salary)\”” |
{include | exclude} "(column_list" |
compareに有効 compareする列をフィルタリングします。
(column_list)は、インクルードまたは除外する列のリストです。
注意: compareされなかった列には、同期していない行がまだ残っている可能性があります。 例 sp_ctrl (SysA)>compare scott.emp exclude "color, weight" |
key |
compareおよびcompare usingに有効 大きなテーブルのcompareを高速で実行します。このコマンドはすべてのデータ値をcompareするわけではありません。以下のいずれか1つをcompareします。
重要: キーまたはorderbyの値が一致しても、他の列の値が一致しなければ、テーブルは同期しないままです。 このオプションを使用する場合は、必須コマンド引数の後に記述しなければなりません。他のオプションとともに任意の順序で表示できます。 このオプションは、SharePlexキー定義に基づくcompareには使用しないでください。SharePlexキー定義の詳細については、『SharePlex管理ガイド』を参照してください。 例 sp_ctrl (SysA)>compare scott.emp key sp_ctrl(sysA)>compare using sales key |
log rowdata |
compareおよびcompare usingに有効 ハッシュ値ではなく、実際の行データを記録するSQLファイルを生成するようにクライアントプロセスに指示します。ファイルはターゲットシステムに作成されます。compareするテーブルにLONG、LOB、VARRAYがある場合は、log rowdataを使用しないでください。これらのデータ型の値が非常に大きい場合、SharePlexは実際のデータを記録できない可能性があります。 重要! このSQLファイルの目的は、compareされたデータのビューを提供することです。ターゲットテーブルをrepairするために使用しないでください。コマンド実行時に取得されたデータ値は、現在データベースに登録されている値とは異なる可能性があります。非同期の行をrepairするには、repairコマンドを使用します。 例 sp_ctrl(sysA)>compare scott.emp log rowdata sp_ctrl(sysA)>compare using sales log rowdata |
log split |
compareおよびcompare usingに有効 SQLファイルを操作の種類に応じて3つの異なるファイル(INSERT用、UPDATE用、DELETE用)に分割するように、クライアントプロセスに指示します。 例 sp_ctrl(sysA)>compare scott.emp log split sp_ctrl(sysA)>compare using sales log split |
{nolocktarget | nolocksource} |
compareに有効 repairを含む実行のcompareフェーズ中に、compareプロセスがテーブルをロックするのを防ぎます。通常、SharePlexはcompare中に一時的にテーブルをロックして読み取り一貫性ビューを取得し、その後すぐにロックを解除しますが、repair中は、SharePlexは常にターゲットテーブルをロックします。SharePlexは、読み取り一貫性ビューを取得するために、repair中はソーステーブルを一時的にロックします。 |
nosqllog |
SQLログファイルの出力を抑制します。このファイルには、同期していない行をrepairするために必要なSQLが含まれています。このファイルを出力しない理由には、以下のようなものがあります。
|
not “exception_list” |
compareに有効 テーブル指定にワイルドカードが含まれている場合に、compareしないテーブルの例外リストを指定します。 "exception_list"は、compareしないテーブル名のリストです。
例 sp_ctrl(SysA)>compare scott.% not (%temp%) |
orderby "column_list" |
compareに有効 compareプロセスでcompareする行をソートする際に、ORDERBY句で使用する列を指定します。このオプションを使用すると、プライマリキーや一意キーを持たないテーブルでcompareを実行できます。 "column_list"は、ORDERBY句で使用する列の名前です。
例 sp_ctrl(SysA)>compare scott.emp where “file >001005” orderby “Last Name,Division” オペレーティングシステムのコマンドラインからcompareを実行する場合、引用符で囲まれた文字列には、以下のようにエスケープされた二重引用符の余分なセットが必要です。 /productdir/bin/sp_ctrl compare scott.emp orderby “\“Last Name,Division\”” |
override |
compareおよびcompare usingに有効 サニティチェックを無効にし、サニティチェックのしきい値を超えている、同期していないテーブルのcompareを可能にします。同期していないテーブルをcompareする代わりに、copyコマンドを使用して(copy / appendを参照)ターゲットテーブルを再読み込みすることもできます。サニティチェックの詳細については、「compareの仕組み」を参照してください。 例: SP_ctrl (sysA) > compare scott.emp override SP_ctrl (sysA) > compare using sales override |
port port_number |
compareおよびcompare usingに有効 ソースまたはターゲットシステム上のSharePlexのバージョンが8.0より前の場合、下位互換性のために使用できます。 クライアントプロセスがサーバプロセスとの通信に使用する、ソースシステム上のポートを指定します。SharePlexの以前のバージョンでは、通信は双方向であり、クライアントからサーバへの通信には、デフォルトでランダムなポート番号が選択されます。このオプションは、ファイアウォールが要求するような特定のポート番号で、ランダムなポート選択を上書きします。 例 sp_ctrl(sysA)>compare scott.emp port 1234 |
quickcheck |
compareおよびcompare usingに有効 同期していない行があるかどうかを確認する初期チェックを実行します。同期していない行が1つでも検出されると、プロセスは直ちに停止します。それ以上の情報は返されません。同期していない行の情報はcompareのSQLファイルに記録されません。 このオプションは、keyオプションや、whereオプションのいずれかと併用しないでください。 このオプションはLONG列をサポートしていません。 例 sp_ctrl(sysA)>compare scott.emp quickcheck sp_ctrl(sysA)>compare using sales quickcheck |
parallelismdegree |
compareおよびcompare usingに有効 SELECTステートメントに並列ヒントを追加します。degreeでは、並列度を設定します。 例 sp_ctrl(sysA)>compare scott.emp parallelism 4 sp_ctrl(sysA)>compare using sales parallelism 4 |
sourcewhere “clause” |
compareに有効 ターゲットテーブルに列が存在しない場合に、ソーステーブル内の1つまたは複数の列を基にcompareを行います。
例#1: sp_ctrl(sysA)>compare scott.emp sourcewhere “file >001005” 例#2: 次の例は、sourcewhereおよびwhereオプションをどのように組み合わせて、望ましい結果を得るかを示しています。sourcewhere句はソースcompareプロセスのみが使用しますが、where句はソースcompareプロセスとターゲットcompareプロセスの両方が使用します。 sp_ctrl(SysA)>compare scott.emp sourcewhere “deptno = 200” where “mgr = ‘SMITH’” |
targetwhere "clause" |
compareに有効 ソーステーブルに列が存在しない場合に、ターゲットテーブル内の1つまたは複数の列を基にcompareを行います。
例#1: sp_ctrl(SysA)> compare scott.emp targetwhere “file >001005” 例#2: 次の例は、targetwhereおよびwhereオプションをどのように組み合わせれば、望ましい結果が得られるかを示しています。targetwhere句はターゲットcompareプロセスのみが使用しますが、where句はソースcompareプロセスとターゲットcompareプロセスの両方が使用します。 sp_ctrl(SysA)>compare scott.emp where “deptno = 200” targetwhere “mgr = ‘SMITH’” repair |
threads thread_count |
compareおよびcompare usingに有効 compareプロセスが使用する処理スレッドの数を設定します。 例 sp_ctrl(sysA)>compare scott.emp threads 4 sp_ctrl(sysA)>compare using sales threads 4 |
to target_owner.target_table[.partition] |
compareに有効 ソーステーブルをそのターゲットの1つとのみcompareします。ソーステーブルが複数のターゲットシステムにレプリケートされ、ターゲットテーブルに異なる名前がある場合に使用します。 このオプションはターゲットパーティションを指定するためにも使用できます。 compare source_owner.source_table.[source_partition] to target_owner.target_table.[target_partition] 例 (パーティションのcompare) sp_ctrl(SysA)>compare scott.emp.east to scott.allemp.alleast |
where “clause” |
compareに有効 ソースシステムとターゲットシステムの両方で、SELECTステートメントにWHERE句を含めます。WHERE句は、特定の行をcompareするためのフィルタとして機能します。 “clause"には、サブクエリを含まない標準のWHERE句を指定します。
例 sp_ctrl (SysA)>compare scott.emp where “region=4” |
これらのオプションにより、リモートマシンにコマンドを発行したり、ログイン名、パスワード、ポート番号、またはそれらの組み合わせを含むコマンドをスクリプト化したりすることができます。
オプション | 説明 |
---|---|
on host |
リモートシステム(現在のsp_ctrlセッションが実行されているシステム以外)でコマンドを実行します。リモートシステムのログイン認証情報の入力を求めるプロンプトが表示されます。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例: sp_ctrl(sysB)>status on SysA |
on host:portnumber |
リモートログインとポート番号を指定する必要がある場合は、リモートシステムでコマンドを実行します。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例: sp_ctrl(sysB)>status on SysA:8304 |
on login/password@host |
リモートログイン、パスワード、ホスト名を指定する必要がある場合は、リモートシステムでコマンドを実行します。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例:sp_ctrl(sysB)>status on john/spot5489@SysA |
on login/password@host:portnumber |
リモートログイン、パスワード、ホスト名、ポート番号を指定する必要がある場合は、リモートシステムでコマンドを実行します。使用する場合は、コマンド構文の最後の構成要素でなければなりません。 例: sp_ctrl(sysB)>status on john/spot5489@SysA:8304 |
© 2024 Quest Software Inc. ALL RIGHTS RESERVED. Terms of Use Privacy Cookie Preference Center