>  기사  >  데이터 베이스  >  Oracle 11g 表+数据 完美迁移 到 10g 解决方案

Oracle 11g 表+数据 完美迁移 到 10g 解决方案

WBOY
WBOY원래의
2016-06-07 17:27:26975검색

Oracle 11g 表+数据 完美迁移 到 10g 解决方案

1. 利用imp/exp 可将10g(表+数据) 完美迁移 到 11g,地球人都知道。
 
2,11g (表+数据) 完美迁移 到 10g , 如下解决方案:
 
一、在11g服务器上,使用expdp命令备份数据
 EXPDP USERID='szairpay/szairpay@orcl' schemas=szairpay directory=DATA_PUMP_DIR dumpfile=sz11g.dmp logfile=sz11g.log version=10.2.0.3.0'

szairpay/szairpay@orcl   
账号/密码@数据库实例
 
schemas=szairpay    可省略
 
directory=data_pump_dir  放生成文件的目录,一般会生成到admin\orcl\dpdump
 
dumpfile=sz11g.dmp 生成的文件名
 
logfile=sz11g.log日志啊,
 
version=10.2.0.3.0                      对应要放的10g的Oracle版本
 
以上参数右边的值都可以按实际情况改

二、在10g服务器上,使用impdp命令恢复数据
 
  步骤:1.建库2.建表空间3.建用户并授权4.将dag.dmp拷贝到10g的dpdump目录下5.impdp导入数据库
 1、建库:是在database configuration assistant 中直接新建一个数据库(实例)。
 2、建表空间:create tablespace szairpay datafile 'D:\oracle\product\10.2.0\oradata\orcl\szairpay .dbf' size 400m autoextend on next 20m online;  注意,此表空间名要与11g中的表空间一致
 3、建用户:
 create uszairpay oa identified by szairpay;  注意,此用户名要与11g中的用户名一致
 授权:
 Alter user szairpay default tablespace szairpay quota unlimited on szairpay;  //OA自己改,一看就懂了
 grant create session to szairpay;
 grant connect to szairpay;
 grant connect, resource, dba to szairpay;
 grant create table to szairpay;
 grant create view to szairpay;
 grant create trigger to szairpay;
 grant select any table to szairpay;
 grant create sequence to szairpay;
 grant create procedure to szairpay;
 grant create role to szairpay;
 grant create type to szairpay;
 grant GRANT ANY PRIVILEGE to szairpay;
 

4、导入:首先测试机中10g装在了D:/根目录下,于是将sz11g.dmp文件copy到了E:\SETUP\Oracle10g\zhumulu\admin\orcl\udump目录下。
 创建目录命令如下:
 sqlplus sys/sys@daggis
 sql>create directory dump_dir as 'E:\SETUP\Oracle10g\zhumulu\admin\orcl\udump';
  5、导入数据
 
IMPDP USERID='szairpay/szairpay@orcl as sysdba' schemas=szairpay  directory=DATA_PUMP_DIR dumpfile=sz11g.dmp logfile=sz11g.log version=10.2.0.3.0
 
到这里为止,所有的操作都完成了,终于看到了久违的消息:操作完成!
 

      最后有一个命令查看原对象用户总数,,大家可以根据需要进行验证,在导出数据库的机器运行一次,在导入数据库后的机器运行一次,看看结果是否一样:
  sql>select count(*) from dba_objects where owner in ('wangou','sup','qishun');
 呵呵,上面就是我操作的全部过程,如果大家有更好的办法完成,请记得共享哦!大家互相学习,一起进步!

linux

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.