日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Solaris 下 Oracle impdp 过程中出现的问题

發布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Solaris 下 Oracle impdp 过程中出现的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ORA-39002: invalid operation

ORA-39070: Unable to open the log file.

ORA-29283: invalid file operation

ORA-06512: at "SYS.UTL_FILE", line 475

ORA-29283: invalid file operation

解決方法參考1:


今天在使用IMPDP完成數據導入的過程中遇到“ORA-39002、ORA-39070……”連續報錯。

導致問題原因很簡單,但是提示的錯誤信息內容比較“詭異”,為了朋友們少走彎路,簡單記錄一下這個問題的處理過程。


1.問題再現

sec@secDB /db_backup/dpump_dir$ impdp sec/sec directory=dpump_dir dumpfile=20100604020437_sec.dmp logfile=impdp.log


Import: Release 10.2.0.3.0 - 64bit Production on Friday, 04 June, 2010 14:39:16


Copyright (c) 2003, 2005, Oracle. ?All rights reserved.


Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

ORA-39002: invalid operation

ORA-39070: Unable to open the log file.

ORA-29283: invalid file operation

ORA-06512: at "SYS.UTL_FILE", line 475

ORA-29283: invalid file operation


2.問題分析

這里的“ORA-39070”提到的“Unable to open the log file.”初看非常的“詭異”,到底無法打開什么日志文件呢?難道是沒有權限在這個目錄下寫文件?經過“touch”測試排除了這種可能***。

不管怎么說,這個問題與文件操作相關。順著這個思路繼續前行,終于發現原來數據庫中的directory數據庫對象所指向的目錄為“/oradata/dpump_dir”,而在該操作系統中根本沒有這個目錄,因目錄不存在,日志文件也就理所當然的無處可寫。


不過這個報錯的信息卻是不夠明顯,如果能夠給出更多的檢查和明確的報錯信息就更好了。


sys@ora10g> col owner for a6

sys@ora10g> col DIRECTORY_NAME for a20

sys@ora10g> col DIRECTORY_PATH for a30

sys@ora10g> select * from dba_directories where DIRECTORY_NAME = 'DPUMP_DIR';


OWNER ?DIRECTORY_NAME ? ? ?DIRECTORY_PATH

------ -------------------- ------------------------------

SYS ? ?DPUMP_DIR ? ? ? ? ? ?/oradata/dpump_dir


3.問題處理

發現問題后,處理方法就簡單了許多,只需要重新創建directory數據庫對象即可。

sys@sec> drop directory dpump_dir;


Directory dropped.


sys@sec> create directory dpump_dir as '/db_backup/dpump_dir';


Directory created.


sys@sec> grant read, write on directory dpump_dir to public;


Grant succeeded.


4.導致該問題的潛在原因

在10g環境中即使在創建directory數據庫對象的過程中即使所引用的目錄不存在,該命令也是可以正常創建的,這就是容易誤操作的根本原因。

sys@ora10g> create directory dpump_dir_test as '/sec/ool/er';


Directory created.


小心陷阱。


5.小結



導致問題原因很簡單,但是提示的錯誤信息內容比較“詭異”,為了朋友們少走彎路,簡單記錄一下這個問題的處理過程。


1.問題再現

sec@secDB /db_backup/dpump_dir$ impdp sec/sec directory=dpump_dir dumpfile=20100604020437_sec.dmp logfile=impdp.log


Import: Release 10.2.0.3.0 - 64bit Production on Friday, 04 June, 2010 14:39:16


Copyright (c) 2003, 2005, Oracle. ?All rights reserved.


Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

ORA-39002: invalid operation

ORA-39070: Unable to open the log file.

ORA-29283: invalid file operation

ORA-06512: at "SYS.UTL_FILE", line 475

ORA-29283: invalid file operation


2.問題分析

這里的“ORA-39070”提到的“Unable to open the log file.”初看非常的“詭異”,到底無法打開什么日志文件呢?難道是沒有權限在這個目錄下寫文件?經過“touch”測試排除了這種可能***。

不管怎么說,這個問題與文件操作相關。順著這個思路繼續前行,終于發現原來數據庫中的directory數據庫對象所指向的目錄為“/oradata/dpump_dir”,而在該操作系統中根本沒有這個目錄,因目錄不存在,日志文件也就理所當然的無處可寫。


不過這個報錯的信息卻是不夠明顯,如果能夠給出更多的檢查和明確的報錯信息就更好了。


sys@ora10g> col owner for a6

sys@ora10g> col DIRECTORY_NAME for a20

sys@ora10g> col DIRECTORY_PATH for a30

sys@ora10g> select * from dba_directories where DIRECTORY_NAME = 'DPUMP_DIR';


OWNER ?DIRECTORY_NAME ? ? ?DIRECTORY_PATH

------ -------------------- ------------------------------

SYS ? ?DPUMP_DIR ? ? ? ? ? ?/oradata/dpump_dir


3.問題處理

發現問題后,處理方法就簡單了許多,只需要重新創建directory數據庫對象即可。

sys@sec> drop directory dpump_dir;


Directory dropped.


sys@sec> create directory dpump_dir as '/db_backup/dpump_dir';


Directory created.


sys@sec> grant read, write on directory dpump_dir to public;


Grant succeeded.


4.導致該問題的潛在原因

在10g環境中即使在創建directory數據庫對象的過程中即使所引用的目錄不存在,該命令也是可以正常創建的,這就是容易誤操作的根本原因。

sys@ora10g> create directory dpump_dir_test as '/sec/ool/er';


Directory created.


小心陷阱。


5.小結


從該問題的處理過程中我們可以看到,在報錯信息不實很明顯的時候我們往往手足無措。越是在這樣的場景,我們越應該沉著冷靜,從整個操作的源頭一步一步的去排查,終有柳暗花明之時。


解決方法參考2:


?用 oracle ?用戶登錄后 把 directory ?指定的路徑 賦予權限


chown oracle /data_bak然后再chmod 分別給文件夾 及文件賦予權限


錯誤二:

ORA-31688: Worker process failed during startup.


一般我們在修改字符集時,會把兩個processes參數設置為0。

shutdown immediate;

STARTUP MOUNT;

ALTER SESSION SET SQL_TRACE=TRUE;

ALTER SYSTEM ENABLE RESTRICTED SESSION;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; ?

ALTER SYSTEM SET AQ_TM_PROCESSES=0; ?--這個參數默認就是0

ALTER DATABASE OPEN;

#ALTER ?DATABASE ?CHARACTER ?SET ?INTERNAL_USE ?ZHS16GBK;


配置好 重啟 用 startup 命令啟動


然后執行 imppd 成功


轉載于:https://blog.51cto.com/cuug520/1424382

總結

以上是生活随笔為你收集整理的Solaris 下 Oracle impdp 过程中出现的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。