Oracle
Expdp 錯誤 UDE-22303
當我嘗試使用 expdmp 實用程序導出到數據庫時遇到以下錯誤:
UDE-22303:操作生成 ORACLE 錯誤 22303
OCI-22303:類型“SYS”。未找到“KU$_STATUS1020”
你知道什麼會導致這個錯誤嗎?
SQL> show parameter aq NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ aq_tm_processes integer 0 SQL> show parameter streams_pool_size NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ streams_pool_size big integer 0 SQL> show parameter db_cache_size NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_cache_size big integer 24G
解決方案:
SQL> alter system set aq_tm_processes=1 scope=both sid='*'; SQL> alter system set streams_pool_size = 256M scope = both sid='*';
如果您收到任何這樣的錯誤:
ERROR at line 1: ORA-02097: parameter cannot be modified because specified value is invalid ORA-04033: Insufficient memory to grow pool
減小 db_cache_size:
SQL> alter system set db_cache_size = 12G scope = both sid='*';
並重新執行:
SQL> alter system set streams_pool_size = 256M scope = both sid='*';
現在,您可以再次執行 expdp 而不會出現問題。完成後,不要忘記回滾所有更改。
我想說執行您嘗試執行的任何語句的使用者沒有權限查看/執行這個顯式/使用者定義的類型。
在 KU$_STATUS1220 上授予執行以保護;
上述語句將允許使用者“PROTECT”能夠引用 TYPE。(顯然,您需要將“PROTECT”替換為您用來執行失敗語句的任何使用者。
我很好奇在執行賽門鐵克(現為 Broadcom)為升級 DLP 軟體而提供的升級準備工具 (URT) 期間是否發現了此問題。這就是我使用 PROTECT 使用者的原因……(在我們的案例中,我們也必須對 DLP_URT 使用者執行此操作。不確定您的使用者)。