背景:

由于建设初期使用的vSphere vCenter for Windows版,其中安装自动化过程中会使用SQL Server Express的免费版数据库进行基础环境构建。而此时随着业务量的增加,虚拟机数的膨胀,产生的日志如果不被及时清理掉或者转移走的话,会导致该免费版数据库很快触发阈值而停止SQL Server服务(对于2005/2008版【vCenter  Server 4.1以下版本】是mdf文件不能超过4GB,对于2008 R2版【vCenter Server 5.5以上版本】的是mdf文件不能超过10GB),这样就会导致vCenter主服务无法启动,vCenter对外服务异常。

因此最终用户方提出能否通过技术手段对免费受限版的数据库升级?

探索:

通过爬VMware的KB知识库,有发现介绍如何迁移免费版到完整版的文章KB1028601。通过仔细阅读,我了解到很多关于数据内部调用,注册表项的真实含义,以及安全迁移的必备环境等内容。

由于上文介绍的是迁移内容,再结合用户现有环境,可以借鉴迁移文章中涉及到的知识点,但是不能完全照搬完成我这次的升级,因此真正实施的过程中该文是我的重要技术保障,接下来将给各位带来如何安全平滑升级到完整版SQL Server的详细步骤。

平滑升级过程:

1.     进行环境备份

a)      虚拟化环境对该vCenter虚机进行快照即可

b)      物理环境建议做一下全镜像,可以微软自己的Windows Server Backup功能,也可以使用其他第三方的磁盘级别备份工具

2.     如果有开启DRS,请临时关闭DRS或更改成手动DRS(F该操作非必需项,有此建议的原因是实践中,当vCenter再次启动服务后,会重新计算“标准偏差”,这将可能会带来不必要的虚机迁移风暴)

3.     停止一切VMware vCenter Server服务,详细步骤可参考KB2109881

4.     准备升级材料

a)      大于等于现有免费版本号的SQL Server 英文版

b)      可供管理现有vCenter Server 内建数据库实例的“SQL Server Management Studio”工具

表格 1取自维基百科的版本与发布名成对照表

 

RTM (noSP)

SP1

SP2

SP3

SP4

 SQL Server 2016
     codename ?

13.0.1601.5

       

 SQL Server 2014
     codename SQL14

12.0.2000.8

12.0.4100.1
or 12.1.4100.1

12.0.5000.0
or 12.2.5000.0

 SQL Server 2012
     codename Denali

11.0.2100.60

11.0.3000.0
or 11.1.3000.0

11.0.5058.0
or 11.2.5058.0

11.0.6020.0
or 11.3.6020.0

 SQL Server 2008 R2
     codename Kilimanjaro

10.50.1600.1

10.50.2500.0
or 10.51.2500.0

10.50.4000.0
or 10.52.4000.0

10.50.6000.34
or 10.53.6000.34

 SQL Server 2008
     codename Katmai

10.0.1600.22

10.0.2531.0
or 10.1.2531.0

10.0.4000.0
or 10.2.4000.0

10.0.5500.0
or 10.3.5500.0

10.0.6000.29
or 10.4.6000.29

 SQL Server 2005
     codename Yukon

9.0.1399.06

9.0.2047

9.0.3042

9.0.4035

9.0.5000

 SQL Server 2000
     codename Shiloh

8.0.194

8.0.384

8.0.532

8.0.760

8.0.2039

 SQL Server 7.0
     codename Sphinx

7.0.623

7.0.699

7.0.842

7.0.961

7.0.1063

5.     确认升级前版本

a)      使用“SQL Server Management Studio”登陆“VIM_SQLEXP”实例

b)      查看当前实例的数据库版本号,以vSphere 5.5 vCenter Server为例,它使用的是英文版v10.50.2500.0,等换成发布名称就是SQL Server 2008 R2 with SP1

图 1确认数据库实例语言和版本

6.     获取目标版本

a)      由于内建免费版使用的SQL Server相对来说有点过于久远,因此在用户购买的版本中找到了SQL Server 2012 with SP3作为目标版本使用

7.     开始升级

a)      本小节会有大量截图出现,使您更直观的了解到升级全貌

b)     

图 2选择维护项(Maintenance)的版本更新(Edition Upgrade)

c)     

图 3输入用于更新的目标版本产品密钥,我这里使用的是企业版密钥

d)     

图 4同意授权许可

e)     

图 5注意选择实例(VIM_SQLEXP)蓝色箭头,红色箭头1注意版本,红色箭头2注意版本号(这里看到11.3.6020,是因为之前做过一次基于版本号的升级,原本这里应该是10.51.2500.0的)

f)      

图 6升级规则检查,6项全部通过

g)     

图 7最后再看一下汇总,了解操作内容和目标版本信息以及实例名称

h)     

图 8升级完后,通过管理工具确认版本和版本号信息,同时我们注意到根目录此时也发生了变化

i)       确认无误,至此SQL Server 这边的升级到此结束

8.     更新vSphere vCenter Server所需要用到的DSN(此操作步骤非必需,但可以确保一致性,提高兼容性)

a)      此步骤来自于VMware的迁移文档KB1028601 描述

b)      由于此次我选择的是升级而非迁移,所以SQL在服务中的启动名也没有变(依旧是MSSQL$VIM_SQLEXP),倒是DSN的版本需要更新一下,原先是10,现在是11

c)     

图 9通过查看控制面板内的管理工具,在ODBC数据源管理器(odbcad32.exe)中我们可以看到vCenter的系统DSN还是版本10

d)      如果想偷懒,可以在注册表编辑器(regedit.exe)下面先导出HKEY_LOCAL_MACHINE\SOFTWARE\ODBC这个分支下的所有内容

e)      随后我删除这个名称是VMware vCenter的系统数据源

f)       接着我开始配置一个新的VMware vCenter数据源

i.         

图 10按图选择版本11的驱动程序

ii.         

图 11使用刚刚导出的reg注册表文件,按照顺序依次填入这三个内容后下一步

iii.         

图 12保持默认,使用Windows 授权验证,随后下一步

iv.         

图 13在红字1处选择默认数据库为VIM_VCDB,红字2处选择读写,随后下一步

v.         

图 14最后一步,点击完成进行简单测试

vi.         

图 15完成测试,看到测试通过字样

vii.         

图 16最后看到系统DSN内生成了新的基于11版本的数据源

9.     最后不做任何操作的重启一下vCenter服务器,目的是一起检查系统服务自启动,vCenter服务自启动,同时也利于问题就近发现

10.  登陆vCenter,对DRS进行开启或者变更成自动

11.  最后的最后就是稳定工作一段时间后就可以删除原有的快照文件了

总结:

1.和迁移方案不同,这里我们使用的是原地升级,因此省去了很多VMware内部调动外部数据库的配置动作,唯独需要注意的是DSN版本,而这个也是为了看起来一致,非必需步骤

2.这种升级方式属于偷懒升级,但是也很安全,满足用户方在没有syslog服务器的情况下在本地更多存放日志信息到数据库内

3.请一定准备好英文版SQL Server安装介质作为目标升级版本

4.这种操作的弊端,我认为经过一段时间后随着数据库的变大,系统启动时间会变长,对去历史日志的时候也会有所变慢,可以通过迁移到更快速存储或者设置日志留存级别来控制数据库大小

5.在vSphere5.5之后6.0之前的这些版本内,使用的都是SQL Server 2008 R2 的免费版,因此可以提供10GB的免费使用数据库空间,在一定程度上满足大多数用户需求

6.各位看过之后有任何疑问欢迎留言

有用的链接:

1.     https://kb.vmware.com/kb/1028601

2.     http://sqlserverbuilds.blogspot.com

3.     https://zh.wikipedia.org/wiki/Microsoft_SQL_Server

4.     https://msdn.microsoft.com/en-us/library/mt238290.aspx

-=EOB=-

如何安全的将VMware vCenter Server使用的SQL Server Express数据库平滑升级到完整版的更多相关文章

  1. SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第1部分)

    为了缩小读取操作所涉及范围,本文首先着眼于简单的SELECT查询,然后引入执行更新操作有关的附加过程.最后你会读到,优化性能时SQLServer使用还原工具的相关术语和流程. 关系和存储引擎 如图所示 ...

  2. SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第2部分)

    计划缓存(Plan Cache) 如果SQL Server已经找到一个好的方式去执行一段代码时,应该把它作为随后的请求重用,因为生成执行计划是耗费时间且资源密集的,这样做是有有意义的. 如果没找到被缓 ...

  3. [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝

    一般连接sql数据库,IP_connstr="driver={SQL Server}; server=127.0.0.1;database=数据库名字;uid=sa;pwd=密码" ...

  4. SQL Server 127个SQL server热门资料汇总

      SQL Server 127个SQL server热门资料汇总     最近有许多关于如何学习SQLSERVER的问题,其实新手入门的资源和贴子很多,现在向大家隆重推荐经过精心整理的[SQLSer ...

  5. 如何启动 SQL Server Agent(SQL Server 配置管理器)

    如何启动 SQL Server Agent(SQL Server 配置管理器) SQL Server 2008 R2 其他版本   4(共 6)对本文的评价是有帮助 - 评价此主题 可以从 SQL S ...

  6. SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表)

    原文:SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表) 作为SQL Server 2016(CTP3.x)的另一 ...

  7. SQL Server 2005、SQL Server 2008版本比较

    SQL Server 2005的版本有SQL Server 2005企业版(Enterprise).SQL Server 2005标准版(Standard) 和SQL Server 2005工作组版( ...

  8. SQL Sever 各版本下载 SQL Server 2012下载SQL Server 2008下载SQL Server 2005

    SQL Server 2012SQL Server 2012 开发版(DVD)(X64,X86)(中文简体)ed2k://|file|cn_sql_server_2012_developer_edit ...

  9. Windows Server 2003 安装Sql Server 2005 问题处理

    安装途中遇到: 问题1.无法找到产品Microsoft SQL Server Native Client的安装程序包.请使用安装包sqlncli.msi的有效副本重新安装? 答:安装SQL Serve ...

随机推荐

  1. 浅谈 Fragment 生命周期

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...

  2. java中的锁

    java中有哪些锁 这个问题在我看了一遍<java并发编程>后尽然无法回答,说明自己对于锁的概念了解的不够.于是再次翻看了一下书里的内容,突然有点打开脑门的感觉.看来确实是要学习的最好方式 ...

  3. ASP.NET Aries 入门开发教程9:业务表单的开发

    前言: 经过前面那么多篇的列表的介绍,终于到了大伙期待的表单开发了. 也是本系列的最后一篇文章了! 1:表单页面的权限设置与继承 对于表单页面,权限的设置有两种: 1:你可以选择添加菜单(设置为不显示 ...

  4. 数据库的快照隔离级别(Snapshot Isolation)

    隔离级别定义事务处理数据读取操作的隔离程度,在SQL Server中,隔离级别只会影响读操作申请的共享锁(Shared Lock),而不会影响写操作申请的互斥锁(Exclusive Lock),隔离级 ...

  5. 对Thoughtworks的有趣笔试题实践

    记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...

  6. 最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)

    在项目开发中,除了对数据的展示更多的就是对文件的相关操作,例如文件的创建和删除,以及文件的压缩和解压.文件压缩的好处有很多,主要就是在文件传输的方面,文件压缩的好处就不需要赘述,因为无论是开发者,还是 ...

  7. RSA非对称加密,使用OpenSSL生成证书,iOS加密,java解密

    最近换了一份工作,工作了大概一个多月了吧.差不多得有两个月没有更新博客了吧.在新公司自己写了一个iOS的比较通用的可以架构一个中型应用的不算是框架的一个结构,并已经投入使用.哈哈 说说文章标题的相关的 ...

  8. 基于注解的bean配置

    基于注解的bean配置,主要是进行applicationContext.xml配置.DAO层类注解.Service层类注解. 1.在applicationContext.xml文件中配置信息如下 &l ...

  9. Unity C#最佳实践(上)

    本文为<effective c#>的读书笔记,此书类似于大名鼎鼎的<effective c++>,是入门后提高水平的进阶读物,此书提出了50个改进c#代码的原则,但是由于主要针 ...

  10. 【每日一linux命令2】命令执行顺序:

    二.命令顺序:     若在 shell 内置的命令/bin 以及/usr/bin 之下都出现了命令 pwd,那当我们执行该命令时,会执行哪 一个?答案是第一优先执行 shell 内置的命令,再执行路 ...