背景


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

为什么升级?

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

升级到哪个版本好?

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

已知升级问题

 

1.支持的版本升级

升级前的数据库版本 ,

升级后的数据库版本 。
然后根据微软官方给出的列表来对应确认我们决定是否可以直接升级。
比如SQL 2000 就不能直接升级到 SQL 2012.如果满足直接升级就没什么问题。
 

2.数据库引擎的向后兼容性

 
1.不推荐使用的功能
2.废止的数据库功能
3.功能的重大更改
4.功能的行为更改
此处比较重要。尤其是2,3,。
 

升级的方式有哪些?

 

分为原地升级和并行升级。

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 软硬件需求,版本,兼容性等问题
 
 
 
 
 
 

SQL SERVER数据库升级手册的更多相关文章

  1. sql server 数据库安装手册

    1. 双击setup.exe运行安装程序,进入[SQL Server 安装中心] 2. 选择左侧菜单栏[安装],运行第一项[全新安装或向现有安装添加功能] 3. 进入[SQL Server 2008 ...

  2. SQL server 数据库升级版本问题解决办法

    在升级或安装数据库的时候,会遇到数据库版本不对的问题,无论怎么升级,升级提示成功了,但打开数据库发现还是原来那个版本.甚至出现重装数据库之后,登陆页面已经提示安装的是新版本了,但登陆进去之后,发现数据 ...

  3. 转载 50种方法优化SQL Server数据库查询

    原文地址 http://www.cnblogs.com/zhycyq/articles/2636748.html 50种方法优化SQL Server数据库查询 查询速度慢的原因很多,常见如下几种: 1 ...

  4. .NET跨平台之旅:升级至ASP.NET 5 RC1,Linux上访问SQL Server数据库

    今天微软正式发布了ASP.NET 5 RC1(详见Announcing ASP.NET 5 Release Candidate 1),.NET跨平台迈出了关键一步. 紧跟这次RC1的发布,我们成功地将 ...

  5. 如何彻底的卸载sql server数据库

    如何彻底的卸载sql server数据库    好不容易装上了sql server 2012数据库,可是却不能连接本地的数据库,后来发现缺少一些服务,于是决定重新安装,但是卸载却很麻烦,如果卸载不干净 ...

  6. 【转】SQL Server 数据库内部版本号

    -----------数据库还原或版本升级出现版本错误时可参考. Internal SQL Server Database Version Numbers A database created by ...

  7. 优化SQL Server数据库查询方法

    SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列 ...

  8. Microsoft SQL Server 数据库 错误号大全

    panchzh :Microsoft SQL Server 数据库 错误号大全0 操作成功完成. 1 功能错误. 2 系统找不到指定的文件. 3 系统找不到指定的路径. 4 系统无法打开文件. 5 拒 ...

  9. C# 连接SQL Server数据库的几种方式--server+data source等方式

    如何使用Connection对象连接数据库? 对于不同的.NET数据提供者,ADO.NET采用不同的Connection对象连接数据库.这些Connection对象为我们屏蔽了具体的实现细节,并提供了 ...

随机推荐

  1. API接口安全设计(转)

    接口的安全性主要围绕Token.Timestamp和Sign三个机制展开设计,保证接口的数据不会被篡改和重复调用,下面具体来看: Token授权机制:用户使用用户名密码登录后服务器给客户端返回一个To ...

  2. Python tuple

    元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表 语法 names = (a,b,c) 它只有2个方法,一个是count,一个是index. 当然也有可变元祖: 可 ...

  3. windows环境下lib和dll的区别和联系详细

    https://blog.csdn.net/ghevinn/article/details/43759655 c++中共有两种库:1.LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代 ...

  4. Linux 辅助命令

    0. 说明 记录在 Linux 使用过程中的一些有帮助的命令 1. 命令集合 [1.1 错误输出重定向] # 将错误信息重定向到 /dev/null source /xxx >/dev/null ...

  5. [Python_4] Python 面向对象(OOP)

    0. 说明 Python 面向对象(OOP) 笔记.迭代磁盘文件.析构函数.内置方法.多重继承.异常处理 参考 Python面向对象 1. 面向对象 # -*-coding:utf-8-*- &quo ...

  6. 【汇编】SI DI 的用法

    一.汇编语言中,为什么SI和DI不能同时使用汇编 其实你可以想一下,这两个寄存器的意思,SI源变址寄存器,DI目地变址寄存器,既然是变址寄存器,那么他们肯定是在某个地址的基础上进行偏移变化,由此我们就 ...

  7. 【10】python窗口控制[隐藏,移动]

    步骤一:下载小软件,如下图 该软件用于提取需要控制程序窗口的具体信息 二.程序代码 #__author:"**佳" #date: 2018/10/20 0020 #function ...

  8. Nginx反向代理理解误区之proxy_cookie_domain

    基本内容 Nginx做反向代理的时候,我们一般习惯添加proxy_cookie_domain配置,来做cookie的域名转换,比如 ... location /api { proxy_pass htt ...

  9. Python3中遇到UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal not in range(128)

    在 linux服务器上运行代码报错: Python3中遇到UnicodeEncodeError: ‘ascii’ codec can’t encode characters in ordinal no ...

  10. html5式程序员表白

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/whqet/article/details/26394493 前端开发whqet,csdn,王海庆,w ...