exp导出的二进制数据导入到数据库中,只有版本比导出时的exp的版本新的imp才能读。
导入之前的工作:
1:运行CATALOG.SQL脚本(运行一次即可),后面就不需要了;
这个脚本会做如下动作:
# Assign all necessary privileges to the IMP_FULL_DATABASE role.
# Assign IMP_FULL_DATABASE to the DBA role.
# Create required views of the data dictionary.
2:拥有访问的权限。
IMP_FULL_DATABASE
CREATE SESSION
3:执行imp:
imp username/password PARAMETER=value
or
imp username/password PARAMETER=(value1,value2,...,valuen)
参数文件:
PARAMETER=value
PARAMETER=(value)
PARAMETER=(value1, value2, ...)
例如:
FULL=y
FILE=dbay
INDEXES=y
CONSISTENT=y
5:参数说明:
这里只说明exp中没有的参数,其余参数参考exp。
INGORE:
默认:n
指定建立对象时发生错误时的处理动作。
如果是默认值,INGNORE=n,在继续执行导入操作时会在log和终端上显示建立对象时发生错误的提示,然后继续。
如果IGNORE=y,导入发生建立对象错误时,imp就不会显示错误信息。
其他错误发生时,导入操作会终止。
如果表已经存在并且设置了IGNORE=y,那么dmp的行会被插入到已经存在的表中,并且不会显示错误信息。
如果表一家存在并且设置了IGNORE=N,那么错误会报告出来并且插入操作被跳过。所有的操作就不会继续。
6:导入会话的例子:
1)为一个特定用户导入选择的表:
imp SYSTEM/password PARFILE=params.dat
FILE=dba.dmp
SHOW=n
IGNORE=n
GRANTS=y
FROMUSER=scott
TABLES=(dept,emp)
命令行:
imp SYSTEM/password FILE=dba.dmp FROMUSER=scott TABLES=(dept,emp)
2)导入另一个用户的表:
imp SYSTEM/password PARFILE=params.dat
FILE=blake.dmp
SHOW=n
IGNORE=n
GRANTS=y
ROWS=y
FROMUSER=blake
TOUSER=scott
TABLES=(unit,manager)
命令行:
imp SYSTEM/password FROMUSER=blake TOUSER=scott FILE=blake.dmp -
TABLES=(unit,manager)
5)从一个用户的表导入到另一个用户的表中:
imp SYSTEM/password PARFILE=params.dat
FILE=scott.dmp
FROMUSER=scott
TOUSER=blake
TABLES=(*)
命令行:
imp SYSTEM/password FILE=scott.dmp FROMUSER=scott TOUSER=blake TABLES=(*)
6)使用通配符导入多个表:
imp SYSTEM/password PARFILE=params.dat
FILE=scott.dmp
IGNORE=n
GRANTS=y
ROWS=y
FROMUSER=scott
TABLES=(%d%,b%s)
imp SYSTEM/password FROMUSER=scott FILE=scott.dmp TABLES=(%d%,b%s)
imp main/bestwiz tables=xxx_product IGNORE=y file="/tmp/product.dmp" log="/tmp/product.log" rows=y
阅读(1900) | 评论(1) | 转发(0) |