Oracle11g数据库导入Oracle10g数据库操作笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一次Oracle11g数据库导入Oracle10g数据库操作
笔记
11g备份,导入10g的时候会抛错,直接阻止导入。
但是有时候还必须得把11g的数据库导入到10g,我今天就遇到了这种情况。
一开始只是把11g中的表全部备份,成功导入10g。
但是缺少视图、存储过程等。
一个个sql创建累死人,方法太笨。
请教了一下资深DBA,重新备份,重新导入,成功。
现在把我导入操作的全过程记录下来,希望可以方便更多的人!
一、在11g服务器上,使用expdp命令备份数据
EXPDP USERID='SYS/cuc2009@cuc as sysdba'
schemas=sybj directory=DATA_PUMP_DIR
dumpfile=aa.dmp logfile=aa.log version=10.2.0.1.0
其中,红色文字部分是根据需要改写的地方。
例如我的sys密码是cuc2009,数据库sid是cuc,要到出的用户名是sybj,要导入到
10.2.0.1.0版本的Oracle数据库中去。
aa.dmp和aa.log将会在11g的dpdump目录中生成,例如我的11g装在了E盘下面,于是aa.dmp将会在E:/app/Administrator/admin/cuc/dpdump目录下被生成。
二、在10g服务器上,使用impdp命令恢复数据
准备工作:1.建库2.建表空间3.建用户并授权4.将aa.dmp拷贝到10g的dpdump目录下
1-3点可以去参考博主的上一篇博客“Oracle数据库移植全步骤”,介绍的很详细,这里不再多说。
关于第4点,我的10g装在了e:/tools 目录下,于是我将aa.dmp文件拷贝到了
E:/tools/admin/cucf/dpdump目录下。
IMPDP USERID='SYS/cuc2009@cucf as sysdba'
schemas=sybj directory=DATA_PUMP_DIR
dumpfile=aa.dmp logfile=aa.log version=10.2.0.1.0
其中红色部分是根据需要改写的地方。
例如我的sys密码是
cuc2009,数据库sid是cucf,要导入用户名为sybj,要导入到10.2.0.1.0版本的Oracle数据库中去。
aa.log将会在10g的dpdump目录中生成。
每一步都讲过自己亲自操作。
没问题的。
朋友们如果有什么好的办法也可以拿出来共享一下。
开源的氛围中,技术的成长是最快的!
Oracle11g数据库导入Oracle10g数据
库操作笔记
用exp、imp命令时进行11g备份,导入10g的时候会抛错:不是有效的导出文件,头部验证失败;未成功终止导入。
我今天就遇到了这种情况,搭建测试环境时,有一个项目使用的是11g 数据库,而测试机是10g的数据库,按正常的思路走下来,报错:未成功终止导入,赶紧上网搜了一下,原来是版本不同的问题;
下面我把导入操作的全过程记录下来,自己做了一个知识的记录,同时也希望可以方便有需要的朋友!
一、在11g服务器上,使用expdp命令备份数据
EXPDP USERID='SYS/sys@daggis as sysdba' schemas=oa directory=DATA_PUMP_DIR dumpfile=dag.dmp logfile=dag.log version=10.2.0.1.0
(屏幕截图:C:\Documents and Settings\Administrator>expdp
userid='system/sys@gis' schemas
directory=data_pump_dir dumpfile=dag.dmp logfile=dag.log version=10.2.0.1.0)
其中,红色文字部分是根据需要改写的地方。
例如我的sys密码是sys,数据库sid是daggis,要导出的用户名是oa,要导入到10.2.0.1.0版本的Oracle 数据库中去。
aa.dmp和aa.log将会在11g的dpdump目录中生成,例如我的11g装在了D盘下面,于是dag.dmp将会在
D:/app/Administrator/admin/cuc/dpdump目录下被生成。
二、在10g服务器上,使用impdp命令恢复数据
步骤:1.建库2.建表空间3.建用户并授权4.将dag.dmp拷贝到10g的dpdump目录下5.impdp导入数据库
1、建库:是在database configuration assistant 中直接新建一个数据库(实例)。
2、建表空间:create tablespace OA datafile
'D:\oracle\product\10.2.0\oradata\orcl\oa.dbf' size 400m autoextend on next 20m online;
3、建用户:
create user oa identified by oa;
授权:
Alter user OA default tablespace OA quota unlimited on OA; grant create session to oa;
grant connect to oa;
grant connect, resource, dba to oa;
grant create table to oa;
grant create view to oa;
grant create trigger to oa;
grant select any table to oa;
grant create sequence to oa;
grant create procedure to oa;
grant create role to oa;
grant create type to oa;
grant GRANT ANY PRIVILEGE to oa;
4、导入:首先测试机中10g装在了D:/根目录下,于是将dag.dmp文件copy 到了D:\oracle\product\10.2.0\admin\daggis\udump目录下。
在导入之前,还有一个步骤,必须创建目录,然后才能进行导入,不然在导入时会报错:
ORA-39001: 参数值无效
ORA-39000: 转储文件说明错误
ORA-31640: 无法打开要读取的转储文件"D:\p\dag.dmp"
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
创建目录命令如下:
sqlplus sys/sys@daggis
sql>create directory dump_dir as
'C:\oracle\product\10.2.0\admin\daggis\udump';
IMPDP USERID='SYS/sys@daggis as sysdba'
schemas=oa directory=DATA_PUMP_DIR dumpfile=dag.dmp logfile=dag.log version=10.2.0.1.0
(命令截屏:C:\Documents and Settings\Administrator>impdp
userid='sys/sys@daggis as sysdba's
chemas=oa directory=data_pump_dir dumpfile=dag.dmp
logfile=dag.log version=10.2.
0.1.0)
到这里为止,所有的操作都完成了,终于看到了久违的消息:操作完成!
上面的命令行中,红色与蓝色部分是根据需要大家根据实际情况改写的地方。
例如我的sys密码是sys,数据库sid是daggis,要导入用户名为oa,要导入到10.2.0.1.0版本的Oracle数据库中去。
dag.log将会在10g的dpdump 目录中生成。
最后有一个命令查看原对象用户总数,大家可以根据需要进行验证,在导出数据库的机器运行一次,在导入数据库后的机器运行一次,看看结果是否一样:sql>select count(*) from dba_objects where owner in
('wangou','sup','qishun');
呵呵,上面就是我操作的全部过程,如果大家有更好的办法完成,请记得共享哦!大家互相学习,一起进步!。