当前位置: 首页 > 科技观察

SQLServer升级真的有想象中那么简单吗?

时间:2023-03-14 08:10:15 科技观察

并非所有的SQLServer升级都需要复杂的计划和大量的工作。有时,您可以使用一些简单的方法来升级SQLServer。在升级过程中,您不会因为方法简单而损失任何东西,节省下来的时间可以用于下一步的规划。但是,如果您想简化升级过程,那么您必须知道什么时候简化过程对您来说是安全的,什么时候您必须付出额外的努力。本文的目的是为您提供一个框架,您可以使用该框架更轻松地确定数据库升级期间所需的工作量、多少资源等。对SQLServer升级进行分类要确定升级的工作量和成本,您需要考虑许多因素。在本文中,我们将讨论一些最常见的问题。当然,还有其他因素可以帮助确定SQLServer升级的成本,但本文讨论的因素最具代表性。第三方应用程序。在很多企业中,大部分数据库都是通过独立软件供应商(isvs)购买的,他们提供标准流程帮助用户将SQLServer升级到最新版本。如果要从第三方ISV升级数据库,最好遵循供应商规定的升级策略。它可以帮助您提前确定升级所需的工作量。关键任务应用程序。关键任务应用程序需要更强大的升级计划和更多的测试工作。对于较小的应用程序,应该减少工作量,因为升级导致功能丢失的风险很低,恢复需要相对较少的工作量,并且对业务的影响很小。这个因素与当前的数据库架构是否具备高可用性、是否具备容灾组件密切相关。如果答案是肯定的,那么我们可以预期尽可能减少停机时间是至关重要的。这增加了升级计划的准备时间和升级本身的测试时间。临时SQL。当应用程序在生成大量未嵌入存储过程的SQL查询的数据库上运行时,升级所需的工作量会增加。Microsoft内置的升级顾问等工具将检查数据库本身的元数据,包括存储过程和其他数据库对象。不仅如此,UpgradeAdvisor还有其他功能,因为它可以检查临时的SQL语句跟踪文件。可以通过捕获和分析提供广泛SQL代码覆盖范围的特定跟踪文件来解决常见问题。大型数据库。在这种情况下,大的定义是比较主观的。例如,10年前,1TB的数据库被认为是大型数据库,但在今天却司空见惯。GB或TB的数据量和数据库对象的数量会影响升级数据库的时间,如果需要回滚,也会影响回滚完成的时间。复制。这不会影响所有数据库使用者,但如果您的数据库环境中有SQLServer副本,则升级副本组件的顺序很重要,升级过程的连续性也很重要。副本可能是升级期间系统处理的主要因素,升级完成的顺序将影响您需要的工作量。图1:用于确定升级过程所需工作量的决策树升级项目的分类一旦您考虑了各种因素,就可以根据涉及的因素对SQLServer升级项目进行分类。这里有几种类型的升级项目,按照复杂程度从高到低排列;它们之间的关系以及与各种因素的关系如图1所示。复杂的升级。这是一种升级,需要在计划和执行方面付出大量努力。确保考虑尽可能多的场景,并且在升级期间持续测试至关重要,以便最大限度地减少数据库和应用程序升级期间的停机时间。这些升级项目往往对项目人员来说压力很大,需要付出额外的努力才能确保升级成功。通常会有一个正式的项目规划和管理流程来协调企业内部的工作安排,包括升级过程中的测试,以及在紧急情况下升级失败的回退计划。基础升级。此类项目允许进行一些基本测试,但通常不需要部署团队自己进行这些测试。如果由他们来完成,在关键任务应用程序方面仍然需要大量工作,并且需要采取合理的预防措施。至少,这包括在升级前备份数据库,并制定可靠的回退计划。具有回退计划的非关键升级。这种类型的升级过程用于在其领域很重要且不涉及关键业务和法规遵从性问题的数据库。在这种情况下,当数据库升级时,将根据需要实施回退计划。供应商指导下的升级计划。这可能是最常见的SQLServer升级项目。有时候,这样的升级就是供应商跟用户说我们现在支持新版本了,简单的一句话,也可以说的比较复杂。例如,如果您的前端应用程序连接到数据库后端,您可能需要将前端应用程序升级到更新的版本。细节可能因供应商而异。在企业内部,你可以把它看作是一个基础升级项目。由于数据库升级项目的类型已确定,您还需要内部应用程序所有者签署该计划。根据工作安排,设定升级预期,预估升级带来的收益。与所有类型的数据库升级一样,您希望确保至少使用升级顾问启动升级过程并修复发现的任何问题。不要在没有进行基本检查的情况下开始升级任务。