如何自动检查SQL Server服务或必要的Windows服务

你可能会将重要的工作通过SQL服务器代理,但他们会错过了时间表为SQL的代理可能是意外关闭。可以肯定的是,这将不会再发生。如果SQL Server服务不正常运行SQL Server数据库损坏可能是一个原因。

从配置表

创建一个配置表和列“Servername”,“名”和“DesiredStatus”和填满表格各自的价值观。例如如果你想SQL Server SERVER1的代理服务在“停止”状态,然后配置表应该是这个样子在“停止”状态SERVER1

我们将使用这个配置表比较服务的状态从收集日志,并采取适当的措施。

开始收集日志

检查SQL Server服务或必要的Windows服务 我们将使用powershell收集服务状态从我们所有的SQL服务器,并将它存储在一个表。powershell的输出不正确格式化。所以我们将创建一个函数来解析形式最初每一行输出,然后根据分隔符分割字符串。在这种情况下,分隔符”的空间。通过为每个字符串,函数将返回3列。第一列是服务的状态,第二列是服务的名称,最后一列的显示名称服务。

比较日志和配置表

现在我们可以很容易地比较日志表的配置表。如果服务器的状态服务不兼容,我们可以设置警报DBA团队,以便他们可以检查并采取立即行动。我们也可以创建一个自动修复使用净启动或停止命令。

创建函数dbo.intocolumns (@sourcestring VARCHAR (MAX))返回@tableoutput表(cstate nvarchar (500), cname nvarchar (500), cdspname nvarchar(500)),开始宣布@splitvalue nvarchar(255)宣布@fname VARCHAR(1000)宣布@c1 VARCHAR(100)宣布@c2 VARCHAR(100)宣布@c3 VARCHAR(1000)声明@foundat INT声明@count INT @count = 0而CHARINDEX (“@sourcestring) > 0开始选择@foundat = CHARINDEX (“@sourcestring)选择@splitvalue =子串(@sourcestring 1 @foundat - 1)如果@splitvalue < >“如果@count开始设置@count = @count + 1 = 1开始设置@c1 = @splitvalue结束如果@count = 2开始设置@c2 = @splitvalue结束如果@count = 3开始设置@fname = @splitvalue结束如果@count > 3开始设置@fname = @fname + " " + @splitvalue结束结束选择@sourcestring =子串(@sourcestring @foundat + 1, LEN (@sourcestring) - @foundat)结束设置@fname = @fname + " " + @sourcestring设置@c3 = @fname插入@tableoutput值(@c1, @c2 @c3)返回结束去创建表# # PTBL1 (c1 VARCHAR(1000))插入# # PTBL1 EXEC xp_cmdshell powershell。exe - command“得到服务-电脑SERVERNAME”删除前(3)从# # # # PTBL1——select * PTBL1创建表# # PTBL2 (c1 VARCHAR (200), c2 VARCHAR (200), c3 VARCHAR(1000))宣布CUR1光标的select * # # PTBL1宣布@ value VARCHAR(1000)从CUR1 CUR1开放获取下一个@ value @@FETCH_STATUS = 0时开始插入# # PTBL2 select * FROM dbo.intocolumns (@ value)从CUR1获取下一个@ value结束关闭CUR1释放CUR1 select * FROM # # PTBL2滴水表# # PTBL2表# # PTBL1

作者简介:

尼尔·瓦利DataNumen数据恢万博ManBetX手机下载复专家,Inc .,这是世界领先的数据恢复技术,包括修复Outlook pst的电子邮件复苏和excel软件产品。万博体育app官方网下载访问的更多信息www.circareview.com

留下一个回复

你的电子邮件地址将不会被发表。必填字段标记*