Chat now with support
Chat with Support

SharePlex 8.6.6 - インストール・ガイド

このガイドについて このガイドで使用されている表記規則 SharePlex の概要 SharePlex プリインストールチェックリスト Oracle クラスタでの SharePlex のセットアップ Amazon Cloud での SharePlex のセットアップ SharePlex のダウンロード UNIX のインストールとセットアップ Windows のインストールとセットアップ セキュリティグループへの SharePlex ユーザーの割り当て SharePlex 基本デモンストレーション 上級用 SharePlex デモンストレーション インストール上の問題の解決 SharePlex のアンインストール SharePlex ユーティリティ 付録 A:高度なインストーラオプション 付録 B:root としての SharePlex のインストール 付録 C:SharePlex でインストールされるアイテム

ソーステーブルとターゲットテーブルの再同期方法

次の手順は、非同期テーブルの再同期方法の決定に役立ちます。

非同期テーブルの手動パッチ

対象:すべてのデータベースタイプ 

同期エラーの数が少ない場合は、手動による非同期テーブルの修復を試行できます。Post プロセスは非同期状態を検出しても、そのエラーを無視して、post キュー内の次の操作の適用を続行します。ただし、Post は非同期エラーを引き起こしたソースの SQL 文を、エラーファイル calleID_errlog.sql にログとして記録します(ID は、ORACLE_SID やデータベース名など、SharePlexターゲットインスタンスに対して使用する識別子です)。データベースのネイティブ SQL インターフェイスを介して、これらの SQL 文をターゲットテーブルに適用できます。この手順では、Post による比較を省略しているので、ターゲットテーブルの構造が変わらなければ操作が成功します。

SharePlexID_errlog.sql をターゲットシステム上の変数データディレクトリの data サブディレクトリに保存します。ファイル内のエントリは、次の例とほぼ同じです。

-- Host (irvlabua) Sid (al920u64)

-- session 2, 1 error --

--

-- [1] Tue Dec 11 13:31:32 2007

-- redolog seq#/offset 26622/26980368

-- redolog timestamp 641050290 (12/11/15 13:31:30)

-- original rowid AAE0m8AAWAAAAFEAAA

-- -- NOT FOUND

delete from “SP_5”.”QA_LOB_DISABLE_INROW” t where rownum = 1 and “KEY”='01';

SQL を手動で適用するには

  1. 影響を受けたソーステーブルへのユーザーアクセスを停止します。
  2. ターゲットシステムで ID_errlog.sql ファイルを開きます。
  3. SQL 文をターゲットテーブルに適用します。
  4. 設定に変更を加える必要があった場合は、その設定を再アクティベートします。

    sp_ctrl> activate config filename

  5. ソーステーブルへのユーザーアクセスを許可します。

ソーステーブルのコピーによる再同期

対象:すべてのデータベースタイプ 

この手順で、ソーステーブルのコピーを適用することで、非同期ターゲットテーブルの同期がリストアされます。非同期のテーブルの再同期だけが必要なので、ユーザーは他のすべてのテーブルへのアクセスを継続できます。

重要! 開始する前にこの手順を確認してください。使用するコマンドの詳細については『 SharePlex リファレンスガイド』を参照してください。

  1. ソースおよびターゲットシステムで、sp_cop が実行中であることを確認します。
  2. ターゲットシステムで、sp_ctrl を実行します。
  3. [必要に応じて]ターゲットシステムで、show sync コマンドを発行して、非同期になっているテーブルを特定します。

    sp_ctrl> show sync

  4. 「ソース」システムで、非同期テーブルの活動を停止します。
  5. ソースシステムで、sp_ctrl を実行します。
  6. ソースシステムで、flush コマンドを発行します。: このコマンドには、名前付きキューまたは複数のターゲットで使用するための追加のオプションがあります。このコマンドの詳細については、『 SharePlex リファレンスガイド』を参照してください。

    sp_ctrl> flush datasource

  7. 「ソース」システムで、テーブルをコピーします。
  8. ソースシステムで、何らかの変更を加える必要があった場合は、設定ファイルを再アクティベートします。

    sp_ctrl> activate config filename

  9. ソース」システムで、ユーザーの「ソース」テーブルへのアクセスを許可します。
  10. ターゲットシステムで、Post が停止したことが示されるまで、status コマンドを発行します。

    sp_ctrl> status

  11. ターゲットシステムで、テーブルをリストアします。

  12. ターゲットシステムで、複製方法の要件に従って、トリガ、参照整合性制約、チェック制約を無効化または変更します。
  13. ターゲットシステムで、Status Database を表示して、各メッセージのステータス ID を特定します。

    sp_ctrl> show statusdb detail

  14. ターゲットシステムで、次のコマンドで各メッセージをクリアします。

    sp_ctrl> clear status statusID

  15. ターゲットシステムで、Post プロセスを再開します。

    sp_ctrl> start post

Oracle トランスポータブル表領域による再同期

対象:Oracle データベース

トランスポータブル表領域機能を使用すると、最小のダウンタイムで多数の非同期テーブルをすばやく再同期できます。トランスポータブル表領域機能を使用するには、Oracle マニュアルの中の指示に従って、表領域セットを作成し、表領域セットをターゲットデータベースに移動し、セットをデータベースにプラグします。次の指示は、データを再同期するためだけにこの機能を使用するステップです。トランスポータブル表領域機能の使用に習熟していることを前提としています。

重要! 開始する前にこの手順を確認してください。使用するコマンドの詳細については『 SharePlex リファレンスガイド』を参照してください。

  1. ソースシステムで、ソース表領域を READ ONLY に設定します。

    SQL> ALTER TABLESPACE name READ ONLY;

  2. ソースシステムで、sp_ctrl を実行します。
  3. ソースシステムの sp_ctrl の中で flush コマンドを発行します。: このコマンドには、名前付きキューまたは複数のターゲットで使用するための追加のオプションがあります。詳細については、『 SharePlex リファレンスガイド』を参照してください。

    sp_ctrl> flush datasource

  4. Oracle のドキュメントに従って、メタデータをエクスポートファイルにエクスポートします。
  5. export が完了したら、データファイルを「ソース」システム上の二次ロケーションにコピーします。こうすることで、ファイルをターゲットシステムにコピーするソースデータベースへの影響を最小にできます。
  6. ソースシステムで、ソース表領域を READ WRITE モードに設定します。

    SQL> ALTER TABLESPACE name READ WRITE;

  7. ターゲット」システムで、ターゲットデータベースから既存のデータファイルおよび表領域をドロップして、コピーされたファイルを適用できるようにします。
  8. ファイルを「ソース」システム上の二次ロケーションから、「ターゲット」システムにコピーします。
  9. 「ターゲット」システムで、Oracle のインポートユーティリティを使用して、メタデータおよび表領域定義をインポートします。
  10. ターゲットシステムで、表領域を READ WRITE モードに設定します。

    SQL> ALTER TABLESPACE name READ WRITE;

    注: SharePlex は、ピアトゥピアレプリケーションを使用しているのでない限り、ターゲットテーブルへの書き込みアクセスを許可された唯一のユーザーである必要があります。

  11. ソースシステムで、設定ファイルに何らかの変更を加える必要があった場合は、その設定ファイルを再アクティベートします。

    sp_ctrl> activate config filename

  12. ターゲットシステムで、sp_ctrl を実行します。
  13. ターゲットシステムで、Post プロセスを再開します。

    sp_ctrl> start post

アクティブデータベースでの Oracle ホットバックアップによる再同期

対象:Oracle データベース

ターゲットインスタンスを再同期するために、Oracle ホットバックアップ、reconcile コマンドを使用するときは、バックアップを実行し適用している間も、ユーザーは実稼動データにアクセスを継続できます。

重要:
  • データウェアハウスなどの「集中レポーティング」を再同期するには、すべてのソースシステムからホットバックアップは使用できません。1 つのバックアップが以前のものからのデータを上書きするためです。ソースインスタンスの 1 つのホットバックアップを使用してターゲットインスタンスを確立してから、export/import やトランスポータブル表領域などの他の方法を使用して、他のインスタンスからテーブルをコピーできます。
  • ピアトゥピア」レプリケーションを再同期するには、この手順の間「すべての」二次ソースシステムを沈静化する必要があります。すべてのユーザーを一時システムに移動してから、手順に従います。「すべての」二次システムで手順を実行した後で、ユーザーはそれらのシステムでの活動を再開できます。
  • 開始する前にこの手順を確認してください。使用するコマンドの詳細については『 SharePlex リファレンスガイド』を参照してください。

ホットバックアップで再同期するには

  1. ソースおよびターゲットシステムで、sp_ctrl を実行します。
  2. ターゲットシステムで、Post プロセスを停止します。こうすることで、ターゲットインスタンスが回復し調和されるまで、複製されたデータが post キューに蓄積します。

    sp_ctrl> stop post

  3. ソースシステムで Oracle ホットバックアップを実行します。
  4. ソースおよびターゲットシステムで、sp_copsp_ctrl、およびすべての SharePlex プロセス(Capture、Read、Export、Import、Post)が実行中であることを確認します。

    sp_ctrl> status

  5. ソースシステムのログファイルを切り替えます。

    • データベースをシーケンス番号に回復するには、最高のアーカイブログのシーケンス番号を記録します。

    • データベースを Oracle System Change Number(SCN)に回復するには、回復する SCN をターゲットデータベースで選びます。
  6. 次のように、ホットバックアップから「ターゲット」データベースを回復します。

    • シーケンス番号に回復する場合は、RECOVER 句の UNTIL CANCEL オプションを使用してホットバックアップからデータベースを回復し、前のステップのログが Oracle で完全に適用された後、回復をキャンセルします。
    • SCN に回復する場合は、RECOVER 句の UNTIL CHANGE SCN オプションを使用してホットバックアップからデータベースを回復し、前のステップから SCN に一致するログが Oracle で適用された後、回復をキャンセルします。
  7. RESETLOGS オプションでデータベースを開きます。

  8. ターゲットシステムで、reconcile コマンドを発行します。named post queues を使用している場合は、各キューに対してコマンドを発行します。キューの名前が分からない場合は、qstatus コマンドを発行してください。

    • シーケンス番号に回復する場合は、ステップ 5 で記録したログのシーケンス番号に置き換えます。

      sp_ctrl> reconcile queue queuename for datasource-datadest seq sequence_number

      例:reconcile queue SysA for o.oraA-o.oraA seq 1234

    • SCN に回復する場合は、ステップ 5 で記録した SCN に置き換えます。

      sp_ctrl> reconcile queue queuename for datasource-datadest scn scn_number

      例:reconcile queue SysA for o.oraA-o.oraA scn 0123456789

    sp_ctrl は reconcile プロセスが完了するまでプロセスによって制御され、完了すると sp_ctrl のプロンプトが戻ります。

  9. ターゲットシステムで、SharePlex の Oracle ユーザーとして SQL*Plus にログオンし、SharePlex 製品ディレクトリの bin サブディレクトリの中にある cleanup.sql スクリプトを実行します。このスクリプトは、SharePlex ユーザーが所有している SharePlex テーブルを切り詰めてアップデートします。複数の変数データディレクトリで複数の sp_cop のインスタンスを実行している場合は、それぞれのために SharePlex Oracle ユーザーが存在します。必ずリストアするテーブルを所有する SharePlex ユーザーとしてこのスクリプトを実行してください。スクリプトから、SharePlex ユーザー名およびパスワードを入力するように促すプロンプトが表示されます。

    SQL> @/productdir/bin/cleanup.sql

  10. ターゲットシステムで、複製方法に従って、次の項目を無効化または変更します。

    • トリガ
    • 外部キー制約
    • カスケード削除の制約(または、これらを無視するように SharePlex を設定)
    • チェック制約
    • DML を実行するスケージュールされたジョブ
  11. ソースシステムで、設定ファイルに何らかの変更を加える必要があった場合は、その設定ファイルを再アクティベートします。

    sp_ctrl> activate config filename

  12. ターゲットシステムで、Post プロセスを再開します。これで 2 つのインスタンスは同期され、SharePlex が複製を継続します。

    sp_ctrl> start post

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating