2015-04-20 53 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