Oracle 10g 到11g的数据迁移 导入导出 顺序步骤 expdp/impdp
2016-02-29 16:31
676 查看
原库版本:Oracle 10.2.0.4.0
目标库版本:Oracle 11.2.0.1.0
使用expdp导出原库数据:
expdp system/xxxxxx schemas=test1201 directory=easbak 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/oracle/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 unlimited on EAS_D_TEST1201_TEMP2;
查询原库用户的权限:
select * from dba_sys_privs where grantee='TEST1201';
然后给用户授权:
grant CREATE VIEW,CREATE SEQUENCE,UNLIMITED TABLESPACE,SELECT ANY DICTIONARY,CREATE PROCEDURE,CREATE TABLE,CREATE TRIGGER,CREATE MATERIALIZED VIEW,CREATE SESSION to test1201;
4:创建directory,并给用户授予读写权限:
create or replace directory orabak as '/u01/app/orabak';
grant write,read on directory orabak to test1201;
前面的4个点做好之后就开始导入数据了:
将上面导出的文件拷贝到 orabak的这个目录里然后开始导入
impdp system/xxxxxx schemas=test1201 dumpfile=test1201.dmp logfile=expdp_test11.log directory=orabak table_exists_action=replace job_name=my_job6;
导入的时候会提示一个ORA-31684: Object type USER:"XXX" already exists.这个没关系.然后看日志有无其他报错,如果没有就成功了。
目标库版本:Oracle 11.2.0.1.0
使用expdp导出原库数据:
expdp system/xxxxxx schemas=test1201 directory=easbak 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/oracle/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 unlimited on EAS_D_TEST1201_TEMP2;
查询原库用户的权限:
select * from dba_sys_privs where grantee='TEST1201';
然后给用户授权:
grant CREATE VIEW,CREATE SEQUENCE,UNLIMITED TABLESPACE,SELECT ANY DICTIONARY,CREATE PROCEDURE,CREATE TABLE,CREATE TRIGGER,CREATE MATERIALIZED VIEW,CREATE SESSION to test1201;
4:创建directory,并给用户授予读写权限:
create or replace directory orabak as '/u01/app/orabak';
grant write,read on directory orabak to test1201;
前面的4个点做好之后就开始导入数据了:
将上面导出的文件拷贝到 orabak的这个目录里然后开始导入
impdp system/xxxxxx schemas=test1201 dumpfile=test1201.dmp logfile=expdp_test11.log directory=orabak table_exists_action=replace job_name=my_job6;
导入的时候会提示一个ORA-31684: Object type USER:"XXX" already exists.这个没关系.然后看日志有无其他报错,如果没有就成功了。
相关文章推荐
- Oracle OS备份了解
- linux下oracle自动备份脚本
- 定制正确的oracle备份策略 0级备份
- 细谈 oracle备份的方法
- NEXTVAL 和 CURRVAL 运算符和oracle的sequence设置说明
- -- Oracle 常见故障及日常规划----
- oracle的分析函数over(Partition by...)
- dmp文件导入oracle
- oracle11g间隔分区简单应用
- Oracle主要服务解析
- [oracle] 解决X64操作系统PL/SQL连接报错问题 make sure you have the 32 bits oracle client installed
- Oracle Group by 查询表中某一个字段,其哪个值得记录数最多或最少
- oracle over (partition by )用法
- Centos 6.3 64位安装cx_Oracle
- oracle通过分组函数将各个专业中的人数显示出来了还同时显示这个专业男生的人数,并显示所占专业人数百分比
- 浅谈oracle中row_number() over()分析函数用法
- Oracle 10g 数据的还原和备份
- oracle 检测坏块的方法
- 利用Oracle的row_number() over函数消除重 复的记录
- oracle 多行转一列,一列转多行