解决oracle高版本的向低版本拷贝数据的方法

本文详细介绍了如何将本地的Oracle数据库11g版本的数据迁移到Linux下的Oracle数据库10g版本的过程,包括导出数据、创建新表空间、用户及权限设置,以及在Linux上导入数据的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在搞把自己本地oracle数据库11g(11.2.0.1.0 )拷贝到Linux下的oracle数据库10g(10.2.0.1.0)

之前也有搞过这样的拷贝,当时可能是两个机器的数据库版本一致,所以没有遇到这次这么麻烦。所以今天记录下自己的解决办法,为以后还遇到这种问题就能迎刃而解了。

第一步:在本地使用EXPDP命令把数据导出成dmp文件,并指定导出的版本号为10.2.0.1.0

打开电脑本地cmd命令窗口,以sysdba进入到sqlplus.

1、创建目录:create directory cmpdir as 'd:\cmp\dump';

2、查看管理员目录:select * from dba_directories;看是否创建成功(注意:d:\cmp\dump目录不会自动在你的系统创建,需要自己手动去创建该目录

3、给数据库cmp用户赋予在指定目录的操作权限

grant read,write on directory cmpdir to cmp;

4、导出数据,指定version

EXPDP USERID='cmp/cmp@orcl as sysdba' schemas=cmp directory=cmpdir dumpfile=cmp.dmp  logfile=test.log version=10.2.0.1.0

执行完成功之后就在你新建的d:\cmp\dump目录下看到cmp.dmp文件

第二步:到Linux下新建一个表空间、用户、给用户赋权限。

登录Linux系统,如果当前用户为root使用命令 su - oracle切换到oracle用户,使用命令sqlplus /nolog,进入sqlplus,再输入conn /as sysdba 以adb进行登录。

1、接下来新建一个表空间、用户、给用户赋权限。

sql如下:

创建表空间:CREATE TABLESPACE cmp DATAFILE '/bidata/oradata/cmp.dbf' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

创建用户并指定默认表空间:
CREATE USER cmp IDENTIFIED BY cmp DEFAULT TABLESPACE cmp;

给用户赋权:

grant connect,resource to cmp ;
grant unlimited tablespace to cmp ;
grant create database link to cmp ;
grant select any sequence,create materialized view to cmp ;
grant unlimited tablespace to cmp ;//授予不限制的表空间 
grant select any table to cmp ;//授予查询任何表 

grant create session to cmp ;


2、退出sqlplus,把本地的cmp.dmp文件通过rz命令上传到服务器上的目录(我的是/u01/oracle/temp/marketdmp/temp)

然和上面的一样创建目录create or replace directory  cmpdir as  '/u01/oracle/temp/marketdmp/temp' ;

赋目录操作权限:grant read,write on directory cmpdir to cmp;

给cmp用户赋权:grant dba to cmp;

导入dmp:impdp cmp/cmp DIRECTORY=cmpdir DUMPFILE=cmp.dmp SCHEMAS=cmp  version=10.2.0.1.0;

注意:创建目录是“/”不要写反了"\",和要给给cmp用户赋为dba权限,不然会报

ORA-39002: invalid operation
ORA-39070: Unable to open the log file.

ORA-29283:invalid file operation

ORA-06512:at "SYS.UIL_FILE",line 536






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值