我使用以下命令(使用Oracle 11g)将一台服务器的完整数据库备份移到另一台服务器上:
exp SYSTEM/password@db1 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命令试图将我的新数据库链接到未连接的源数据库会有所帮助。 但除此之外,这不是我的主要问题......
在第一个错误之后,它继续导入并导入所有的行和表,然后在最后我得到一系列与错误
创建触发器相关的错误ORA-00942: table or view does not exist
我在导入参数中遗漏了什么?
答案 0 :(得分:-1)
您似乎没有权限创建数据库链接,请以sys用户身份运行
SQL> grant create database link to scott;
Grant succeeded.
然后重新导入转储文件,触发器失败,因为相关的表不存在,我假设数据库链接将首先用于创建表。
如果您只想导出scott用户,则无需连接到sys, 这将有效,
export command
exp scott/pwd@db1 file=backup.dmp log=backup_log.log owner=scott
import command
imp scott/pwd@db? file=backup.dmp log=imp_backup.log full=y