Exp/Imp@H_301_4@是oracle@H_301_4@备份数据的两个命令行工具
1.本地数据库导入导出
1.导出
(运行---cmd@H_301_4@中操作)
exp@H_301_4@用户名/@H_301_4@密码@@H_301_4@数据库实例名file=@H_301_4@本地存放路径
eg: exp jnjp/jnjp@ORCL file=C:/jnjp.dmp
2.导入
imp@H_301_4@用户名/@H_301_4@密码@@H_301_4@数据库实例名file=@H_301_4@本地数据库文件存放路径full=y ignore=y
eg: imp jnjp/jnjp@orcl file=E:\jnjp.dmp full=yignore=y
2.远程数据库导入导出
1.导出
exp@H_301_4@用户名/@H_301_4@密码@ip@H_301_4@地址/@H_301_4@数据库实例名file=@H_301_4@本地存放路径
eg: exp jnjp/jnjp@10.15.135.18/orcl file=C:/jnjp.dmp
imp@H_301_4@用户名/@H_301_4@密码@ip@H_301_4@地址/@H_301_4@数据库实例名file=@H_301_4@本地数据库文件存放路径full=y
3.EXP@H_301_4@的所有参数(括号中为参数的默认值)
USERID @H_301_4@用户名/@H_301_4@口令 如:USERID=duanl/duanl
BUFFER @H_301_4@数据缓冲区的大小
OWNER @H_301_4@所有者用户名列表,@H_301_4@你希望导出哪个用户的对象,就用owner=username
FILE @H_301_4@输出文件(EXPDAT.DMP)
TABLES @H_301_4@表名列表,@H_301_4@指定导出的table@H_301_4@名称,如:TABLES=table1,table2
COMPRESS @H_301_4@导入一个extent (Y)
RECORDLENGTH IO@H_301_4@记录的长度
GRANTS @H_301_4@导出权限(Y)
INCTYPE @H_301_4@增量导出类型
INDEXES @H_301_4@导出索引(Y)
RECORD @H_301_4@跟踪增量导出(Y)
ROWS @H_301_4@导出数据行(Y)
PARFILE @H_301_4@参数文件名,@H_301_4@如果你exp@H_301_4@的参数很多,可以存成参数文件.
CONSTRAINTS @H_301_4@导出约束(Y)
CONSISTENT @H_301_4@交叉表一致性
STATISTICS @H_301_4@分析对象(ESTIMATE)
DIRECT @H_301_4@直接路径(N)
TRIGGERS @H_301_4@导出触发器(Y)
FeedBACK @H_301_4@显示每x@H_301_4@行(0)@H_301_4@的进度
QUERY @H_301_4@选定导出表子集的子句
下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE@H_301_4@导出可传输的表空间元数据(N)
TABLESPACES@H_301_4@将传输的表空间列表
4.IMP@H_301_4@的所有参数(括号中为参数的默认值)
USERID @H_301_4@用户名/@H_301_4@口令
BUFFER @H_301_4@数据缓冲区大小
FILE @H_301_4@输入文件(EXPDAT.DMP)
TABLES @H_301_4@表名列表
GRANTS @H_301_4@导入权限(Y)
INCTYPE @H_301_4@增量导入类型
INDEXES@H_301_4@导入索引(Y)
COMMIT @H_301_4@提交数组插入(N)
ROWS @H_301_4@导入数据行(Y)
CONSTRAINTS @H_301_4@导入限制(Y)
INDEXFILE@H_301_4@将表/@H_301_4@索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES @H_301_4@跳过不可用索引的维护(N)
ANALYZE @H_301_4@执行转储文件中的ANALYZE@H_301_4@语句(Y)
FeedBACK@H_301_4@显示每x@H_301_4@行(0)@H_301_4@的进度
TOID_NOVALIDATE @H_301_4@跳过指定类型id@H_301_4@的校验
RECALCULATE_STATISTICS@H_301_4@重新计算统计值(N)
TRANSPORT_TABLESPACE@H_301_4@导入可传输的表空间元数据(N)
TABLESPACES@H_301_4@将要传输到数据库的表空间
DATAFILES@H_301_4@将要传输到数据库的数据文件
TTS_OWNERS@H_301_4@拥有可传输表空间集中数据的用户
5.EXP@H_301_4@常用选项
1.FULL
这个用于导出整个数据库,在ROWS=N@H_301_4@一起使用时,可以导出整个数据库的结构。例如:
exp userid=test/test file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y
注:在oracle10g@H_301_4@中,userid@H_301_4@这个是可以不用写的直接写 用户名/@H_301_4@密码 就可以了像这样:
exp test/test file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y
2.OWNER@H_301_4@和TABLE
这两个选项用于定义EXP@H_301_4@的对象。OWNER@H_301_4@定义导出指定用户的对象;TABLE@H_301_4@指定EXP@H_301_4@的table@H_301_4@名称,例如:
exp userid=test/test file=./db_str.dmp log=./db_str.log owner=duanl
注:@H_301_4@有的时候我们可能会遇到只导出单表的情况,下面这种方法可以帮你解决问题
exp userid=test/test file=./db_str.dmp log=./db_str.log table=nc_data,fi_arap
3.FILE@H_301_4@和LOG
这两个参数分别指定备份的DMP@H_301_4@名称和LOG@H_301_4@名称,包括文件名和目录,例子见上面。
4.COMPRESS
COMPRESS@H_301_4@参数不压缩导出数据的内容。用来控制导出对象的storage@H_301_4@语句如何产生。默认值为Y@H_301_4@,使用默认值,对象的存储语句的init extent@H_301_4@等于当前导出对象的extent@H_301_4@的总和。推荐使用COMPRESS@H_301_4@=N@H_301_4@。
6.IMP@H_301_4@常用选项
1@H_301_4@、FROMUSER@H_301_4@和TOUSER
使用它们实现将数据从一个SCHEMA@H_301_4@中导入到另外一个SCHEMA@H_301_4@中。例如:假设我们做exp@H_301_4@时导出的为test@H_301_4@的对象,@H_301_4@现在我们想把对象导入用户:
imp userid=test1/test1 file=expdat.dmp fromuser=test1 touser=test1
2、IGNORE@H_301_4@、GRANTS@H_301_4@和INDEXES
其中IGNORE@H_301_4@参数将忽略表的存在,继续导入,这个对于需要调整表的存储参数时很有用,我们可以先根据实际情况用合理的存储参数建好表,然后直接导入数据。而GRANTS@H_301_4@和INDEXES@H_301_4@则表示是否导入授权和索引,如果想使用新的存储参数重建索引,或者为了加快到入速度,我们可以考虑将INDEXES@H_301_4@设为N@H_301_4@,而GRANTS@H_301_4@一般都是Y@H_301_4@。例如:imp userid=test1/test1 file=expdat.dmp fromuser=test1 touser=test1 indexes=N
7.导入导出实例
下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。
1.数据导出:
1.1将数据库TEST@H_301_4@完全导出,@H_301_4@用户名system@H_301_4@密码manager@H_301_4@导出到D:\daochu.dmp@H_301_4@中
exp system/manager@TEST file=d:\daochu.dmp full=y
1.2@H_301_4@将数据库中system@H_301_4@用户与sys@H_301_4@用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
1.3@H_301_4@将数据库中的表table1@H_301_4@、table2@H_301_4@导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
1.4@H_301_4@将数据库中的表table1@H_301_4@中的字段filed1@H_301_4@以"00"@H_301_4@打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
2.数据的导入:
2.1@H_301_4@将D:\daochu.dmp@H_301_4@中的数据导入TEST@H_301_4@数据库中。
imp system/manager@TEST file=d:\daochu.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
2.2@H_301_4@将d:\daochu.dmp@H_301_4@中的表table1@H_301_4@导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。
3.导出、导入通配符的使用:
想导出格式为TABLE_1,TABLE_2,TABLE_3@H_301_4@这样的表,这样的表在库中共有300@H_301_4@张,难道要一张张的写语句?太费神了吧,不用担心,oracle@H_301_4@提供通配符可以使用来满足这样的需求:
exp system/test@192.168.1.198/orcl file=d:\exp_test.dmptables=TABLE_% log=exp_test.log
参考资料:http://sucre.iteye.com/blog/424760