原库版本:Oracle 10.2.0.5.0
目标库版本:Oracle 11.2.0.4.0
使用expdp导出原库数据:
expdp yanzheng/Yanzheng206 dumpfile=20190527yanzheng.dmp directory=backup schemas=yanzheng
impdp前准备:
1:确保目标数据库和原库字符集一致
2:创建好所需表空间,可以在原库里查询yanzheng这个用户使用了哪些表空间查询语句如下:
select distinct tablespace_name from dba_segments where owner='YANZHENG';
SQL> select distinct tablespace_name from dba_segments where owner='YANZHENG';
TABLESPACE_NAME
------------------------------
EIMS_TRAINNING
USERS
EIMS_201504
EIMS
EIMS_TEST
然后创建好表空间,临时表空间就不需要创建了
SYS@orcl> select name from v$datafile;
NAME
------------------------------------------------------------------------------------------------------------------------
/u01/oracle/oradata/orcl/system01.dbf
/u01/oracle/oradata/orcl/sysaux01.dbf
/u01/oracle/oradata/orcl/undotbs01.dbf
/u01/oracle/oradata/orcl/users01.dbf
SYS@orcl> create tablespace EIMS_TRAINNING datafile '/u01/oracle/oradata/orcl/EIMS_TRAINNING1.dbf' size 31G autoextend on next 100M maxsize unlimited autoallocate;
Tablespace created.
SYS@orcl> select name from v$datafile;
NAME
------------------------------------------------------------------------------------------------------------------------
/u01/oracle/oradata/orcl/system01.dbf
/u01/oracle/oradata/orcl/sysaux01.dbf
/u01/oracle/oradata/orcl/undotbs01.dbf
/u01/oracle/oradata/orcl/users01.dbf
/u01/oracle/oradata/orcl/EIMS_TRAINNING1.dbf
SYS@orcl> create tablespace EIMS_201504 datafile '/u01/oracle/oradata/orcl/EIMS_201504.dbf' size 10G autoextend on next 100M maxsize unlimited autoallocate;
Tablespace created.
SYS@orcl> create tablespace EIMS datafile '/u01/oracle/oradata/orcl/EIMS01.dbf' size 20G autoextend on next 100M maxsize unlimited autoallocate;
Tablespace created.
SYS@orcl> create tablespace EIMS_TEST datafile '/u01/oracle/oradata/orcl/EIMS_TEST01.dbf' size 8000M autoextend on next 100M maxsize unlimited autoallocate;
Tablespace created.
3:表空间创建好之后,就需要创建用户了,并需要给用户授权,权限和原库用户的权限保持一致
创建用户:
SYS@orcl> create user yanzheng identified by Yanzheng206 default tablespace EIMS quota unlimited on EIMS_TEST quota unlimited on EIMS_201504 quota unlimited on EIMS_TRAINNING quota unlimited on users;
User created.
查询原库用户的权限:
SQL> select * from dba_sys_privs where grantee='YANZHENG';
GRANTEE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
YANZHENG EXECUTE ANY PROCEDURE NO
YANZHENG ALTER ANY PROCEDURE NO
YANZHENG CREATE ANY PROCEDURE NO
YANZHENG DROP PUBLIC DATABASE LINK NO
YANZHENG DEBUG ANY PROCEDURE NO
YANZHENG CREATE PUBLIC DATABASE LINK NO
YANZHENG SELECT ANY TABLE NO
YANZHENG UNLIMITED TABLESPACE NO
8 rows selected.
然后给用户授权:
SYS@orcl> grant CREATE VIEW,CREATE SEQUENCE,UNLIMITED TABLESPACE,SELECT ANY DICTIONARY,CREATE PROCEDURE,CREATE TABLE,CREATE TRIGGER,CREATE MATERIALIZED VIEW,CREATE SESSION to yanzheng;
Grant succeeded.
4:创建directory,并给用户授予读写权限:
create or replace directory EXPDP_DIR as '/dwzc';
grant write,read on directory EXPDP_DIR to yanzheng;
前面的4个点做好之后就开始导入数据了:
将上面导出的文件拷贝到 dwzc的这个目录里然后开始导入
impdp system/oracle dumpfile=20190527yanzheng.dmp directory=expdp_dir schemas=yanzheng table_exists_action=replace job_name=my_job6;
导入的时候会提示一个ORA-31684: Object type USER:"XXX" already exists.这个没关系.然后看日志有无其他报错,如果没有就成功了。




