oracle高版本迁移数据到低版本(12c至11g)方法

1.12c版本信息:

2.11g版本信息:

3.查看12c的字符集编码:

select userenv('language') from dual;

要迁移的两个数据库字符集编码要保持一致。如果不一致请手工修改,修改方法另行百度。

4.查看11g数据库字符集编码:

5.查看12c数据库,要导出用户所使用表空间(本案例用户:lopyczl):

select tablespace_name from dba_segments where owner=upper('lopyczl') group by tablespace_name;

6.创建directory dumpdir(如果已有忽略,d:\dumpdir实际文件目录一定要存在)

create directory dumpdir as 'd:\dumpdir';

7.导出12c数据库的lopyczl用户数据:

命令:expdp directory=dumpdir dumpfile=lopyczl.dmp logfile=lopyczl.log schemas=lopyczl version=11.2.0.1.0

注释:version参数即11g的版本号,等待执行完毕会生成lopyczl.dmp文件,后续用该文件导入到11g数据库中;日志文件lopyczl.log记录导出情况。导出结束,查看日志:

可见导出成功。

8.到11g数据库主机进行数据还原操作

(1)检查字符集编码

(2)创建用户lopyczl,并且创建表空间SDT,表空间大小要大于用户数据

(3)创建directory dumpdir,尽量跟12c的路径一致

(4)执行导入:

impdp directory=dumpdir dumpfile=lopyczl.dmp logfile=lopyczl.log

查看日志: