1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

本文将介绍Oracle跨平台迁移,比如从Oracle跨平台迁移到其他类型的数据库,但是保留原有结构。这样也能减轻DBA的很多工作负担。希望本文能帮助大家更好的理解Oracle跨平台迁移。

1、在原库中导出相关信息:

expdpsystem/sywg1234directory=testdumpfile=test.dumplogfile=test.log 
schemas=SYWG,GAZX,WEBCALL,HQ,SJCK,SJPZCONTENT=METADATA_ONLY

2、去原库的表空间信息:

去TOAD导出表空间信息,后编辑导出脚本,将系统相关的信息删除;将目录及文件大小按实际需要更改.

3、到目的库中操作:

将原库中导出的dump文件,CP到目的库中一个目录下;

创建导入目录;

impdpsystem/sywg1234directory=testdumpfile=test.dumplogfile=test_imp.log 
CONTENT=METADATA_ONLYexclude=statistc

注:

此时有一个很大的问题,就是即使导入的是表结构,无数据,但还是占用大量的表空间,这确实是一个比较大的问题

4、到目的库导入后,分析所有表:

–生成统计信息分析脚本:

select'analyzetable'||owner||'.'||table_name||'computestatistics;'fromall_tables 
whereOWNERin('GAZX','SJCK','SJPZ','SYWG','HQ','WEBCALL')

—执行上面生成的脚本,以进行统计信息的更新

5、压缩空表占用的大量表空间:

—查看表的占用空间情况,

SELECTOWNER,segment_name,SEGMENT_TYPE,BYTES/1024/1024FROMDBA_SEGMENTS 
WHEREOWNER='GAZX'
ORDERBY4DESC

—确认表中是否有数据

SELECT*FROMGAZX.GSGG

—查看表是否允许row_movement

selecta.row_movement,a.*fromall_tablesa
wherea.owner='GAZX'ANDa.TABLE_NAME='GSGG'

—若不允许,则开启row_movement

altertableGAZX.GSGGenablerowmovement;

生成批量处理的脚本:

SELECT'ALTERTABLEGAZX.'||SEGMENT_NAME||'enablerowmovement;'
FROMDBA_SEGMENTS 
WHEREOWNER='GAZX'ANDSEGMENT_TYPE='TABLE'

—-压缩表占用的空间

ALTERTABLEGAZX.GSGGSHRINKSPACECASCADE;

生成批量处理的脚本:

SELECT'ALTERTABLEGAZX.'||SEGMENT_NAME||'SHRINKSPACECASCADE;'
FROMDBA_SEGMENTS 
WHEREOWNER='GAZX'ANDSEGMENT_TYPE='TABLE'

—-压缩表完毕后,压缩数据文件

6、原库和目的库的校对:

导入后校对:

—核对表的数量

selectOWNER,COUNT(TABLE_NAME)fromall_tables 
whereOWNERin('GAZX','SJCK','SJPZ','SYWG','HQ','WEBCALL') 
GROUPBYOWNER

—核对索引的数量

SELECTOWNER,COUNT(TABLE_NAME)FROMALL_INDEXES 
whereOWNERin('GAZX','SJCK','SJPZ','SYWG','HQ','WEBCALL') 
GROUPBYOWNER

本文来源:1818IP

本文地址:https://www.1818ip.com/post/12004.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。