首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么从SQL Server 2005升级到SQL Server 2012

2013-12-19 
如何从SQL Server 2005升级到SQL Server 2012升级的主要目的:应用SQL Server 2012的Always On的技术,做读

如何从SQL Server 2005升级到SQL Server 2012
升级的主要目的:
应用SQL Server 2012的Always On的技术,做读写分离。

当前的环境:
1. 在大约3年前,从SQL Server 2000升级到SQL Server 2005。
2. 数据量在20G左右。
3. 里面有大量的存储过程。
4. 客户端程序访问数据库方式多样,到处直接拼写SQL的(复杂),有走ORM的。
5. 数据库服务器4核的8个CPU,32G的内存,性能问题日益突出。(优化SQL和索引是另外一条路,暂不讨论)
6. 存储是IBM的,RAID5

暂时的解决办法及接下去的思路:
1. 安装了SQL Server 2012,可以分离了一个SQL Server 2005的数据库,然后附件到SQL Server 2012上。
2. 大部分应用,尤其是通过ORM访问数据库的程序很正常。
3. 也有很多应用,直接拼凑SQL的,直接出错。
4. 安装了UAFS(SQL Server 2012升级助手),这个东西,貌似会把所有升级后会出问题的SQL以报表的形式整理。

我的问题就是:这个东西,到底如何用呢?
还有没有其他啥思路或者办法?


[解决办法]
升级有两种方式,一种是脱机一种是联机,联机升级是直接用安装文件升级,安装文件有升级选项的,脱机就是你那种。如果条件允许,建议使用脱机方式
[解决办法]
可以把原有的数据库做个备份,先用备份在2012的数据库上连接系统先做测试,如果可以了,再升级
[解决办法]

引用:
升级的主要目的:
应用SQL Server 2012的Always On的技术,做读写分离。

当前的环境:
1. 在大约3年前,从SQL Server 2000升级到SQL Server 2005。
2. 数据量在20G左右。
3. 里面有大量的存储过程。
4. 客户端程序访问数据库方式多样,到处直接拼写SQL的(复杂),有走ORM的。
5. 数据库服务器4核的8个CPU,32G的内存,性能问题日益突出。(优化SQL和索引是另外一条路,暂不讨论)
6. 存储是IBM的,RAID5

暂时的解决办法及接下去的思路:
1. 安装了SQL Server 2012,可以分离了一个SQL Server 2005的数据库,然后附件到SQL Server 2012上。
2. 大部分应用,尤其是通过ORM访问数据库的程序很正常。
3. 也有很多应用,直接拼凑SQL的,直接出错。
4. 安装了UAFS(SQL Server 2012升级助手),这个东西,貌似会把所有升级后会出问题的SQL以报表的形式整理。

我的问题就是:这个东西,到底如何用呢?
还有没有其他啥思路或者办法?


SQL Server 2012已经发布,在升级之前我们需要做一些准备。首先必须验证软件和硬件需求;准备足够的资源,用于测试和实现新系统。但是,您可能忽略了一些重要方面--处理SQL Server数据的客户端应用程序。

  这正是SQL Server 2012的Upgrade Assistant(升级助手)的作用。Upgrade Assistant提供了一种自动处理机制,用于测试从SQL Server 2005、2008或2008R2移植到SQL Server 2012的应用程序兼容性。使用Upgrade Assistant,可以检测升级过程中可能发生的功能和性能问题。Upgrade Assistant可以验证应用程序的SQL Server 2012 Transact-SQL查询,可用于检测和纠正应用程序源代码的兼容性问题。

  Upgrade Assistant是由微软和Scalability Experts Inc.合作开发。Upgrade Assistant使用工作负载测试,对旧版本的SQL Server与SQL Server 2012的应用程序性能进行比较。如果按照产品文档所描述的步骤(同时考虑用户界面的结构),就可以确定可能影响应用程序的问题,如弃用的特性或Transact-SQL语法变化。

  Upgrade Assistant测试过程

  Upgrade Assistant可以指引您验证应用程序在SQL Server 2012的兼容性。在开始之前,要先创建用于运行示例工作负载的测试环境。理论上,可以在生产数据库上执行测试,但是这种方法存在一定的风险。因为这不仅会对运行的应用程序、后台数据库和网络本身的性能产生负面影响,而且如果出现命名冲突或事务中断,就有破坏应用程序和数据完整性的风险。

  至少,您的测试环境应该包含一个数据库服务器,然后在其上安装当前版本的SQL Server(2005、2008或2008 R2)及Upgrade Assistant.服务器还必须支持SQL Server 2012升级。此外,您必须从所测试的应用程序连接数据库服务器。应用程序应该是一个测试系统,以便执行自动化过程,完全补全应用程序的特性。如果使用生产应用程序来执行测试,那么您很可能只能检查到较小比例的功能。

  一旦建立了测试环境,您就可以使用SQL Server Upgrade Assistant,执行以下步骤:

  备份相关系统和用户数据库,获取示例工作负载。Upgrade Assistant会将工作负载捕捉为跟踪文件,其中记录了有代表性的应用程序数据库查询记录。

  基于第一步创建的备份和跟踪文件,建立基线环境。在这个过程中,运行SQL Server Upgrade Advisor,确定数据库跟踪文件和备份文件中的升级问题。这时,您应该解决所有出现的问题,才能继续Upgrade Assistant后面的步骤。

参考:http://dev.yesky.com/420/33202420.shtml
[解决办法]
这个我觉得还是得慎重一点,别直接升级,像上面说的,可以先安装sql server 2012,然后把原来2005的数据库备份一下,然后还原到2012,看看有没有问题。

另外,加强测试,因为那个升级助手所报出来的问题只是一部分,还有另一部分,隐形的问题,就是性能问题,升级后,你可以用原来运行次数比较多的sql,进行测试,看速度有没有慢。

反正最好是经过测试再实施,别一上来就放到正式的系统上。
[解决办法]
本帖最后由 DBA_Huangzj 于 2013-12-17 13:17:21 编辑 记得2012应该不支持直接拿2005的数据,透过2008中转一次喽
对系统,若能从优化上着手,解决性能问题是首选,部署ALWAYSON会增加硬件、管理、维护成本

[解决办法]
2008我升过一次,目前知道的是
;with result as 这个,2008不抱错,但是2012就会报错,这个变成了内置功能

热点排行