首先使用expdp导出原数据库:
expdp system/xxxxx schemas=test1201 directory=asbak dumpfile=test1201.dmp logfile=zytest1201.log;
impdp前的准备:
1:确保目标数据库和原库的字符集一致
2:创建好所需表空间,可在原库里查询test1201这个用户使用了哪些一表空间查询语句如下:
select distinct tablespace_name from dba_segments where owner='test1201';
然后创建好表空间,临时表空间就不需要创建了,
create tablespace EAS_D_TEST1201_STANDARD datafile '/u01/app/oradata/orcl/EAS_D_TEST1201_STANDARD.dbf' size 8000m autoextend on next 100m maxsize unlimited autoallocate;
create tablespace EAS_D_TEST1201_TEMP2 datafile '/u01/app/oracle/oradata/orcl/EAS_D_TEST1201_TEMP2.dbf' size 800m
autoextend on next 10m maxsize unlimited autoallocate;
3.表空间创建好之后,就需要创建用户了 ,并需要用户授权,权限和原库用户的权限保持一致
创建用户:create user test1201 identified by kingdee default tablespace EAS_D_TEST1201_STANDARD quota unlimited on
EAS_D_TEST1201_STANDARD quota umlimited on EAS_D_TEST1201_TEMP2;
查询原库用户的权限:select * from dba_sys_privs where gratee='test1201';
然后给用户授权:grant create view,create sequence,unlimited tablespace,select any dictionary,create proceduer,create table,create trigger,create materialized view,create session to test1201;
4.创建directory,并给用户授予读写权限:
create or replace dirctory orabak as '/u01/app/orabak';
grant write,read on directory orabak to test1201;
前面的4个点做好之后就开始导入数据了:
将上面导出的文件拷贝到orabak的这个目录里然后开始导入
impdp system/xxxxx schemas=test1201 dumpfile=test1201.dmp logfile=expdp_test11.log directory=orabak table_exists_action=replace job_name=job5;
导入的时候会提示一个ora_31684:object type user:"xxx" already exists。这个没有关系 ,然后看日志有没有错,如果没有,则成功。