关于expdp和impdp
exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
expdp和impdp是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
imp只适用于exp导出的文件,不适用于expdp导出文件;impdp只适用于expdp导出的文件,而不适用于exp导出文件。
expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入。
一、创建管理员目录
该目录在此处用于指定dump文件所在目录,好处是在导入导出的时候只需要directory=dump_dir就可以指定目录了,使语句结构清晰。该命令不会在操作系统创建真正的目录,最好以system等管理员创建。管理员目录也就是directory对象,Directory对象是Oracle10g版本提供的一个新功能。他是一个 指向,指向了操作系统中的一个路径,可以看做数据库对象跟系统目录的映射。每个Directory都包含 Read,Write两个权限,可以通过Grant命令授权给指定的用户或角色。拥有读写权限的用户就可以读写该Directory对象指定的操作系统路 径下的文件。
create directory dump_dir as '/data/oracle/my_dump_dir/';
二、查看管理员目录
在此处意为查看刚建立的dump文件所在父目录是,而Oracle并不关心该目录是否存在,如果不存在,只是在导入导出时报错。
select * from dba_directories;
三、给scott用户赋予指定目录的操作权限
grant read,write on directory dump_dir to scott;
四、导出数据
--1)按用户导
expdp scott/tiger@1.2.3.4:1521/orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dump_dir;
--2)并行进程parallel
expdp scott/tiger@1.2.3.4:1521/orcl directory=dump_dir dumpfile=scott3.dmp parallel=40 job_name=scott3
--3)按表名导
expdp scott/tiger@1.2.3.4:1521/orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dump_dir;
--4)按查询条件导
expdp scott/tiger@1.2.3.4:1521/orcl directory=dump_dir dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
--5)按表空间导
expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
--6)导整个数据库
expdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
五、导入数据
--1)导到指定用户下
impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=expdp.dmp SCHEMAS=scott;
--2)改变表的owner
impdp system/manager DIRECTORY=dump_dir DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
--3)导入表空间
impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=example;
--4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
--5)追加数据
impdp system/manager DIRECTORY=dump_dir DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION