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

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

WBOY
WBOYOriginal
2016-06-07 17:27:26929browse

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn