故障转移群集 SQLSERVER解决方案
适用于群集脚本
背景:
公司由于业务需求搭建了故障转移群集 + 共享存储
解决了单台主机出现问题引起的故障
现在面临新的问题:
SQL数据库将MDF文件存放在共享存储磁盘阵列上,假如A主机故障,B主机顶替服务后需要手动重启B主机的SQL SERVER才能使数据库正常使用。
否则会显示为: 数据库名(恢复挂起)
思路:
利用群集共享存储特点 (当A主机挂载磁盘Y时,B主机无法显示也无法访问Y磁盘) 制作一个开机运行的脚本 循环检测共享盘是否存在
存在 则重启主机SQL相关服务 并记录重启时间作为日志
不存在 等待五秒 继续检测
脚本:
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
set BatRunner=createobject("wscript.shell") '使用dos命令需要
Set fso=CreateObject("Scripting.FileSystemObject") '判断文件是否存在需要
Dim aaa:aaa = 5 '定义一个变量,赋值为5
BatRunner.run "cmd /c ping 10.0.0.104 -t" '判断脚本有无在执行
Do While aaa = 5 '当aaa变量为5时,执行if循环
If fso.FileExists("y:\aaa.txt") Then '判断Y盘是否有aaa.txt文件存在(预先新建)
BatRunner.run "cmd /c net stop SQLAgent$SQL2016" '停止数据库代理服务
BatRunner.run "cmd /c net stop SQLPBDMS$SQL2016" '停止数据移动服务
BatRunner.run "cmd /c net stop SQLPBENGINE$SQL2016" '停止引擎服务
wscript.sleep 1000*5 '等待五秒再执行,若不延时会卡在数据库服务停止命令
BatRunner.run "cmd /c net stop MSSQL$SQL2016" 停止'数据库服务 前几个服务停止后再执行
wscript.sleep 1000*3 '等待3秒再执行 等待服务停止完成
BatRunner.run "cmd /c net start MSSQL$SQL2016" '启动数据库服务
BatRunner.run "cmd /c net start SQLAgent$SQL2016" '启动数据库代理服务
BatRunner.run "cmd /c net start SQLPBDMS$SQL2016" '启动数据移动服务
BatRunner.run "cmd /c net start SQLPBENGINE$SQL2016" '启动引擎服务
Exit do '退出DO循环
else
wscript.sleep 1000*5 '等待五秒再执行
End If '结束if判断
Loop
Currentdate=date() '显示日期需要
CurrentTime=Hour(Now)&":"&Minute(Now)&":"&Second(Now) '显示时间需要
msgbox "执行完成,日期: "&Currentdate & " 时间: " & CurrentTime '弹窗显示执行完成时间 (临时查看)
BatRunner.run "cmd /c echo 10.0.0.13启动服务时间为: >> y:\aaa.txt & echo %date% >> y:\aaa.txt & echo %time% >> y:\aaa.txt & echo -------------------------------------------------- >> y:\aaa.txt " '将运行结束时间追加记录到文本文档 (Y是共享存储盘符)
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
注意:
1、循环时间可自己修改 比如主机重启某项服务需要时间较长
2、SQL SERVER根据安装的功能不同 需要重启的服务可能也不相同
3、共享磁盘盘符根据实际修改 aaa.txt文件手动建立 作为if判断依据
4、有一条执行cmd命令的脚本用来判断脚本有无在执行 脚本执行完成后请手动关闭窗口
4、将脚本设置为开机启动,非特殊情况无需手动执行,否则会重启正常使用的SQL服务
数据库相关服务查看:
这里以SQL代理为例 查看其服务名 及停止 启动
查看服务名:
关闭服务:net stop SQLAgent$SQL2016
启动服务:net start SQLAgent$SQL2016
故障转移群集 SQLSERVER解决方案相关推荐
- sqlserver 2012实施与管理学习笔记(一):选型和部署之单机部署、故障转移群集与日志传送
sqlserver 2012实施与管理学习笔记(一):选型和部署之单机部署.故障转移群集与日志传送 数据库的选型和部署 sqlserver的安装和升级 选择高可用性和灾难恢复技术 故障转移群集 日志传 ...
- 基于故障转移群集的高可用虚拟机解决方案
基于故障转移群集的高可用虚拟机解决方案 推荐 某医药公司现有1台服务器,安装Windows Server 2008 R2,运行专用管理软件,计算机上有USB加密狗.网络中有100个左右的工作站,安装专 ...
- SQL Server 2008 高可用性视频(四)-- 故障转移群集
做数据库的朋友都知道, 其实数据库的工作大致可以分为三类: 数据库设计与开发, 数据库管理, 数据库商业智能. 其中数据库管理的工作大部分是由DBA在做, DBA们除了要保证正常的数据库运行, 还要采 ...
- 搭建Windows Server 2008故障转移群集
本文章将详细讲述基于Windows Server 2008 R2的故障转移群集的实现,包括基本知识介绍,故障转移群集环境准备,实施过程,群集的维护等. 故障转移群集可以配置使用多种不同的配置.组成群集 ...
- 微软故障转移群集服务器要求,故障转移群集概述
故障转移群集概述 08/03/2016 本文内容 适用对象:Windows Server 2012 R2, Windows Server 2012 本主题提供对 Windows Server 2012 ...
- Windows Server 2008 故障转移群集简介
Chuck Timon 概览: "故障转移群集管理"管理单元 新功能和增强功能 备份和还原功能 从 Windows Server 2003 进行迁移 目录 新的管理界面 改进了配置 ...
- 什么是SQL Server故障转移群集
什么是故障转移群集? (What is a failover cluster?) SQL Server故障转移群集由一组服务器组成,这些服务器以特殊方式运行启用群集的应用程序以最大程度地减少停机时间. ...
- sql server 群集_部署SQL Server以使用群集共享卷进行故障转移群集–第1部分
sql server 群集 Microsoft SQL Server provides us with a wide variety of solutions to architect High av ...
- SQL Server Always On可用性组中的Windows故障转移群集仲裁模式
This article gives an overview of Windows Failover Cluster Quorum modes that is necessary for SQL Se ...
- windows2019文件服务器集群,Windows Server2019 故障转移群集
Windows Server2019 故障转移群集 时间:2020-09-17 09:28:48 来源: 作者: 一.前期准备 二.故障转移群集安装及设置 三.iSCSI存储安装 四.为每个节点添 ...
最新文章
- 【疯狂的消化之旅】消化系统简介
- 《网络维护》MAC地址
- django 的form登录 注册
- matlab R2014a添加路径
- 小谈RTMP中AMF3类型的Command message
- 在wp中,使用NavigationService.Navigate导航页面出现错误
- struts2的java.lang.NoSuchMethodException异常处理
- 网站服务器建设方法,如何在服务器上建立站点的方法步骤
- 【Python3网络爬虫开发实战】1.7.3-Appium的安装
- 关于反射的一些总结(转)
- spring boot 报错
- flash图片如何镜像翻转_FLASH 翻转动画
- Hello Ragel -- 生成状态机的神器
- 国内各大高校开源镜像站
- Android静态壁纸和动态壁纸的使用和理解
- Qt 获取 MacBook 设备序列号
- 一个设想:什么是真正的云,及利用树莓派和cloudwall打造你的真正云中心
- 由观影引发的几点人生思考
- 未来计算机网络技术层面的发展,计算机网络技术的未来发展趋势和新媒体影响...
- 【大数据计算】(一) HDFS操作方法和基础编程
热门文章
- 不同计算机用户的区别是什么意思,电脑的系统64位和32位是什么意思呢?
- python装饰器两层和三层_python装饰器为什么要双层嵌套函数
- linux服务器上svn的log_Linux 下 SVN 常用操作命令详解
- linux 挂载ntfs移动硬盘,centos6.5 挂载ntfs格式移动硬盘
- java解决硬编码_工具类 解决硬编码问题
- html音乐播放标签,html5 视频和音乐播放器标签属性
- jdbc和mysql做游戏排行榜_MySQL 和 JDBC编程
- MySQL数据库选型
- app下载获取邀请码php,PHP根据id生成邀请码
- 动态库的隐式链接和显示链接