質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.81%

ORA-23394: プロパゲータが重複しています。

解決済

回答 2

投稿

  • 評価
  • クリップ 1
  • VIEW 1,510

kurokoSin

score 110

以下の事象にあってしまい、困っております。
どうかよろしくお願いいたします。

Oracle のレプリケーション構築中に以下のようなエラーが発生しました。

SQL> create user Auser identified by Auser;

ユーザーが作成されました。

SQL> begin
 2    dbms_defer_sys.register_propagator (
 3      username => 'Auser');
 4  end;
 5  /
begin
*
行1でエラーが発生しました。:
ORA-23394: プロパゲータが重複しています。
ORA-06512: "SYS.DBMS_DEFER_INTERNAL_SYS", 行1589
ORA-06512: "SYS.DBMS_DEFER_SYS", 行2466
ORA-06512: 行2

そこで削除をしようと思い、実行してみましたがこちらでも以下のエラーが発生します。

SQL> begin
 2  DBMS_DEFER_SYS.UNREGISTER_PROPAGATOR (
 3     username => 'Auser');
 4  end;
 5  /
begin
*
行1でエラーが発生しました。:
ORA-23357: プロパゲータが存在しません。
ORA-06512: "SYS.DBMS_SYS_ERROR", 行79
ORA-06512: "SYS.DBMS_DEFER_SYS", 行2514
ORA-06512: 行2

また、こちらのサイトを参考に
以下SELECT文を実行してみました。

SQL > SELECT * FROM DEFPROPAGATOR;

USERNAME      USERID STATUS CREATED
------------- ------ ------ --------
Buser             87  VALID 16-02-17


Auserは存在しないので登録には問題無いと思っているのですが。。。。
このエラー(ORA-23394: プロパゲータが重複しています。)を解消するには
どのようにしたらよろしいのでしょうか。

アドバイスのほどよろしくお願いします。


環境
Oracleのバージョン:Oracle 12c Standard Edition
バージョン番号詳細: 12.1.0.1.0

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

Oracle Databaseアドバンスト・レプリケーション
[マスター・サイトのロールおよびユーザー]の[プロパゲータ]の説明では、

プロパゲータは、遅延トランザクション・キューに含まれる各トランザクションを接続先に伝播する作業を実行します。
プロパゲータは、各データベースに1つ存在します。
つまり、異なるスキーマを管理するために複数のレプリケーション管理者を置くことはできますが、
それぞれのデータベースには1つのプロパゲータしか配置できません

とあります。
dbms_defer_sys.register_propagatorしようとしたのが'Auser'ですが、
SELECT * FROM DEFPROPAGATOR;の結果が'Buser'であることから上記に反します。
dbms_defer_sys.unregister_propagatorを'Buser'として実行するか、
'Buser'をプロパゲータとして使うかのどちらかではないでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/02/18 01:10

    丁寧な回答ありがとうございます。
    データベースに1つのプロパゲータしか登録できかったことに
    調べきれませんでした。
    レプリケーション構築作業の中でどこでBuserが紛れ込んでしまったのか
    検証することにします。

    キャンセル

+1

DBMS_DEFER_SYSは使った記憶がありません。
Oracle12.1 Oracle Databaseアドバンスト・レプリケーション・マネージメントAPIリファレンス によると、
REGISTER_PROPAGATOR の反対の機能はUNREGISTER_PROPAGATORで提供されているようです。
ですから、

ORA-23394: プロパゲータが重複しています。

はDBMS_DEFER_SYS.UNREGISTER_PROPAGATORで指定したプロパゲータをDEFPROPAGATORから削除してから、登録し直すもののようです。
外していたらごめんなさい。
なお、

バージョン番号詳細: 12.1.0.1.0

Oracle12.1.0が出荷されてからだいぶ時間が経っていますか、サポート契約が有効ならCPU程度のパッチは適応された方が良いです。わたしはサポート契約のないOracleライセンスでの仕事は断ります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/02/18 01:30 編集

    回答ありがとうございます。
    プロパゲータのUNREGISTER_PROPAGATORに関しておっしゃる通りです。
    今回の質問は
    Auserを登録しようとして、重複エラーが出ましたので、
    Auserを外そうとしたら存在しない旨のエラーが出ましたので、
    わからなく途方に暮れていました。
    上記回答にもありますが、プロパゲータとして登録できるのはデータベースに
    一つだけということでしたので、Buserの存在がAuserの登録の邪魔をしておりました。

    > > バージョン番号詳細: 12.1.0.1.0
    > Oracle12.1.0が出荷されてからだいぶ時間が経っていますか、サポート契約が有効ならCPU程度のパッチは適応された方が良いです。わたしはサポート契約のないOracleライセンスでの仕事は断ります。


    本題から逸れてしまいますが、大変耳の痛いお話です。
    パッチをあてようにもスポンサーが渋ってこの辺りの
    運用費まで出してくれないので、会社人間として動きが取れない状況です。
    、、、、と愚痴り始めるとキリがないので、ここで止めておきますm(_ _)m

    キャンセル

  • 2016/02/18 09:00

    本筋うんぬんはずれは置いといて、
    同じユーザーに対して何度もトライしたのかと勘違いしたわたしのミスですね。笑い
    Oracle7.2から15年以上使っていますが、Oracle製品はサポート契約してサポートに質問をしながら使うというのがスタンスの会社であることを理解できないユーザーはざらにあります。社名を検索して消えている会社にほぼ共通しているのがサポート契約をしなかった会社です。
    営業担当に確認するときちんと教えてくれますが、Oracleはサポート契約が有効ならライセンスのバージョンアップは無料です。

    キャンセル

  • 2016/02/19 01:18

    なるほど、バージョンアップは無料なのですね。
    Oracleを扱う機会はまちまちなので、知りませんでした。
    勉強になりました。ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.81%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る