您的当前位置:首页正文

oracle使用expdp、impdp和exp、imp导入导出表及表结构

2021-10-09 来源:欧得旅游网
oracle使⽤expdp、impdp和exp、imp导⼊导出表及表结构

使⽤expdp、impdp和exp、imp时应该注重的事项:

1、exp和imp是客户端⼯具程序,它们既可以在客户端使⽤,也可以在服务端使⽤。

2、expdp和impdp是服务端的⼯具程序,他们只能在oracle服务端使⽤,不能在客户端使⽤。

3、imp只适⽤于exp导出的⽂件,不适⽤于expdp导出⽂件;impdp只适⽤于expdp导出的⽂件,⽽不适⽤于exp导出⽂件。 4、对于10g以上的服务器,使⽤exp通常不能导出0⾏数据的空表,⽽此时必须使⽤expdp导出。exp、imp导⼊导出

sqlplus 进⼊数据库中 导出

直接在命令⾏下写命令 1.导出⾃⼰的表

exp userid=scott/tiger@myoral tables=(emp,dept) file=/opt/e1.dmp

2.导出其它⽅案的表 如果⽤户要导出其它⽅案的表,则需要dba的权限或是exp_full_database的权限,⽐如system就可以导出scott的表 exp userid=system/manager@myoral tables=(scott.emp) file=d:\\e2.emp 3. 导出表的结构

exp userid=scott/tiger@accp tables=(emp) file=/opt/e3.dmp rows=n 4. 使⽤直接导出⽅式

exp userid=scott/tiger@accp tables=(emp) file=/opt/e4.dmp direct=y

这种⽅式⽐默认的常规⽅式速度要快,当数据量⼤时,可以考虑使⽤这样的⽅法。 这时需要数据库的字符集要与客户端字符集完全⼀致,否则会报错

导出⽅案 导出⽅案是指使⽤export⼯具导出⼀个⽅案或是多个⽅案中的所有对象(表,索引,约束...)和数据。并存放到⽂件中 1. 导出⾃⼰的⽅案

exp userid=scott/tiger@myorcl owner=scott file=/opt/scott.dmp

2. 导出其它⽅案 如果⽤户要导出其它⽅案,则需要dba的权限或是exp_full_database的权限,⽐如system⽤户可以导出任何⽅案 exp userid=system/manager@myorcl owner=(system,scott) file=/opt/system.dmp 导出数据库

导出数据库是指利⽤export导出所有数据库中的对象及数据,要求该⽤户具有dba的权限或者是exp_full_database权限 增量备份(好处是第⼀次备份后,第⼆次备份就快很多了)

exp userid=system/manager@myorcl full=y inctype=complete file=/opt/all.dmp 导⼊

1. 导⼊⾃⼰的表

imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp 2. 导⼊表到其它⽤户 要求该⽤户具有dba的权限

imp_full_database imp userid=system/tiger@myorcl tables=(emp) file=/opt/xx.dmp touser=scott 3. 导⼊表的结构,只导⼊表的结构⽽不导⼊数据

imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp rows=n 4. 导⼊数据 如果对象(如⽐表)已经存在可以只导⼊表的数据

imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp ignore=y

导⼊⽅案 导⼊⽅案是指使⽤import⼯具将⽂件中的对象和数据导⼊到⼀个或是多个⽅案中。如果要导⼊其它⽅案,要求该⽤户具有dba的权限,或者imp_full_database 1. 导⼊⾃⾝的⽅案

imp userid=scott/tiger file=/opt/xxx.dmp

2. 导⼊其它⽅案 要求该⽤户具有dba的权限

imp userid=system/manager file=/opt/xxx.dmp fromuser=system touser=scott 导⼊数据库

在默认情况下,当导⼊数据库时,会导⼊所有对象结构和数据,案例如下: imp userid=system/manager full=y file=/opt/xxx.dmp expdp、impdp导⼊导出⼀、准备⼯作

1)、在备份⽬的路径建⽴备份⽂件夹 例如:d:\\bak

2)、⽤sys⽤户在oracle中创建逻辑⽬录

SQL>create directory oracleBak_dir as ‘d:\\bak’;3)、查看数据库中的逻辑⽬录 SQL>select * from dba_directories;4)、授权⽤户有对逻辑⽬录的读写权限

SQL>grant read,write on directory oracleBak_dir to someone;⼆、导出

1)导出⽤户

expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp directory=oracleBak_dir ;2)导出表

expdp scott/tiger@orcl tables=emp,dept dumpfile=expdp.dmp directory=oracleBak_dir ;

3)按查询条件导

expdp scott/tiger@orcl directory=oracleBak_dir dumpfile=expdp.dmp tables=emp query=’where deptno=20’;4)按表空间导

expdp system/manager@orcl directory=oracleBak_dir dumpfile=tablespace.dmp tablespaces=temp,example;5)导整个数据库

expdp system/manager@orcl directory=oracleBak_dir dumpfile=full.dmp full=y;三、导⼊数据

1)导⼊⽤户(从⽤户scott导⼊到⽤户scott)

impdp scott/tiger@orcl directory=oracleBak_dir dumpfile=expdp.dmp schemas=scott;

2)导⼊表(从scott⽤户中把表dept和emp导⼊到system⽤户中)

impdp system/manager@orcl directory=oracleBak_dir dumpfile=expdp.dmp tables=scott.dept,scott.emp remap_schema=scott:system;3)导⼊表空间

impdp system/manager@orcl directory=oracleBak_dir dumpfile=tablespace.dmp tablespaces=example;4)导⼊数据库

impdb system/manager@orcl directory=oracleBak_dir dumpfile=full.dmp full=y;

5)追加数据

impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmp schemas=systemtable_exists_action

因篇幅问题不能全部显示,请点此查看更多更全内容