博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server 2005群集更换存储
阅读量:7276 次
发布时间:2019-06-29

本文共 2024 字,大约阅读时间需要 6 分钟。

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

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

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

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

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

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

 

更换群集中的仲裁磁盘:

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

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

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

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

 

更换群集中的数据磁盘

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

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

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

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

具体操作步骤是:

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

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

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

紧接着,修改磁盘盘标:

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

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

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

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

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

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

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

修改依存关系:

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

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

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

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

至此,操作就操作。

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

 

另外,需要注意:

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

 参考:

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

-

 

 

 本文转自 dufei 51CTO博客,原文链接:http://blog.51cto.com/dufei/1530567,如需转载请自行联系原作者

你可能感兴趣的文章
CRM项目完成实现
查看>>
【Subsets】cpp
查看>>
word2vec概述
查看>>
Wampserver #1045 无法登录 mysql 服务器
查看>>
JavaScript操作BOM对象
查看>>
一道挺好玩的题,可用来作面试题【来自20111224 Topcoder DIVI 250题】
查看>>
UML类图几种关系的总结
查看>>
黄聪:使用$.getJSON解决ajax跨域访问 JQuery 的跨域方法(服务器端为wordpress程序)...
查看>>
进程间通信【转】
查看>>
asp.net Excel操作-读写
查看>>
架构之谈
查看>>
1.HTML复习(常用的标签,属性,div布局,meta)
查看>>
java最新全套学习视频(java,前端,其他语言)
查看>>
多年心愿,终于完成,热泪盈眶啊。。。Adrew NG 的 机器学习
查看>>
R语言markov switching model马尔可夫转换模型研究商业周期
查看>>
设计模式学习
查看>>
Robot Framework(五)使用测试库
查看>>
Spark2 Model selection and tuning 模型选择与调优
查看>>
使用vs code开发.net core2.2时OmniSharp.MSBuild.ProjectLoader无法解析"xxx"的解决方法
查看>>
iOS之 opencv3.0.framework
查看>>