迁移式升级的测试(二)

在之前写的一篇博文中,自己是打算对一台数据库使用Data Guard+TTS的方式来完成数据迁移和升级的工作,整体的思路如下。


备库Failover之后,导出元数据,然后同一台服务器上的11g的数据库中导入元数据,这样就避免了传输文件的时间消耗。从而达到快速迁移升级的目的。
具体的操作步骤如下所示:
1.在备库端需要开启闪回
这个也是为了能够在迁移失败的情况下,能够迅速回退,马上重构主备库的环境。
2.在开启闪回数据库之后,记录一下SCN的信息,留作后面备用。
   select current_scn from v$database;
       CURRENT_SCN
------------------
      228967862801
3.开始备库切换
在备库端进行Failover的操作。整个过程分分钟即可完成。这个过程需要保证主库端的数据能够及时更新过来。
    alter database recover managed standby database finish force;
    alter database commit to switchover to primary;
 select database_role,open_mode from v$database;
4.在开始迁移前,做一个完整的检查,这是迁移的重中之重,如果迁移的表空间很多,可以直接放到脚本里面来统一处理也可以。
exec dbms_tts.transport_set_check(TS_LIST=>'STORELOG_DATA,STORELOG_INDX,USERS,GHOSTOL_DATA,GHOSTOL_INDEX,TEST_DATA,TEST_INDEX,PERFSTAT,TS_AUDIT,STAT_POINT,TEST_MV_DATA,TEST_MV_INDEX,TEST_AUDIT_DATA,JYCX_DATA,OEM_DATA,TEST_INDEX2,TEST_INDEX3,SWDONLINE_DATA,SWDONLINE_INDX,OEM_MON_TEST,USERCENTER_DATA',INCL_CONSTRAINTS=>TRUE,full_check=>true);
查看检查的结果:
select *from transport_set_violations;
------------------------------------------------------------------------------------------------------------------------ Sys owned object  SYS_LOB0000133356C00040$$ in tablespace TS_AUDIT not allowed in pluggable set
可以看到这个例子中还是违反自包含约束的情况,从日志能够看出,主要是和aud$的处理相关。
经过确认,MARKET_ANGEL_USEDUP是个索引,但是属主存在问题,可以在迁移的时候直接重建。
sys@TEST> drop index MARKET_ANGEL_USEDUP;
Index dropped.
sys@TEST> create index TEST.MARKET_ANGEL_USEDUP on TEST.MARKET_ANGEL("USED_UP") tablespace TEST_index;
Index created.
另外的几个表 TEST_WEAPON,TMP_CNINFO_XTG_20081212,AUD$_20120608是临时表,可以直接删除。
drop table TEST_WEAPON;
drop table TMP_CNINFO_XTG_20081212;
drop table AUD$_20120608;
最后的注意力就到了aud$,可以看到这个表是在之前因为考虑到数据量较大,直接迁移到一个独立的表空间了,在这个例子中为了保证迁移的顺利,可以先把aud$迁移到sysaux里面,迁移完成之后再处理即可。数据量不大的情况下直接move tablespace即可,如果里面的数据可以删除,直接truncate即可。
truncate table aud$;
alter table aud$ move tablespace sysaux;
这个时候查看检查信息,还是存在下面的一些提示信息。

这个时候可以查看LOB的具体信息,发现是AUD$里面的一个LOB列,单独迁移即可。
SQL> select table_name,column_name,tablespace_name,index_name from user_lobs where index_name='SYS_IL0000011218C00041$$'

SQL>alter table aud$ move tablespace sysaux lob(SQLTEXT) store as lobsegment(tablespace sysaux);
另外一个LOB也是同样的处理。
SQL> alter table aud$ move tablespace sysaux lob(SQLBIND) store as lobsegment2(tablespace sysaux);
对于其他的对象,如果不是LOB列,那很可能就是回收站里的对象了,直接删除即可。
sys@TEST> select table_name,column_name,tablespace_name,index_name from user_lobs where segment_name='SYS_LOB0000133356C00041$$';

sys@TEST> show recyclebin

SQL>purge recyclebin;
 
对于aud$上面的索引可以直接rebuild即可达到效果。
alter index I_AUD2 rebuild tablespace sysaux;
再次检查阿九没有任何问题了。
PL/SQL procedure successfully completed.
no rows selected
5.接下来的工作就是把表空间置为READ ONLY状态。
alter tablespace USERS read only;
alter tablespace TS_AUDIT read only;
alter tablespace GHOSTOL_DATA read only;
alter tablespace GHOSTOL_INDEX read only;
alter tablespace TEST_DATA read only;
alter tablespace TEST_INDEX read only;

6.导出10g数据库的元数据信息,标注为迁移表空间的方式。
exp \'sys/oracle as sysdba\' file=exp_tts_TEST.dmp transport_tablespace= y tablespaces=USERS,GHOSTOL_DATA,GHOSTOL_INDEX,TEST_DATA,TEST_INDEX,PERFSTAT,STAT_POINT,TEST_MV_DATA,TEST_MV_INDEX,TEST_AUDIT_DATA,JYCX_DATA,OEM_DATA,TEST_INDEX2,TEST_INDEX3,SWDONLINE_DATA,SWDONLINE_INDX,STORELOG_DATA,STORELOG_INDX,OEM_MON_TEST,USERCENTER_DATA log=exp_tts_TEST.log

7.在11g的新库中可以尝试建立相应的用户,这里有几个地方需要注意。
理论上可以通过impdp来完成用户信息的导入,但是这个步骤建议还是手工处理,从10g的库上导出用户的DDL语句,简单修改。
原因在于默认表空间在新库上存在,如果存在PROFILE的资源设置,很可能导入失败。可以批量生成语句,简单修改即可。
   CREATE USER "TEST" IDENTIFIED BY VALUES '5F712A8369686639'
      DEFAULT TABLESPACE "TEST_DATA"
      TEMPORARY TABLESPACE "TEMP"
      PROFILE "PF_TEST" ;

后续来继续解读这个迁移的过程。整个过程会是一个完整的演练过程,碰到的问题越多,解决的越多。迁移的时候越顺利。

时间: 2024-10-15 11:09:13

迁移式升级的测试(二)的相关文章

迁移式升级的测试

之前写了一篇文章分析了目前存在的一个问题和改进思路. 当前的硬件环境是Solaris,Oracle 10gR2 单实例,数据量在800G左右.想迁移到另外一台服务器上.大体的需求如下:     1.借助这次维护的时机,能够把数据库升级至11g     2.升级的过程需要尽可能保留一个较短的时间窗口,计划在2个小时以内完成     3.有较好的解决方案去演练整个过程,多次总结,提高迁移的效率,保证质量     4.有完善的回退计划,能够支持回退场景下业务平滑过渡     5.目前对于跨平台没有明确

迁移式升级的测试(三)

还是继续昨天的任务,今天会把剩下的工作都做完,给个交代. 昨天完成了Data Guard切换,然后Failover备库,导出了元数据信息作为TTS的准备,亮点就在于导入的部分.无需挪动数据文件,这是补充数据字典信息即可. 这个工作的一个重点内容就是如何保证数据字典信息的完整性. 在目标环境11g中需要创建相应的用户,这一点还是很有技巧的.如果采用impdp的形式直接导入用户,这样不妥,因为我们有设置profile,有临时表空间,默认表空间的信息. 比如下面的用户创建语句:    CREATE U

一种迁移式升级的方案考虑

目前遇到了一个问题,目前的是一主两备的环境,但是主库,备库中的存储空间都不足.而且硬件环境相对要老旧一些.想扩容难,系统版本老旧想升级也难. 数据库是基于10gR2,有异地灾备.但是因为10gR2的dataguard没有灾备的感觉,其实感觉和一个主库没有什么明显的差别.而且一旦发生问题,切换以后,硬件的限制瓶颈还是解决不了,所以化被动为主动,可以提前预警,提前规划和考虑. 现在是一主两备,但是备库目前的情况不容乐观,所以需要扩容一下,升级操作系统版本,目前为6U5,重新规划磁盘分区,在新分区中采

测试环境的迁移式升级和数据整合

很多时候,大家工作中都会有一种被动的思维,那就是能不动就不动,从求稳的角度来看无可厚非,但是从风险的角度来说,还是有待商榷的.如果存在风险,还保持原样很可能就是一个不定时炸弹. 这不手头有一套环境,按照以前的标准是根本入不了我的法眼的,但是因为是测试环境,小问题比较多,存在容灾风险,但是这么多年一直这样,也就默然接受了. 这套环境硬件配置很低,基本上和我的笔记本配置差不多,可能还略差一些,在上面跑着3个数据库实例,其中一个是11g的,2个是10g的.两个10g的数据库实例数据量都不大,几十G而已

迁移式升级的一点思考

目前有一个很实际的需求,因为硬件老化严重,需要能够借助一次维护时机把数据库迁移到一台较好配置的机器上,避免潜在的硬件故障导致的业务停顿,也算防患于未然吧. 本来这个事情不是很紧急,但是因为硬件故障导致的问题防不胜防,踩过几次坑,就会有些经验教训,在这种情况下维持现状就是一个潜在的炸弹. 当前的硬件环境是Solaris,Oracle 10gR2 单实例,数据量在800G左右.我大体想了下,主要的目标有以下几个.     1.借助这次维护的时机,能够把数据库升级至11g     2.升级的过程需要尽

从Unix到Linux的迁移部署:移植、升级和测试

从Unix迁移到Linux,在最初阶段,应该建立一个沙盘环境用于测试.也许您的整个团队都没有Linux方面的经验,有这样一个沙盘环境能帮上大忙(无需担心任何风险). 有关代码和编译的问题.你正在使用JAVA还是C?是否有第三方应用需要迁移?这些第三方软件能移植到Linux上吗? 假设您正在使用C语言.假设您将会在Linux上编译代码.如果使用GNU(gcc)编译器,因为这是工业标准,而且这是Linux自己的编译器.那么所有在其它平台上编译过的应用程序都需要重新编译. 对于编译,有两种方法供您使用

推荐15款响应式Web设计测试工具

响应式网页设计也称作自适应网页设计(通常缩写为RWD),该设计可使网站在多种浏览设备(从桌面计算机显示器到移动电话或其他移动产品设备)上阅读和导航,同时减少缩放.平移和滚动.换句话说,响应式网站能够自动响应终端用户行为.当市场上有新设备推出时,网站就无需再花时间去设计和开发了. 响应式旨在为各个网站在不同的设备上提供最佳的视觉体验,那么如何才能知道网站是否能够根据设备进行自动调整呢?这就得设计人员对网站的响应能力进行测试.本文就为大家介绍15款最佳的响应式网站测试工具,它们能帮助你检查网站的设计

从Sybase 12.x/15.x迁移到DB2的测试战略

本文将介绍在从 Sybase ASE 12.x/15.x 迁移到 DB2® 9.7.x/DB2 10.1.x 后需要遵循的http://www.aliyun.com/zixun/aggregation/8775.html">测试流程和方法.我们介绍的流程使您能够通过各种验证和确认流程执行成功的测试. 范围 验证范围 验证所有来源数据库 (Sybase) 对象是否已迁移到目标数据库 (DB2). 确认目标数据库的所有已迁移版本,确保 它们在结构和功能上与来源数据库等效. 假设 所有迁移前检查

SharePoint 2013 列表关于大数据的测试<二>

1.给测试列表添加查阅项字段,100个,代码如下: 2.插入测试数据的方法,注意查阅项字段的格式,代码如下: 3.插入10w条数据,时间花费如下(不建议List[LISTNAME].Items.Add,会比较慢): 4.查看列表设置,数据有10w条,阙值设置500w,如下图: 5.进入AllItems页面,发现查阅项字段数大于限制(8个),如下图: 6.修改查阅项限制数目(修改为500),如下图: 7.数据量10w,查阅项字段100个时的测试数据,如下表格: 表一:分页30,LookUp字段50