ASE 15迁移计划建议和技巧
2010-08-15赛贝斯软件有限公司
Sybase Adaptive Server Enterprise(ASE) 12.5的生命周期已结束,是时候来规划升级数据库了。如果在2009年底向Sybase技术支持电话咨询ASE 12.5.x的问题,您肯定会得到将ASE升级到最新版本的忠告。毋庸置疑,尽快升级到ASE 15的理由是非常充足的(重写的优化器、语义分区等,在其它文章中会介绍更多新技术特性)。在本文中,我们将谈论如何从12.5.x这个旧版本升级到ASE 15。
对此我们有两个建议:计划一切和测试一切。幸运的是,这两个建议可以细化为一些易于操作的步骤。制订的计划要成功的通过测试验证,才能保障顺利升级。但是,究竟要计划些什么?这个计划清单应包括以下内容:
(1)标识出需要升级的环境中所有软件组件,这其中可能包括最初并没有纳入清单中的某些组件(比如操作系统)。
(2)为当前配置下的源环境和目标环境制作文档(包括内存需求、存贮需求等等)。
(3)标识出所有可能被影响的应用组件。
(4)验证ASE 15的新特性,决定哪些特性是需要立即利用的。
(5)决定升级方法。
(6)设计并测试实施计划。
我们将从计划和“成果”(gotchoa)两个方面来讨论所有这些任务。首先,在着手之前,您最好查看Sybase提供的移植前检查清单:http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc34982_1500/html/mig_gde/CIHBGFGI.htm。
1 标识软件组件
如今,很少再有以前那种“所有人都通过PowerBuilder程序访问生产环境上的数据库”简单应用了。现代系统可能包括以下这些应用:
(1)使用PowerBuilder、Access、C、Visual Basic、Java或其它前端应用。
(2)J2EE、.Net或其它中间层。
(3)任何ETL处理。
(4)任何财务、调度或其它集成第3方应用。
(5)各种方式的多服务器互联。
以上种种,请充分发挥您的想象力。应确保服务器上所有的组件都被标识,并且列出清单、制作相关文档。另外,应确保open client、ODBC等等的版本也被标识。请确认你手上拥有要涉及到的所有操作系统环境下的ct-lib驱动程序,以便马上着手升级和测试。
这里建议,如果存在第3方的应用,请确认它们是已通过 ASE-15认证的。在ASE 15的升级之前或升级过程中,有些应用可能需要升级版本。另外,计划中应确保所有的客户端库文件升级至ASE15。请注意,当完成上面的软件组件标识后,方可进入“检查清单”(checklist)模式。
2 为源环境和目标环境制作文档
检查清单,标识出所有源环境(当前所使用的ASE15之前的版本)和目标环境(ASE15)。软件升级通常也会导致硬件升级,请特别要注意备份配置文件(UNIX环境下,位于$SYBASE目录),或运行sp_configure 或 sp_cacheconfig。
人们可能会希望第1次测试就能一次性地完成所有验证,这样一旦成功,就无须再做隔离测试。另一方面,如果要切换到一个全新的环境,那么在切换后再来定位问题就不是那么容易了。曾经有位客户改变整个运行环境:从一台独立的Unix主机迁移到使用3层缓存的共享机器上。操作系统报告系统存在IO瓶颈,但是硬件厂商认为那是不可能的,因为他们认为迁移后所使用的多级虚拟缓存有助于降低IO问题。
有鉴于此,此处给出一些建议,那就是标识并制作文档。一是源环境,包括ASE版本、OS版本、服务器硬件、SAN环境及相关的固件版本;另一个是目标环境与源环境的兼容性。从32位迁移到64位?从AIX迁移到Linux?我们需要验证所有这些环境及其兼容性,这可能最终会影响迁移方法。
如果你对目标环境的兼容性存在任何疑问(即文档未作说明),请致电Sybase咨询是否存在兼容性问题(这有可能会促使你做额外的测试工作)。如果不存在兼容性问题,您需要的可能仅仅是让硬件运行一两个月,验证其是否可靠。
3 浏览ASE 15的新特性
请确认您已准备好最新的ESD(Software Distribution Level)软件包。您可在http://downloads.sybase.com/swd/base.do?client=support上找到该软件包。您可以快速地浏览一下希望使用的ASE 15的新特性。由于此前已经有大量的文章介绍ASE 15的新特性,在此就不再赘述。但是,您应在自已的运行环境中测试并最终使用这些选项。这些选项包括但不仅限于语义分区、Direct IO以及全新的优化目标等等。
4 决定升级方法
由于诸多因素的不同,升级方法也会有所不同,包括是否需要同时进行平台的升级(许多客户升级硬件,或迁移到另一种操作系统),以及所能容许的停机时间。此处,停机时间的定义是指执行数据迁移、验证数据的完整性和ASE完全正常工作所需要的时间。
选择何种迁移方法主要取决于ASE能停用多久。如果只能容忍5分钟,甚至更少的时间,那么只能选择在升级主点ASE数据库时,使用复制服务器自动切换到热备节点;如果能容忍5个小时左右的停机时间,那么问题的关键就在于有多少数据需要移植到目标ASE上;如果能容忍超过5小时的停机时间,那么就有更多选择。
ASE 15的升级方法通常可以分为两类:就地升级;或创建ASE新实例,然后使用各种物化处理来移植所有对象和数据。如果分别对用户数据库进行升级(通过物化处理),那么可以选择任何一种ASE迁移方法。复制的方法仅用于创建新的ASE数据库或分别升级用户数据库。
4.1 就地升级
这种方法需要使用升级工具就地升级服务器。从升级所需的时间来说,它仅次于Replication Server方案。略嫌不足的是升级过程需要不少手工步骤。
4.2 其它升级
如果不能选择就地升级,那么你只能将用户数据库的升级过程和ASE升级过程剥离开,并选择下面一种或几种具体升级处理。
4.2.1 物理数据迁移
继就地升级之后,最快的方法就是物理数据迁移。然而,如果数据库较大(>1TB),或者希望通过迁移能压缩数据库的大小,就需要使用逻辑数据迁移技术。
4.2.2 转储和装载数据库
这是一种快照方法:创建ASE15数据库,然后使用ASE的备份和恢复机制装载以前版本的ASE备份。使用这种技术存在一些限制。即便是ASE 15大大地减少了这些限制,也无法保证所有以前版本的ASE转储文件都能被其它平台上的ASE数据库装载。
如果选择此方法,请首先检查在新旧平台之间转储/装载的约束条件。另外,虽然此方法简单易行,但要检查转储设备是否有足够的空间,而且如果不能共享驱动器,请确保为FTP(或复制)留出足够空间的余量。
4.2.3 使用Quiesce/Mount进行数据传输
这也是一种快照方法,只能用于ASE 12.5.1或更高版本。它与转储/装载有些许类似,但是速度更快。使用此方法的先决条件是磁盘子系统必须支持。
4.2.4 逻辑数据传输
以下情况,需要使用逻辑数据传输:改变数据库的大小;压缩数据库设备;升级超大数据库;变更平台(不支持平台间转储/装载的情况下)。
4.2.5 BCP 数据输出和输入
采用抽取数据库的模式,然后在ASE的新实例中重新创建。尽管可以利用PowerDesigner,但是此方法仍然需要大量的手工操作。处理迁移后的外键和索引也需要大量的工作。如果表中的text或varchar列含有换行符和回车符等,就很有可能要求额外的测试工作。
4.2.6 复制服务器(Replication Server)
如果只能容忍停机5分钟甚至更少的时间,那么只能选择使用复制服务器。将数据从ASE 12.5源系统复制到ASE 15目标系统。在主点ASE数据库升级过程中,自动切换到热备节点。一旦主点完成升级,再切换回主点(如果需要的话)。
使用复制服务器得到的好处是执行前滚和回滚(如果需要的话)只需短暂的停机时间。需要注意的是,在迁移计划中往往忽略了回滚。只要条件允许,应尽可能使用一台空闲的服务器,而不是利用灾备服务器。这样可以避免迁移过程中发生紧急容灾切换这样的小概率事件。
复制服务器可以与所列的任何一种方法配合使用。如果计划使用转储/装载过程,就可以使用转储日志标记来消除升级过程需要的停机时间。根据停机时间需求,所有其它方法都可以利用复制服务器。复制服务器方法带来的最大好处是能够实现非常快速的回滚,并且如果升级完成后,在新数据库中提交事务时发现问题,只有复制服务器方法能够降级用户数据库。
5 设计并实现测试计划
测试计划应详细罗列每一步迁移过程。另外,在源环境中对每个应用执行回归测试,以确保目标环境下的性能和正确性。要保证足够的测试时间(日程安排应考虑增加一定时间,修正测试过程中发现的问题)。
利用当前应用的性能指标(如果没有,则设定并测量)作为基准,与新的目标环境对比。如果新环境的性能并没有提高,那么某些地方很可能存在问题。
请注意,Sybase WorkSpace Database Developer(许可与ASE绑定)是一个非常有用的工具,在测试过程中可用于装载代码、调试SQL和存储过程等等。你可能会需要密切关注。
6 结束语
环境越简单,迁移到ASE 15的过程可能也越简单。但如今大多数企业的IT环境均较为复杂,升级软件需要检查、验证当前应用,并制作相关文档。在早期版本中运行的一切功能都需要在新环境下测试其正确性和性能。
使用检查清单,确保测试迁移计划和其余内容(功能、性能等)均通过测试(对初级DBA而言,这可是一个宏大工程)。如果着手于迁移到全新的目标环境,千万别忘记服务器级的项目,如配置变更(如果在12.5中,技术支持人员执行了定制化配置/操作,请与他们共同检查这些定制化配置/操作,确保在15中仍然可以使用这些配置/操作),以及包括角色和登录名在内的安全对象。
ASE 15迁移的准备工作是一项重要的任务,但物有所值。