Popular Posts(last24hours)

【後で調べる】Tag: ORA-39077: unable to subscribe agent KUPC$A_1_083325450472000

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。

Tag: ORA-39077: unable to subscribe agent KUPC$A_1_083325450472000

https://geodatamaster.com/tag/ora-39077-unable-to-subscribe-agent-kupca_1_083325450472000/

data pump(expdp)が以下のようなエラーで異常終了した場合、一度この状態になると何度やっても失敗する

ORA-31626: job does not exist
ジョブが存在しません
ORA-31638: cannot attach to job XXX for user XXX
ジョブXXXに連結できません
ORA-06512: at “SYS.KUPV$FT”, line 1142
ORA-06512: at “SYS.DBMS_SYS_ERROR”, line 95
ORA-06512: at “SYS.KUPV$FT_INT”, line 498
ORA-06512: at “SYS.DBMS_SYS_ERROR”, line 95
ORA-06512: at “SYS.KUPC$QUE_INT”, line 294
ORA-06512: at “SYS.DBMS_AQADM_SYS”, line 9306
ORA-06512: at “SYS.DBMS_PRVTAQIS”, line 1873
ORA-06512: at “SYS.DBMS_PRVTAQIS”, line 3802
ORA-06512: at “SYS.DBMS_RULE_ADM”, line 296
ORA-06512: at “SYS.DBMS_RULEADM_INTERNAL”, line 106
等ORA-06512エラーが複数行出力される
ORA-39077: unable to subscribe agent KUPC$A_1_xxxxxxxx to queue “KUPC$C_1_XXXXXXXX”
エージェントagent KUPC$A_1_xxxxxxxxをキューagent KUPC$A_1_xxxxxxxxにサブスクライブできませn
ORA-00972: identifier is too long
数値または値のエラー

以下の数値が100万を超えている

SQL> SELECT "SYS"."AQ$_KUPC$DATAPUMP_QUETAB_1_N".NEXTVAL val# FROM DUAL;

      VAL#
----------
   1000251
以下の記述実行でも可
SQL> SELECT "SYS"."AQ$_KUPC$DATAPUMP_QUETAB_1_N".NEXTVAL FROM DUAL;

      NEXTVAL
----------
   1000251

2つの解決策があり、

1つはパッチをあてることである(※使用しているOracleのVerに対応したパッチがある場合)

Data Pump Recommended Proactive Patches For 19.10 and Above (Doc ID 2819284.1)

https://support.oracle.com/knowledge/Oracle%20Database%20Products/2819284_1.html

パッチはオンラインで適用し、データベースサービスをシャットダウンする必要はない

download the bundle patch and apply it “online” with NO database service shutdown required…

もう1つはdatapumpカタログを再作成することである

SQL> @$ORACLE_HOME/rdbms/admin/catdph.sql
SQL> @$ORACLE_HOME/rdbms/admin/prvtdtde.plb
SQL> @$ORACLE_HOME/rdbms/admin/catdpb.sql
SQL> @$ORACLE_HOME/rdbms/admin/dbmspump.sql
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
を順に実行していく。

↓実行例

SQLPlusに接続
sqlplus / as sysdba

SELECT "SYS"."AQ$_KUPC$DATAPUMP_QUETAB_1_N".NEXTVAL val# FROM DUAL;
作業前の値を確認。100万件以上であれば同症状が発現する可能性。

SQL> @$ORACLE_HOME/rdbms/admin/catdph.sql

権限付与が成功しました。
PL/SQLがプロシージャが正常に完了しました。
パッケージが作成されました。
パッケージ本体が作成されました。
等のメッセージ
 
SQL> @$ORACLE_HOME/rdbms/admin/prvtdtde.plb

ライブラリが作成されました。
シノニムが作成されました。
パッケージが作成されました。
等のメッセージ
 
SQL> @$ORACLE_HOME/rdbms/admin/catdpb.sql

権限付与が成功しました。
ビューが作成されました。
シノニムが作成されました。
コメントが作成されました。
表が作成されました。
表が削除されました。
1行が作成されました。
コミットが完了しました。
等のメッセージ
 
SQL> @$ORACLE_HOME/rdbms/admin/dbmspump.sql


型が作成されました。
型本体が作成されました。
ライブラリが作成されました。
等のメッセージ

SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql

PL/SQLプロシージャが正常に完了しました。
ファンクションが作成されました。
ファンクションが削除されました。
等のメッセージ

再度、以下のSQLをsysdba権限を持つユーザーで実行し

SELECT "SYS"."AQ$_KUPC$DATAPUMP_QUETAB_1_N".NEXTVAL val# FROM DUAL; 

結果、数が減少したことを確認する。sysdba権限を持つユーザで実行しても、順序が存在しないなどのエラーになる場合は、一回expdpで適当なテーブルをエクスポートしてから、もう一度実行してみる。

※参考

https://www.orafaq.com/forum/t/203195/

You hit a known bug, if AQ$_KUPC$DATAPUMP_QUETAB_1_N reaches 1000000 you have this error.
No patch in your version, the workaround is to recreate the Data Pump environment:

 

【PR】最近楽天で購入した商品

こちらもなかなかのボリューム。子供が綺麗に折り紙を折れるようになると、成長が感じられて、嬉しい。かんたん・かわいい・楽しい! 決定版 おりがみ大図鑑 大ボリューム!190作品がオールカラーでわかる! [...]

この手のやつは、いったいどういう仕組みで絵とペンの音声をマッチさせているのか不思議。もの凄いボリュームなので、子供も飽きずに楽しめます。音で学べる!英語ことば図鑑5000 タッチペンつき [ アレン玉 [...]

いつの間にか、黎明篇の続きが!前回で完結したとばかり思っていたので、これは嬉しい。そして、めちゃくちゃ面白い!宇宙戦艦ヤマト 黎明篇 第2部 マリグナント・メモリー [ 塙 龍之 ]価格:1,650円 [...]

Tips

Posted by admin