WSFC SQL应用磁盘阵列替换

简介:

   在上篇文章中,我们讲了WSFC上层文件服务器应用数据磁盘的替换与升级,实际上我们可以有好多个场景去适用这种替换方式,第一,扩容替换 ,就是我们上篇所演示的那样,第二,坏损替换,事先文件服务器好的时候,把数据拷贝出来,某天忽然群集数据磁盘坏了,直接插入新磁盘,把备份的内容还原进来,点击修复磁盘即可。


   那么基于上篇文章提到的内容,本篇我们再来看一种场景,针对于SQL Server群集应用,完整替换群集磁盘阵列,应该怎么处理。


    一个SQL群集会有仲裁磁盘,DTC磁盘,数据磁盘,甚至日志磁盘,我们假设这些磁盘都来自同一个存储阵列,现在要全部换到另外一个新的存储阵列,应该如何操作。


    首先,根据我们上篇文章所提到的修复替换方法,可以参照下列流程操作


  1. 新阵列分配LUN到群集节点

  2. 群集节点识别存储磁盘,联机,初始化,分区,分配非原群集磁盘临时盘符

  3. 首先添加见证磁盘,直接更改见证磁盘为新磁盘

  4. 脱机SQL群集应用,这将停止SQL服务以释放SQL数据文件上任何打开的句柄

  5. 拷贝原SQL数据磁盘完整目录内容到新数据磁盘,可以使用资源管理器,或使用Xcopy,RoboCopy拷贝,如果针对于数据库文件权限有所设置,这里可以进行处理

  6. 记录现有DTC应用配置,删除,基于新磁盘原样重建新的DTC应用

  7. 点击SQL应用现有数据磁盘,右键点击修复,选择新数据磁盘

  8. 联机上线SQL应用

  9. 原SQL数据磁盘自动从SQL群集应用删除,从群集可用磁盘删除


根据老王的研究,针对于SQL群集的磁盘替换,除了这种方法,还有以下几种方法


  1. 新增替换:不采用修复替换,使用新增磁盘至SQL资源组,手动修改盘符。缺点:有一点点复杂,需要理解群集磁盘替换过程,如果不小心操作错误会导致应用不能联机

  2. 备份恢复:网上也有朋友介绍过一种办法,事先针对于数据库进行MDF,LDF的备份,之后新增磁盘,删除原磁盘,附加还原数据库。缺点:如果数据库过多的话,会需要执行多个数据库备份,如果数据库不多,可能适用,但需考虑到数据库权限的恢复

  3. 重装替换:直接重新搭建一个群集,再从备份的数据库文件恢复,缺点:如果数据库实例很多,重装将会非常耗时。如果只有一个数据库实例,可能适用,但仍需考虑数据库权限的恢复。

  4. 工具替换:有一些第三方工具可以帮助我们在两个群集,或者说两个SQL实例之间,或是从文件到数据库,批量还原迁移数据库,同时可以保证数据库权限的恢复,但需要操作人员熟悉第三方工具


基于考虑我们决定采用最为熟悉稳妥的修复替换方式


环境介绍


DNS&iscsi

lan:10.0.0.2 255.0.0.0

iscsi:30.0.0.2 255.0.0.0


08node1

MGMET:10.0.0.3 255.0.0.0 DNS 10.0.0.2

ISCSI:30.0.0.3 255.0.0.0

CLUS:18.0.0.3 255.0.0.0


08node2

MGMET:10.0.0.4 255.0.0.0 DNS 10.0.0.2

ISCSI:30.0.0.4 255.0.0.0

CLUS:18.0.0.4 255.0.0.0


当前SQL群集已经配置完毕DTC,及SQL应用

63bf8bf342347bd08266bb79b27d0145.png

验证SQL Server 故障转移,及查询,可以正常工作

b6e12b71e70e4620718460617a0da94a.png

时间节点来到第二步


各节点得到存储新分配的存储,并且已经完成分区格式化

新分配的S O X 分别为新见证磁盘,新DTC磁盘,新数据磁盘

其中 见证磁盘和DTC磁盘里面的数据可以接受重建,因此不需要考虑盘符问题

b3e80768f84131297a42f079fd7cfbaf.png


添加新阵列见证磁盘,DTC磁盘为群集可用磁盘

423820aa9f3279cec328fd787207a0c1.png

点击群集名称-更多操作-配置群集仲裁设置

8b8b286b45e9ea8ecede1a746ffd6e81.png

在选择见证存储处取消勾选之前旧的存储,勾选新的见证磁盘作为见证

d932d281fd57ad18d2f6e98e69659c52.png

配置完成可以看到,群集见证磁盘已经自动变为了新的阵列磁盘,原有见证磁盘被移动至群集可用存储,这时它已经不起作用,可以选择从群集可用存储中删除。

8f825c1b8a4c4e6be6b314d73fdda3d1.png

这里的见证磁盘替换非常简单,因为见证磁盘的作用无非是在发生分区的时候帮助其中一方获胜存活,储存群集数据库副本,群集数据库副本各个节点本身都有,新的见证磁盘无非是添加进来重新和各节点同步下最新的群集数据库副本


在实际见证磁盘替换过程中,按照正常步骤操作,通常不会出现宕机情况,因为几乎就是一瞬间的事情,2012之后有动态仲裁,更不会宕机,如果在2012之前,发现替换见证磁盘过程意外出现宕机,可以使用强制仲裁启动群集服务。


接下来我们需要处理DTC和SQL,SQL群集应用可其它群集应用不一样的地方就是,它可能随时随地会在用着,有句柄在打开它的文件,因此我们需要脱机SQL群集应用,才可以做拷贝文件和处理DTC的操作,这也是此方案的弊病,如果采用备份替换,工具替换,则不会面临此问题,此过程宕机时间视数据库拷贝时间决定。


脱机SQL群集应用,宕机时间开始

d4e492d5b655497fff99352b175685be.png

在这一步骤中如果发现SQL旧数据磁盘不可见,可以单独把SQL旧数据磁盘进行联机,以便拷贝文件,这时候所有连接到SQL群集应用的句柄已经关闭

268092a4fbc52146e4bd1657e644db9e.png

拷贝整个旧数据目录至新数据磁盘,如果针对于数据库文件有权限设置,这里可以使用xcopy,robocopy进行处理

a46a68822bbb0144a15ca1de17a0c6e8.png

f14b76cb8ff638c192c954e48470b613.png

记录现有DTC应用配置,然后删除,重建

deaa547ec121c003d35464e6a610711e.png


dd4fd30eda8f8a3f70006b8dc3374ee7.png

这里针对于DTC应用,我们可以选择这种直接重建的方式,或者如果您不方便重建,修复替换,新增替换的方式也可以操作,DTC应用本身并没有什么不可以替换的数据,只是用于SQL各节点的间的分布式协调。因此我们采用直接重建没有问题。


最后使用修复替换掉SQL应用的数据磁盘,在SQL应用群集磁盘5的地方右键点击-更多操作 - 修复


这里的群集磁盘5状态一定要是脱机才可以使用修复

e4d0d143e4e3a7cb1cff388afbca2933.png

选择拷贝完成数据的新数据磁盘

6d9fb3b6c07c077a75c127d1f7bfcd54.png

和文件服务器替换一样,修复向导直接自动帮助我们把旧的群集磁盘信息,带入新群集磁盘,确认盘符为旧盘符

7c52405a2b1b2e96d9093d8d3014c14c.png

联机上线SQL群集应用

0f478943a31309c88824890ad6642b8e.png

验证可以正常执行故障转移

5e8c4ef963607a4466bf186bec85a987.png

验证可以正常进行数据库查询

ad1aa817766d8445b44b5f2a71ef918b.png


到这里我们完成了SQL群集应用的全部存储替换

使用这种替换方式的好处,我们不用一个个的去备份还原数据,不用去care权限的问题,因为所有文件我们都是原封不动的拷贝

缺点就是SQL应用的停机时间较长,主要是脱机拷贝数据库目录的时间,具体实际环境下,也许可以有一些更灵活的方式,例如可以下班之前冻结SQL写入句柄,然后拷贝文件出来,下班之后直接替换见证,DTC,然后修复SQL。


以上是老王为大家带来的两篇关于群集替换存储的文章,希望能为感兴趣的朋友带来收获



本文转自 老收藏家 51CTO博客,原文链接:http://blog.51cto.com/wzde2012/1980187

相关文章
|
2月前
|
Java 前端开发 容器
Struts 2:在技术变革的风暴中航行,探索框架的革命性未来与创新融合之路
【8月更文挑战第31天】Struts 2作为一款成熟的企业级Java Web框架,凭借其稳定性和灵活性自2007年以来广受欢迎。它基于MVC设计模式,支持插件架构和RESTful服务,并能与Spring框架良好集成。然而,面对微服务架构和容器化技术(如Docker和Kubernetes)的兴起,Struts 2需提供更轻量级和支持指南来适应变化。通过深化与现代前端框架(如React和Vue.js)及AI技术的集成,并强化安全性与开发工具,Struts 2有望保持竞争力并迎接未来挑战。
41 0
|
2月前
|
SQL 测试技术 数据处理
|
2月前
|
SQL 数据采集 数据挖掘
深入理解SQL中的DISTINCT语句及其应用
【8月更文挑战第31天】
58 0
|
2月前
|
SQL 数据处理 数据库
SQL正则表达式应用:文本数据处理的强大工具——深入探讨数据验证、模式搜索、字符替换等核心功能及性能优化和兼容性问题
【8月更文挑战第31天】SQL正则表达式是数据库管理和应用开发中处理文本数据的强大工具,支持数据验证、模式搜索和字符替换等功能。本文通过问答形式介绍了其基本概念、使用方法及注意事项,帮助读者掌握这一重要技能,提升文本数据处理效率。尽管功能强大,但在不同数据库系统中可能存在兼容性问题,需谨慎使用以优化性能。
36 0
|
2月前
|
SQL 数据管理 关系型数据库
SQL与云计算:利用云数据库服务实现高效数据管理——探索云端SQL应用、性能优化、安全性与成本效益,为企业数字化转型提供全方位支持
【8月更文挑战第31天】在数字化转型中,企业对高效数据管理的需求日益增长。传统本地数据库存在局限,而云数据库服务凭借自动扩展、高可用性和按需付费等优势,成为现代数据管理的新选择。本文探讨如何利用SQL和云数据库服务(如Amazon RDS、Google Cloud SQL和Azure SQL Database)实现高效的数据管理。通过示例和最佳实践,展示SQL在云端的应用、性能优化、安全性及成本效益,助力企业提升竞争力。
48 0
|
2月前
|
SQL 监控 关系型数据库
"SQL性能瓶颈大揭秘:一步步教你揪出慢查询元凶,从根源解决数据库拖沓问题,让应用速度飞起来!"
【8月更文挑战第31天】作为一名数据库管理员或开发者,面对复杂系统时,运行缓慢的SQL查询常常令人头疼。本文将指导你如何诊断并解决这些问题。首先,通过性能监控工具识别出问题查询;其次,利用`EXPLAIN`分析其执行计划,了解索引使用情况;接着,优化查询语句,如使用合适索引、减少JOIN操作等;再者,优化数据库设计,采用分区表或调整硬件资源;最后,持续监控性能并调优。通过这些步骤,可有效提升数据库的整体性能。
33 0
|
2月前
|
SQL 存储 NoSQL
从SQL到NoSQL:理解不同数据库类型的选择与应用——深入比较数据模型、扩展性、查询语言、一致性和适用场景,为数据存储提供全面决策指南
【8月更文挑战第31天】在信息技术飞速发展的今天,数据库的选择至关重要。传统的SQL数据库因其稳定的事务性和强大的查询能力被广泛应用,而NoSQL数据库则凭借其灵活性和水平扩展性受到关注。本文对比了两种数据库类型的特点,帮助开发者根据应用场景做出合理选择。SQL数据库遵循关系模型,适合处理结构化数据和复杂查询;NoSQL数据库支持多种数据模型,适用于非结构化或半结构化数据。SQL数据库在一致性方面表现优异,但扩展性较差;NoSQL数据库则设计之初便考虑了水平扩展性。SQL使用成熟的SQL语言,NoSQL的查询语言更为灵活。
45 0
|
2月前
|
SQL 存储 NoSQL
数据模型与应用场景对比:SQL vs NoSQL
【8月更文第24天】随着大数据时代的到来,数据存储技术也在不断演进和发展。传统的SQL(Structured Query Language)数据库和新兴的NoSQL(Not Only SQL)数据库各有优势,在不同的应用场景中发挥着重要作用。本文将从数据模型的角度出发,对比分析SQL和NoSQL数据库的特点,并通过具体的代码示例来说明它们各自适用的场景。
61 0
|
3月前
|
SQL 存储 安全
SQL数据库:核心原理、应用实践与未来展望
在电子商务领域,SQL数据库用于存储商品信息、用户信息、订单信息等。通过SQL数据库,电商平台可以实现商品的快速检索、用户行为的跟踪分析、订单状态的实时更新等功能,提升用户体验和运营效率。