Owen_Zeng 的博客

You want something. Go get it!

SQL SERVER数据库升级



背景


最近接手很多个项目都跟数据库升级的项目。感触还是颇深,写个心得,供大家参考,如果有疑问欢迎留言。
 

为什么升级?

 
你可能会因为各种各样的原因选择升级。我认为原因主要是3个方面
1.旧版本使用中遇到问题
性能问题,高可用问题,灾备问题等。当然升级并不一定能解决这些问题.
2.微软官方逐渐减少对旧版本的支持
SQL SERVER 2005 于2016 年4月结束支持
3.新版本的独特功能
2012的 ALWAYS ON ,2014的内存优化表等
 

升级到哪个版本好?
 
首先,版本不是越新越好,适合自己的就是最好的。建议根据上面提到的升级的原因和需要什么样的功能来决定。
 

已知升级问题

 
1.支持的版本升级
SQL 2000 是可以直接分离附加到 SQL 2012数据库的.之前有人称不能跨超过3个或者几个版本升级,这是不对的。但是跨太多版本升级可能会遇到更大的风险,尽量选择平滑的升级方式
 
2.数据库引擎的向后兼容性
 
1.不推荐使用的功能
2.废止的数据库功能
3.功能的重大更改
4.功能的行为更改
此处比较重要。尤其是2,3,。
3.实际案例
某制造企业,数据库从SQL SERVER 2008 升级到SQL SERVER2014 后数据库性能大幅度下降.系统慢卡,几乎不能使用。
某医药的系统,升级后因为自增列的问题,导致前端程序报错。可能的出现的问题的情况比较多。


升级的方式有哪些?

 
分为原地升级和并行升级。
1,原地升级(in-place):安装进程覆盖以前版本的sql server程序文件,但保留以前的sql server实例中存储的所有用户数据,使DBA在执行升级的过程中不必转移或恢复现有的用户数据库。在升级之前,应当备份所有的sql server数据库以及以前的sql server实例关联的其它对象,此外,联机丛书不会升级。
 
2,并行升级(side by side):需要事先在新的服务器环境安装一个升级后的数据库版本,然后手动将升级前的数据库转移到新版本的SQL SERVER 中。这个方法可以让新旧环境同时存在,从而最小化sql server环境的停机时间.
在并行迁移过程中,有很多种方法将数据库从一个sql server实例转移到另一个sql server实例:分离/附加方法,备份/还原方法,复制数据库向导,结合数据导入/导出的手动架构重建,发布订阅,Logshiping ,镜像等
这么多方式到底应该选择哪种呢?后续我会详细对比。
 
 

 总结

 
在看完前面的几个问题后,你应该对数据库升级已经有了一个整体的思路。根据这些信息,制定一个完整的计划,以减少升级的分析和变数,使得升级更顺畅。升级成功后也一定要经过应用程序和兼容性测试。同时制定一个失败应急计划,如果直接升级失败也可以马上恢复数据库,不影响线上业务。不管升级环境简单或复杂,分析升级需求是相当重要的步骤。这通常包含SQL SERVER 软硬件需求,版本,兼容性等问题
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z10843087/article/details/77688142
个人分类: SQL SERVER
上一篇SQL Server高可用和CDC
下一篇TempDB暴涨问题排查
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭