impdp使用
注意到与EXP不同,EXPDP增加了一个主要的参数:DIRECTORY
这个参数是用来定义一个路径,前面已经提到,数据泵主要在Server端工作,导出文件需要写出到Server端本地目录,这个DIRECTORY就是对应的Server端的路径
如:
//创建目录
create or replace directory expdir as 'd:\';
//给test赋予目录的读写权限
grant read,write on directory expdir to test;
//导出数据
C:\>expdp test/test@acf dumpfile=test.dmp directory=expdir
1) 导入表
impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp
impdp system/manager DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=scott.dept,scott.emp REMAP_SCHEMA=SCOTT:SYSTEM
第一种方法表示将DEPT和EMP表导入到SCOTT方案中,第二种方法表示将DEPT和EMP表导入SYSTEM用户下. 注意,如果要将表导入到其他方案中,必须指定REMAP_SCHEMA选项.
2) 导入方案
impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott
impdp system/manager DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott REMAP_SCHEMA=scott:system
3) 导入表空间
impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=user01
4) 导入数据库
impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y
5) 通过DBLINK的方式直接从远程数据库导入数据, 省去生成中间文件的步骤
--创建Directory
SQL> connect u_test/xxx
SQL> !mkdir /u02/backup
SQL> create or replace directory dir_dpdump as '/u02/backup';
--创建DBLINK
SQL> create database link ESUITE.NET connect to u_test identified by "xxx" using 'db_esuite';
SQL> select count(*) from tab@ESUITE.NET;
--利用IMPDP导入数据
$ impdp 'u_test/"xxx"' SCHEMAS=(u_test) directory=dir_dpdump network_link="ESUITE.NET" logfile=impdp.log
$ impdp 'u_test/"xxx"' TABLES=LOG_RECORD_DETAIL_20090422 directory=dir_dpdump network_link="ESUITE.NET"
6) 实例
SQL> conn /as sysdba
SQL> CREATE OR REPLACE DIRECTORY dir_dump AS '/u01/backup/';
SQL> GRANT read,write ON DIRECTORY dir_dump TO public;
SQL> grant connect, resource to trial_wending identified by 'xxx';
SQL> CREATE TABLESPACE WENDING_LOG01 DATAFILE '/orahome/oradata/WENDING/wending_log01.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
SQL> CREATE TABLESPACE WENDING_USER01 DATAFILE '/orahome/oradata/WENDING/wending_user01.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
SQL> CREATE TABLESPACE WENDING_INDEX01 DATAFILE '/orahome/oradata/WENDING/wending_index01.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
注意,如果导入的用户下的过程或同义词用到了数据库连接,先把数据库链接给建上,否则导入这些对象时会很慢.
$ impdp u_test/xxx directory=dir_dump dumpfile=trial_wending_20081217.dp schemas=trial_wending (从全备份中提取)
$ impdp cat/passwd directory=dir_dump dumpfile=cat.dmp schemas=cat logfile=impcatr.log (从自身导出的方案中导入)
LINUX下文件名带当前时间:`date +%y%m%d`