在堆棧溢出的幫助下,我已經能夠從我的本地機器導出數據庫的轉儲文件。我使用的命令如下:從Oracle 11g導入.dmp文件到10g返回錯誤「無法打開日誌文件」
host expdp tkcsowner/[email protected] version=10.2 schemas=tkcsowner dumpfile=tnrg.dmp logfile=tnrg.log
現在,我的本地機器的操作系統Windows 7,32位。幾乎沒有服務器。它有Oracle 11g。我想將它轉移到另一臺運行Linux的測試服務器。它有Oracle 10g。
我絕不是Linux/Unix專家,但我確實有一些處理此類問題的人留給我的指導。
首先,我通過'su - '將權限更改爲root用戶 - 沒有問題。
以'sqlplus/nolog'登錄,然後'connect sys/sys @ xe as dba' - 沒有問題。
我創建的邏輯轉儲目錄(不知道是否需要這一步,但我就是這麼做的):
create or replace directory dumpdir as 'usr/lib/oracle/xe/app/oracle/admin/XE/dpdump';
做,沒有問題。
所以我認爲TNRG.dmp和tnrg.log應該在該目錄內。不幸的是,由於某種原因,它不能被複制。拒絕訪問。我想我應該註銷,以root身份登錄,並從那裏複製這些內容。它起作用了,但爲了安全起見,我退出了root用戶,以普通用戶身份登錄,並且再次執行了所有操作。 D'哦。
最後,隨着所有的東西到位,現在是時候導入.dmp和.log。好哇!
impdp tkcsowner/[email protected] schemas=tkcsowner dumpfile=TNRG.dmp logfile=tnrg.log
瞧,它要求輸入用戶名和密碼。是否因爲tkcsowners在10g數據庫中不存在?無論如何,我爲兩者都提供了「系統」。它繼續,但警告鈴已經在我腦海中掀起。
突然:
- 連接到:Oracle數據庫10g Express Edition的發佈10.2.0.1.0 - 生產
- ORA-39002:無效的操作
- ORA-39070:無法打開日誌文件。
- ORA-29283:無效的文件操作
- ORA-06512:在 「SYS.UTL_FILE」,線路475
- ORA-29283:無效的文件操作
在這一點,我不確定如何繼續。我通過命令行進入了目錄,並且ls -l了內容,顯示.dmp和.log都有三個rwx,用於root用戶。我還沒有嘗試的是以root身份登錄時運行整個操作,但我不確定這會如何改變任何內容。
你需要讓用戶運行的實例你的日誌寫入該目錄的所有者。 – haki
對不起,我沒有明白;我沒有寫日誌(我認爲),它已經在目錄中。如果你的意思是以root用戶身份(服務器上唯一的其他用戶)這樣做,那麼「su - 」是否已經這樣做?再次,對不起,我不是Linux專家。 –
導出日誌與導入過程無關;你還沒有需要複製該日誌。該錯誤正在與導入過程的新日誌相關聯。但是當你創建目錄對象時,你真的把它設置爲''usr/lib/oracle/...'而不是'/ usr/lib/oracle/...'嗎?缺少主導斜線會使路徑無效並可能導致此類錯誤。 –