Oracle数据导入导出imp/exp

  exp/imp为一种数据库备份恢复工具也可以作为不同数据库之间传递数据的工具两个数据库所在的操作系统可以不同exp 可以将数据库数据导出为二进制文件imp 可以将导出的数据文件再导入到相同的数据库或不同的数据库 
   
  数据库导出有四种模式full(全库导出), owner(用户导出), table(表导出), tablespace(表空间导出). 
   
  full( 全库导出): 导出除ORDSYS,MDSYS,CTXSYS,ORDPLUGINS,LBACSYS 这些系统用户之外的所有用户的数据. 
   
  owner( 用户导出): 导出某个或某些用户的所有权限和数据. 
   
  tables( 表导出): 导出某些表(可以是不同用户的)的结构和数据. 
   

  tablespace( 表空间导出):表空间导出数据. 


Oracle数据导入导出imp/exp就相当于逻辑(数据的)备份与恢复,支持客户端与服务器操作。
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,
imp命令可以把dmp文件从本地导入到远处的数据库服务器中。
执行环境:在客户端与服务端的shell状态下DOS(命令行)中执行

*********************数据导出 exp ****************************
1、全库方式,导出整个数据库中所有的对象,但并不包括sys用户中的对象,即数据字典无法导出。
exp user/pwd@db_name full=y file=D:\database.dmp log=D:\database.log

2、用户方式:导出某一用户下所有的对象,授权了权限的用户可以导出其他用户所拥有的对象。作为全库导出的补充应用
exp user/pwd@db_name owner=user file=D:\owner.dmp log=D:\owner.log

3、表方式:只导出某一用户下指定的表,而不是所有的表。
exp user/pwd@db_name tables=(tb1,tb2) file= D:\table.dmp log=e:\table.log

4、补充:将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp user/pwd@db_name tables=(table1) query=" where filed1 like '00%'" file=D:\query.dmp log=d:\query.log
  
***上面是常用的导出 **更多参数exp help=y 查看

===================================================================================

*********************数据的导入 imp ****************************
1、全部导入
imp user/pwd@db_name full=y file=D:\database.dmp log=d:\impdatabase.log ignore=y

2、选择表导入 将D:\table.dmp中的表table1 导入
imp user/pwd@db_name file=D:\table.dmp log=d:\imptable.log tables=(table1) 
如果源表已经存在,导入时报错。在后面加上 ignore=y 就可以了。
不少情况要先是将表彻底删除,然后导入。或创建和原表一样结构的临时表然后导入到临时表中。

备注:语句执行中可能碰上的问题:
***EXP-00091 正在导出有问题的统计信息 
原因:字符集问题
解决:exp命令加statistics=none选项



1. 获取帮助

 imp help=y

2. 导入一个完整数据库

 imp system/manager file=bible_db log=dible_db full=y ignore=y

3. 导入一个或一组指定用户所属的全部表、索引和其他对象

 imp system/manager file=seapark log=seapark fromuser=seapark 
 imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)

4. 将一个用户所属的数据导入另一个用户

 imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy
 imp system/manager file=tank log=tank fromuser=(seapark,amy)
 touser=(seapark1, amy1)

5. 导入一个表

 imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)

6. 从多个文件导入

 imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4) 
log=paycheck, filesize=1G full=y

7. 使用参数文件

 imp system/manager parfile=bible_tables.par

bible_tables.par参数文件:

 #Import the sample tables used for the Oracle8i Database Administrator's 
Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import

8. 增量导入

 imp system./manager inctype= RECTORE FULL=Y FILE=A

你可能感兴趣的:(Oracle数据导入导出imp/exp)