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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Q&A

解決済

2回答

2197閲覧

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

kurokoSin

総合スコア133

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

0グッド

1クリップ

投稿2016/02/17 12:35

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

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

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

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

投稿2016/02/17 14:21

nabe3

総合スコア345

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kurokoSin

2016/02/17 16:10

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

0

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/17 14:09

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kurokoSin

2016/02/17 16:32 編集

回答ありがとうございます。 プロパゲータのUNREGISTER_PROPAGATORに関しておっしゃる通りです。 今回の質問は Auserを登録しようとして、重複エラーが出ましたので、 Auserを外そうとしたら存在しない旨のエラーが出ましたので、 わからなく途方に暮れていました。 上記回答にもありますが、プロパゲータとして登録できるのはデータベースに 一つだけということでしたので、Buserの存在がAuserの登録の邪魔をしておりました。 > > バージョン番号詳細: 12.1.0.1.0 > Oracle12.1.0が出荷されてからだいぶ時間が経っていますか、サポート契約が有効ならCPU程度のパッチは適応された方が良いです。わたしはサポート契約のないOracleライセンスでの仕事は断ります。 本題から逸れてしまいますが、大変耳の痛いお話です。 パッチをあてようにもスポンサーが渋ってこの辺りの 運用費まで出してくれないので、会社人間として動きが取れない状況です。 、、、、と愚痴り始めるとキリがないので、ここで止めておきますm(_ _)m
Orlofsky

2016/02/18 00:00

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

2016/02/18 16:18

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問