首页 / 数据库 / SQLServer / SQL Server数据库升级常见的五大错误
SQL Server数据库升级常见的五大错误2012-09-06 TechTarget SQL Server数据库升级需要DBA进行大量的规划与测试。大多数的时间里,升 级过程也许不会出现任何问题,但是一些潜在的威胁绝不能忽视。在本文中,SQL Server专家Roman Rehak将为您介绍数据库升级或者迁移过程中,DBA应该注意哪 些问题。升级测试不足。在SQL Server数据库升级出现问题的情况下,其 中最常见的原因就是测试不足。DBA不仅需要对每一个连接数据库的应用进行测试 ,还需要测试任何一个执行数据库代码的程序,比如SSIS包、数据库工具、辅助 存储过程以及复制等。如果你使用SQL Server 2000版本的话,那么测试就变得更 加重要。升级到SQL Server 2005时,许多语法都发生了变化,还包括T- SQL相关的特性。举例来说,当使用SQL Server 2005 NOLOCK语句时,你需要加上 WITH。测试出错语法的方法有很多中,这里介绍一个最直接的方法,就是针对所 有存储过程使用ALTER命令,对T-SQL代码进行重新编译。但是这个方法无法找到 动态SQL中的语法错误,所以这里没有捷径,你需要执行所有的数据库代码。没有认真阅读升级白皮书。DBA进行SQL Server数据库升级时,除了基本 的SQL Server在线手册之外,还可以参考微软提供的升级白皮书,该白皮书针对 了所有版本的SQL Server。尽管它看起来比较枯燥乏味,而且大部分内容你都不 一定能够用到,但是从头到尾阅读一遍,将重点内容标注下了,我想这对DBA是有 百利而无一害的。进行升级之前,需要弄清楚哪些功能在新的版本中是被 废弃的,如果发现这样的功能,DBA应该及时对相关代码进行修改和调整。如果在 升级之前没有多余时间阅读白皮书,那么一定要记住有些功能在下一个版本中是 无法运行的。主观认为现有硬件可以运行新版本数据库。通常情况下,微 软在发布每个新版本的SQL Server数据库之前都会预先提供一些技术文档,以向 用户介绍新版本的数据库有哪些新特性。许多DBA都会犯这样的低级错误,就是他 们认为现有的硬件可以运行新的数据库。大多数情况下,这样的问题可能不会发 生,但是并不是所有服务器都能满足新版本的硬件需求。举个例子,SQL Server 2005在系统配置要求上远远超过SQL Server 2000,从实际应用上来看, 有DBA表示服务器在升级SQL Server之后运行速度大大降低。微软官方已经承认, 在极少数情况下,安装SQL Server 2005之后数据库性能不升反降。那么找到真相 的唯一方法就是进行性能基准测试,你可以使用相同的服务器安装不同版本的SQL Server,然后对应用性能进行对比。另外我们还可以使用虚拟化技术来进 行对比,在一些情况下,数据库软件的升级也意味着硬件服务器同样需要升级, 特别是服务器使用时间较长的时候,DBA应该充分考虑到硬件的问题。没 有更改兼容性版本。在进行数据库升级时,DBA需要对兼容性级别进行设置,这使 得你可以在不更改语法的情况下运行新版本数据库。当你从早期版本数据库恢复 到新版本时,SQL Server将保留兼容性版本,也就是说它可以让你运行那些无效 的语法。这个功能是为了让DBA能够有更多的时间对语法进行修改。如果 你将数据库设置在早期版本的兼容模式下,你可能会误以为升级工作已经完成, 因为在测试的时候没有出现任何问题。但是如果你之后再更改到新版本的兼容模 式下,T-SQL就会出现问题。因此一定要记住,你需要对所有数据(包括系统数据 库)的兼容模式进行修改,当你需要运行之前版本的SQL Server时,你还可以改回 去。没有制定回滚计划。无论你进行何种规模的数据库升级,一定要确保 当遭遇故障时能够对SQL Server进行回滚操作。“升级之前做好数据库备份”是 所有DBA都知道的,但是说到容易做到难,特别是当你使用了复制之后,并不是每 个DBA都会恢复所有数据库并redo所有SQL Server。对于一个24/7运营的 企业来说,长时间宕机造成不必要的用户流失可以说是无法接受的。在这些环境 下,数据库升级需要最小的停机时间,而且DBA无法接受升级中出现各种各样的错 误。为将风险降到最低,我们可以现在新的机器上运行SQL Server新的数据库, 之前的机器还将运行。如果新的测试显示出现重大问题,你还可以利用之前的设 置继续工作,直到将所有的问题都解决为止。