暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 10g 到11g的数据迁移 导入导出 顺序步骤 expdp/impdp

Oracle这些年 2021-04-28
1601

原库版本: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.这个没关系.然后看日志有无其他报错,如果没有就成功了。


文章转载自Oracle这些年,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论