EXPDP 及 EXP 用法(注意:导出时一定要对空表做处理,可参考相关文章)

注意:在导出导入过程中要确保导入的表空间(及临时)名称与原表空间名称一致。

    如果表中有BLOB或CLOB字段。可以先创建表,再导数据

EXPDP 用法步骤

  • 手动创建导出目录文件夹。目录名称与第二步的目录名称一致

  • 使用SQL 创建目录(需要使用SYSDBA权限)

    create directory dir_dp(目录名称) as 'D:/dir_dp';

  • 授权(需要使用SYSDBA权限) 

    Grant read,write on directory dir_dp to zftang;

  • 执行导出(cmd下运行)

    expdp 用户名/密码@实例名 schemas=用户名 directory=创建的目录名称 dumpfile =expdp_test1.dmp logfile=expdp_test1.log;

  • 备注:该方法忽略了JOB名称,如果需要,写法后添加:job_name=my_job


EXP 用法详解

数据导出

1 将数据库SampleDB完全导出,用户名system 密码manager 导出到E:\SampleDB.dmp中

exp system/manager@TestDB file=E:\sampleDB.dmp full=y

2 将数据库中system用户与sys用户的表导出

exp system/manager@TestDB file=E:\sampleDB.dmp owner=(system,sys)

3 将数据库中的表 TableA,TableB 导出

exp system/manager@TestDB file=E:\sampleDB.dmp tables=(TableA,TableB)

4 将数据库中的表tableA中的字段filed1 值为 "王五" 的数据导出

exp system/manager@TestDB file=E:\sampleDB.dmp tables=(tableA) query=' where filed1='王五'

如果想对dmp文件进行压缩,可以在上面命令后面 加上 compress=y 来实现。

数据导入

1 将备份数据库文件中的数据导入指定的数据库SampleDB 中,如果 SampleDB 已存在该表,则不再导入;

imp system/manager@TEST file=E:\sampleDB.dmp full=y ignore=y

2 将d:\daochu.dmp中的表table1 导入

imp system/manager@TEST file=E:\sampleDB.dmp tables=(table1)

3. 导入一个完整数据库

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

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

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

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

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)

6. 导入一个表

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

7. 从多个文件导入

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

8. 使用参数文件

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
参数文件示例见附录

9. 增量导入

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

EXP 实用示例

----之前一直使用PL/SQL工具将表、视图等等分开导入。后来发现oracle自带的 imp和exp 更加好用。可以将所有信息全部copy,如此,我们也可以也根据这个写自动备份,将数据库数据全部备份。--

a.导出整个数据库TEST,system/manager 为用户名密码, file=d:\daochu.dmp 是导出的目录

 exp system/manager@TEST file=d:\daochu.dmp full=y

b.导出数据库TEST下的system用户域sys用户所有表

 exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)

c.指定导出数据库的表或视图或其它

 exp system/manager@TEST file=d:\daochu.dmp tables=(table_1,table_2)

  view=......

d.导入整个数据库,D:\daochu.dmp 中的数据到test数据库中。

   imp sys/manager@test file=d:\daochu.dmp

e.导入用户下所有表空间等等

   imp ZM/sql123@ORCL fromuser=ZM touser=SZZM file=F:\test.dmp ignore=y





你可能感兴趣的:(用法,exp,expdp)