2015-04-20 64 views
0

我已經採取完整數據庫備份從一臺服務器使用以下命令(包括使用Oracle 11g)轉移到另一個:dmp文件導入創建觸發器錯誤

exp SYSTEM/[email protected] full=y grants=y rows=y file=backup.dmp 

,現在當我想導入它到其他數據庫使用此:

imp SYSTEM/password file=backup.dmp fromuser=scott touser=scott 

我第一次獲得有關數據庫鏈接錯誤:

Create Database Link Failed. ORA-01031: insufficient privileges. 

我如果有人可以解釋爲什麼imp命令試圖將我的新數據庫鏈接到未連接的源數據庫,那將會有所幫助。 但除此之外,這不是我的主要問題...

是第一個錯誤後,它與進口繼續進口的所有行和表,然後在最後我得到了一系列相關的錯誤「CREATE TRIGGER的錯誤

ORA-00942: table or view does not exist 

我是否在我的導入參數中缺少某些東西?

回答

0

你似乎並不有權限來創建一個數據庫鏈接,請運行此作爲sys用戶

SQL> grant create database link to scott; 

Grant succeeded. 

然後重新導入轉儲文件,該觸發器失敗,因爲相關的表不存在的,我」假設數據庫鏈接將用於首先創建表。

,如果你只希望斯科特用戶是出口則無需連接到SYS, 這將工作,

export command 

exp scott/[email protected] file=backup.dmp log=backup_log.log owner=scott 

import command 

imp scott/[email protected]? file=backup.dmp log=imp_backup.log full=y 
+0

我已授權的數據庫鏈接而現在的特權誤差不上來,但當觸發器被創建時,我仍然得到表/視圖不存在的錯誤。 – AuthenticReplica

+0

您是否在導入命令中使用了參數full = y? – anudeepks

+0

是不同數據庫中的兩個scott模式嗎?如果是這樣,那麼你也需要這些表,使用rows = y只會得到你的數據而不是表結構,在你的exp命令中使用owner = scott會更好,然後嘗試導入,它將獲得你所有的表結構和數據以及 – anudeepks