码迷,mamicode.com
首页 > 数据库 > 详细

SQL Server 2005群集更换存储

时间:2014-07-27 12:00:40      阅读:378      评论:0      收藏:0      [点我收藏+]

标签:sql   server   数据库   

为什么写这篇文章,主要是因为考虑到群集上更换存储的情况,例如原来的存储发生过小故障,担心数据丢失,必须将群集中的存储换成一个新的存储。于是就搭了个实验环境验证一下实施过程。本环境是基于Windows server 2003+SQL Server 2005的环境。后面会上一篇Windows Server 2008+ SQL Server 2008的相关文档。

仲裁磁盘中记录有仲裁信息,如下图所示:

bubuko.com,布布扣

而数据盘中存放的有系统数据库等信息,如下图所示:

bubuko.com,布布扣

最关键的就是这S盘中的信息。

首先:存储为上新的仲裁盘和数据盘划分好LUN,并映射到两个节点上。两个节点上都能看到相同的磁盘信息。

bubuko.com,布布扣

先在一个节点上进行分区,格式化等操作,为了与早期的仲裁及数据盘区分开,在此仲裁为P盘,数据为T盘,另一个节点上重新扫描即可,不需要重新启动,然后添加盘符,如下图所示:

bubuko.com,布布扣bubuko.com,布布扣

 

更换群集中的仲裁磁盘:

第一步,我们先将仲裁磁盘加入到群集组中,如下图所示,其他操作默认。

bubuko.com,布布扣

然后,编辑Windows群集的属性,仲裁---指定新的仲裁磁盘即可。如下图所示:

bubuko.com,布布扣bubuko.com,布布扣

注意:如何因为仲裁磁盘不可用而无法启动群集服务,请使用 /FIXQUORUM 开关启动群集服务。然后,便能够更改仲裁磁盘。如下图所示:

bubuko.com,布布扣

此命令只是在群集因为仲裁原因无法启动的时候使用,成功设置仲裁磁盘后,删除此参数,再重新启动群集服务。然后可以删除原来的仲裁盘,或者是保留用作备份。

 

更换群集中的数据磁盘

首先,把新的数据盘加入到SQL Server资源组中,如下图所示,其他默认。

bubuko.com,布布扣

接下来,需要让SQL Server服务能够识别到此磁盘,这里取决于SQL Server的依赖关系,如下图所示,将新的磁盘加入到依赖关系中,仔细检查SQL Server相关服务的依存关系,我这里用到SQL Server Fulltext和SQL Server服务,注意,服务要先脱机,再添加资源依存,然后服务再联机。

bubuko.com,布布扣bubuko.com,布布扣

此时,SQL Server就可以识别到新添加的磁盘了,可以进行数据的备份等操作了。 如下图所示:

bubuko.com,布布扣

然后,就是复制数据,将S:盘中的所有数据复制到T:。

具体操作步骤是:

1. 只保证一个节点开机,其他节点关机,目的是让所有的磁盘资源都切换到一个节点上。便于操作。

2. 停止SQL Server服务,否则,无法复制文件。

bubuko.com,布布扣

因为S盘中存放的是数据库的内容,必须停机后才能进行复制。根据数据量和存储性能时间不等。所有内容,全选复制。

bubuko.com,布布扣

紧接着,修改磁盘盘标:

1、打开磁盘管理器,查看所有的磁盘均被识别,并记录磁盘编号,如下图所示:

bubuko.com,布布扣

原有仲裁盘为磁盘1,原有的数据库为磁盘2,新的仲裁盘为磁盘3,新的数据盘为磁盘4.

2、打开注册表,找到以下位置:

HKLM/System/CurrentControlSet/Services/Clusdisk/Parameters/Signatures的键值,找到所有的原存储共享磁盘数字编号

bubuko.com,布布扣

这里,我们主要是记录原有数据盘的编号,磁盘2,对应的是7FE3E998。

bubuko.com,布布扣

3、将原有的数据磁盘的编号与新的磁盘对应起来,也就是更改磁盘签名。

但无奈没有找到dumpcfg.exe命令,这个命令应该是包括在Windows 2000的资源工具包里,但实在是不在好找,我就偷个懒,直接修改注册表了。(强烈建议使用dumpcfg.exe命令操作),不知道直接修改注册表,有什么隐患,希望有知道的朋友给说明一下,或者告诉我哪儿可以下载到dumpcfg.exe程序。

bubuko.com,布布扣

修改依存关系:

bubuko.com,布布扣bubuko.com,布布扣

然后,启动所有节点,删除原有数据盘S盘,(删除资源时必须要求所有节点都开机)

bubuko.com,布布扣

紧接着,其他节点再次关机,只保留一个节点开机,修改新数据盘的盘符为S盘。

bubuko.com,布布扣

然后,此节点关机,再开启第二个节点,查看盘符是否为S:如果不是,则需要修改一致。然后,所有节点开机。

最后,再将SQL Server服务和代理服务联机,即可,如下图所示:

bubuko.com,布布扣

至此,操作就操作。

群集中的其他存储更换,方法一样。都是先加入到群集中后,修改磁盘信息(签名)。例如,存在MSDTC资源的话,也是同样的操作方法,将新的磁盘加入到群集中,停止服务,将源盘的数据复制到新盘中,修改磁盘签名,删除源磁盘,修改盘符。启动服务,OK.

 

另外,需要注意:

或者有些情况下需要将SQL Server service account 添加到SQL Server 文件夹和OLAP 文件夹,并且让SQL Server service account有该文件夹的所有权限。

 参考:http://tech.diannaodian.com/dw/data/sql/2012/0610/181991.html

经过实验,微软给出的操作是通过dumpcfg.exe命令 更新磁盘签名,但不用好像也可以。如果是关于SQL Server 2008的环境,可以参考下面的讨论:

http://social.microsoft.com/Forums/cs-CZ/24e3cbf1-43af-412d-909a-1a68c72fe527/windows-2008-server-r2-

http://social.msdn.microsoft.com/Forums/zh-CN/c263cd5c-1b2b-48e3-95df-96805bc1e579?forum=sqlserverzhchs

 

 

本文出自 “杜飞” 博客,请务必保留此出处http://dufei.blog.51cto.com/382644/1530567

SQL Server 2005群集更换存储

标签:sql   server   数据库   

原文地址:http://dufei.blog.51cto.com/382644/1530567

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!