expdb、impdb导出、导入数据

expdp导出数据

1、建立存放备份文件的目录(D:\expdb);

2、在sqlplus下建立逻辑目录

C:\Users\huangdezhi>sqlplus /nolog

SQL> conn system/sys@test as sysdba

SQL> create directory DUMP_DIR as 'D:\dbbak';

3、查看管理员目录

SQL>select * from dba_directories;

4、给test用户赋予在指定目录的操作权限,最好以system等管理员赋予

SQL>grant read,write on directory DUMP_DIR to test;

5、导出数据

1)导出用户
expdp test/test@test schemas=test  directory=DUMP_DIR dumpfile=expdp_1.dmp ;

2)导出表
expdp test/test@test tables=users dumpfile=users.dmp directory=DUMP_DIR3;

3)按查询条件导
expdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp tables=empquery='where deptno=20';

4)按表空间导
expdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmptablespaces=temp,example;

5)导整个数据库
expdp test/test@test directory=DUMP_DIRdumpfile=full.dmp full=y;


备注:

directory=DUMP_DIR必须放在前面,如果将其放置最后,会提示 ORA-39002: 操作无效
                                                             ORA-39070: 无法打开日志文件。
                                                             ORA-39087: 目录名 DATA_PUMP_DIR; 无效


impdp导入:

1、按表导入
p_street_area.dmp
文件中的表,此文件是以gwm用户按schemas=gwm导出的:
impdp gwm/gwm@fgisdb  dumpfile =p_street_area.dmp logfile=imp_p_street_area.log directory=dir_dp tables=p_street_area job_name=my_job

2
、按用户导入(可以将用户信息直接导入,即如果用户信息不存在的情况下也可以直接导入)
impdp gwm/gwm@fgisdb schemas=gwm dumpfile =expdp_test.dmp logfile=expdp_test.log directory=dir_dp job_name=my_job

3
、不通过expdp的步骤生成dmp文件而直接导入的方法:
--
从源数据库中向目标数据库导入表p_street_area
impdp gwm/gwm directory=dir_dp NETWORK_LINK=igisdb tables=p_street_area logfile=p_street_area.log  job_name=my_job
igisdb
是目的数据库与源数据的链接名,dir_dp是目的数据库上的目录


4
、更换表空间
  
采用remap_tablespace参数 
  --
导出gwm用户下的所有数据

expdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp SCHEMAS=gwm
注:如果是用sys用户导出的用户数据,包括用户创建、授权部分,用自身用户导出则不含这些内容
--
以下是将gwm用户下的数据全部导入到表空间gcomm(原来为gmapdata表空间下)下
impdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp remap_tablespace=gmapdata:gcomm



你可能感兴趣的:(oracle)