SQL Server 升级 真如想象中那样简单?

日期: 2016-07-21 作者:Rick Heiges翻译:杨宏玉 来源:TechTarget中国 英文

并不是所有的SQL服务器升级都需要复杂的计划和大量的工作。有时,你可以使用一些简单的方法来升级SQL Server,在升级过程中,你并不会因为方法简单而损失什么,而节省下来的时间,你还可以用来进行下一步的计划。然而,如果你想要简化升级过程,你必须知道在什么时候流程简化对你来说安全可靠的,以及何时你必须付出额外的努力,这是至关重要的。 本文的目的是为你提供一个框架,有了它,你就可以较为容易地在数据库升级过程中,确定所需的工作量,以及需要多少资源等。

SQL Server 升级的分类 要确定升级所付出的努力和需要消耗的成本,你有很多因素需要考虑。在本文中,我们将讨论一些最常见的问题。当然,还有其他……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

并不是所有的SQL服务器升级都需要复杂的计划和大量的工作。有时,你可以使用一些简单的方法来升级SQL Server,在升级过程中,你并不会因为方法简单而损失什么,而节省下来的时间,你还可以用来进行下一步的计划。然而,如果你想要简化升级过程,你必须知道在什么时候流程简化对你来说安全可靠的,以及何时你必须付出额外的努力,这是至关重要的。

本文的目的是为你提供一个框架,有了它,你就可以较为容易地在数据库升级过程中,确定所需的工作量,以及需要多少资源等。

SQL Server 升级的分类

要确定升级所付出的努力和需要消耗的成本,你有很多因素需要考虑。在本文中,我们将讨论一些最常见的问题。当然,还有其他有助于判断SQL服务器升级所需付出成本的因素,但本文讨论的因素是最具有代表性。

第三方应用程序。在许多企业中,大多数的数据库是通过独立软件供应商(isv)购买的,他们提供标准流程,以帮助用户将SQL Server升级到最新版本。如果你想升级来自第三方ISV的数据库,遵循供应商规定的升级策略是最好的做法。它能够帮助你预先确定升级需要多大的工作量。

任务关键型应用程序。任务关键型应用程序需要更为健壮的升级计划和更多的测试工作。对于较小的应用程序,付出的工作量应该相应减少,因为升级造成功能受损的风险较低,且恢复所需的工作相对较少,对业务影响也不会很大。这个因素与当前数据库架构是否具有高可用性以及是否具有灾难恢复组件等条件密切相关。如果答案是肯定的,那我们可以预料到,尽可能缩短停机时间是至关重要的。这增加了升级计划的准备时间和升级本身的测试时间。

临时SQL。当应用程序运行在一个数据库上,它生成大量的SQL查询,且这些查询并没有嵌入在存储过程中时,升级所需的工作量将增加。类似微软的内置的Upgrade Advisor之类的工具,将会检查数据库本身的元数据,包括存储过程和其他数据库对象。不仅如此,Upgrade Advisor还有其他作用,因为它可以检查临时SQL语句追踪文件。通常遇到的问题,可以通过捕获和分析特定跟踪文件来解决,这些文件提供了较为广泛的SQL代码覆盖率。

大型数据库。在这种情况下,大的定义是相对主观的。例如,10年前,1 TB的数据库被认为是大型数据库,但在如今这已司空见惯。以gb或tb为单位的数据以及数据库对象的数量会影响升级数据库的时间,如果需要回滚,也会影响回滚完成的时间。

副本。这不会影响所有数据库使用者,但如果在你的数据库环境中有SQL Server副本,副本组件的升级顺序是至关重要的,这与升级过程的持续性同样重要。副本在升级过程中可能会成为系统处理的一个主要因素,以何种顺序完成升级,将会影响你所需要的工作量。

SQL Server 升级 真如想象中那样简单?

图1:用于确定升级过程所需工作量的决策树

升级项目分类

一旦你考虑到各种因素,你可以根据SQL Server升级项目涉及的因素将其进行分类。这里有几种类型的升级项目,以复杂度从高到低排列;它们之间的关系,以及与各种因素之间的联系,如图1所示。

复杂升级。这是一种升级的类型,它需要在计划和执行方面付出了大量的努力。确保尽可能的考虑多种情况,并在升级中不断的测试是至关重要的,为了减少数据库和应用程序升级时的停机时间。这些升级项目往往会给项目人员带来很大压力,它们需要付出额外的努力,以确保升级的成功。通常,会有正式的项目计划和管理流程,以协调企业内部的工作安排,包括一个升级过程中的测试,以及升级失败的回退计划,以备不时之需。

基本升级。这种类型的项目会考虑到一些基本的测试,但它通常不需要部署团队来亲自完成这些测试。如果由他们完成,在涉及到任务关键型应用程序时,将依然需要很多的工作,而且这需要采取合理的预防措施。至少,这包括升级之前对数据库的备份,以及创建一个可靠的回退计划。

有回退计划的非关键升级。这种类型的升级过程用于那些在自身领域十分重要的数据库,这些数据库并不涉及关键业务和监管合规问题。此类情况下,数据库升级时,如果需要,退回计划将被执行。

供应商指导下的升级计划。这也许是最常见的SQL服务器升级项目。有时候,这样的升级就是供应商对用户说我们现在支持新版本,就像一句话这么简单,但它也可能更为复杂。例如,如果你的前端程序连接到了数据库的后端,你可能需要将前端应用程序升级到新版本。不同的供应商,细节可能会有很大不同。在企业内部,你可以把它当做一个基本升级项目来看待。

随着数据库升级项目类型的确定,你还需要内部应用程序所有者对计划的签字认可。根据工作安排,设定升级预期,估计升级所带来的效益。对于所有类型的数据库升级,你要确保至少从Upgrade Advisor开始你的升级过程,并及时修复发现的问题。在没有进行基本的审查前,不要开始升级任务。

作者

Rick Heiges
Rick Heiges

SQL Server MVP以及DB Best技术公司的首席解决方案架构师。

翻译

杨宏玉
杨宏玉

TechTarget特邀编辑。北京邮电大学计算机科学与技术专业硕士。熟悉软件开发流程,对系统管理,网络配置,数据库应用等方面有深入的理解和实践经验。现就职于IBM(中国)投资有限公司,从事IBM服务器相关软件的开发工作。业余时间喜欢游泳登山,爱健身,喜欢结交朋友。

相关推荐