SQL Server数据库升级需要DBA进行大量的规划与测试。大多数的时间里,升级过程也许不会出现任何问题,但是一些潜在的威胁绝不能忽视。在本文中,SQL Server专家Roman Rehak将为您介绍数据库升级或者迁移过程中,DBA应该注意哪些问题。 升级测试不足。
在SQL Server数据库升级出现问题的情况下,其中最常见的原因就是测试不足。DBA不仅需要对每一个连接数据库的应用进行测试,还需要测试任何一个执行数据库代码的程序,比如SSIS包、数据库工具、辅助存储过程以及复制等。如果你使用SQL Server 2000版本的话,那么测试就变得更加重要。 升级到SQL Server……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
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新的数据库,之前的机器还将运行。如果新的测试显示出现重大问题,你还可以利用之前的设置继续工作,直到将所有的问题都解决为止。
作者
翻译
相关推荐
-
Notre Dame对云端SQL Server性能基准的探索实践
确立SQL Server的性能基准,对于云端迁移来说是至关重要的第一步,一位来自于University of Notre Dame 的DBA表示,他正在试图通过数据库监控软件,找出SQL server的性能基准。
-
DBA必须掌握的数据库恢复管理技术
如果没有备份副本,数据库管理员就无法还原数据库,所以DBA在恢复之前倾向于考虑备份是合乎逻辑的。 但是,对我来说,这种逻辑一直是错误的。
-
DBA也要和领导抢饭碗?
数据库架构师Ziaul Mannan 认为,DBA有成为高管的潜在可能,而这种潜力在过去往往被忽视,他还将证明DBA技能到领导力的转变是可行的。
-
SQL Server 2016新变化:内存中OLTP功能大改进
SQL Server 2016的许多功能得到改进,内存中OLTP(in-memory OLTP)也不例外,包括扩展性、性能以及扩展T-SQL用于使用和管理内存优化表的功能方面。