تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
معلومة --- اعلامك بريدياً بتوقف SQL Server خطيرة جداً
#1
كاتب الموضوع : BADRMEDIA

عندما تكون مدير للأنظمة ( DBAS ) داخل مؤسسة من المهم جدا لك
مراقبة السيرفرات وأن تكون على علم بحالة توقف أى منها

سنتعرف على طريقتين للاعلام بتوقف السيرفر SQL

الطريقة الأولي : الاعلام البريدى عبر رسالة محلية
الطريقة الثانية : الاعلام البريدى عبر رسالة الكترونية على بريدك


==========================================


الطريقة الأولي :


أنشأ مجلد على القرص المحلي C باسم HeartBeat - تعني نبض القلب


تنشأ الملف ServiceList.txt

وتكتنب بداخله هذه الأسطر وهى الخدمات التى ستراقب
SQL,MSSQLServer
SQL,SQLSERVERAGENT
YUKON,MSSQLServer
YUKON,SQLSERVERAGENT
YUKON,MSSQLServerOLAPService
ETL,MSSQLServer
ETL,SQLSERVERAGENT



ننشأ الملف CheckHeartbeat.vbs داخل المجلد


ونكتب بداخله هذا الكود




كود :
'Objective: TO check the Heartbeat of all SQL Server services
'Author: BADRMEDIA
'Date: April 2, 2007

on error resume next
Set iFSO = CreateObject("Scripting.FilesyStemObject")
Set oFSO = CreateObject("Scripting.FilesyStemObject")

InputFile="c:\Heartbeat\Servicelist.txt"
Outputfile="c:\Heartbeat\Status.txt"

Set ifile = iFSO.OpenTextFile(inputfile)
Set ofile = ofso.createTextFile(OutputFile, True)

Do until ifile.AtEndOfLine
servicelist= ifile.ReadLine
strcomputer=left(servicelist,instr(servicelist,",")-1)
Service =right(servicelist,len(servicelist)-instr(servicelist,","))
ofile.writeline Now()
ofile.writeline "ServerName: " & strcomputer
ofile.writeline "ServiceName: " & Service

Set objWMIService =nothing
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

if err.number<>0 then
ofile.writeline "Error: " & err.number
ofile.writeline "Error: " & err.description
else

Set colItems = nothing
query=""
query = "Select * from Win32_Service where name = '" & Service & "'"
'msgbox query
Set colItems = objWMIService.ExecQuery(query,,48)
if err.number<>0 then
ofile.writeline "Error: " & err.number
ofile.writeline "Error: " & err.description
else
For Each objItem in colItems
ofile.writeline "Status: " & objItem.Status
ofile.writeline "State: " & objItem.State
next

next
end if
end if
err.number=0
Loop

msgbox "SQL Service Status Check completed"


عند تشغيل الملف - سنجد أنه كون ملف باسم Status.txt


اطلعه علي محتواه
}}}}
تم الشكر بواسطة:
#2
الطريقة الثانية

=====================================

لطريقة الأولي :


أنشأ مجلد على القرص المحلي C باسم HeartBeat - تعني نبض القلب


تنشأ الملف ServiceList.txt

وتكتنب بداخله هذه الأسطر وهى الخدمات التى ستراقب

SQL,MSSQLServer
SQL,SQLSERVERAGENT
YUKON,MSSQLServer
YUKON,SQLSERVERAGENT
YUKON,MSSQLServerOLAPService
ETL,MSSQLServer
ETL,SQLSERVERAGENT



ننشأ الملف CheckHeartbeatEmail.vbs داخل المجلد


ونكتب بداخله هذا الكود


كود :
'Objective: TO check the Heartbeat of all SQL Server services and send email
'if any state of service is not running
'Author: BADRMEDIA
'Date: Oct10, 2007
on error resume next
Set iFSO = CreateObject("Scripting.FilesyStemObject")
Set oFSO = CreateObject("Scripting.FilesyStemObject")

'Note: change the email ID to your email ID
NotificationEmail="BADRMEDIA@yahoo.com"
SMTPServer = "111.222.444.111"

InputFile="c:\Heartbeat\Servicelist.txt"
Outputfile="c:\Heartbeat\Status.txt"

Set ifile = iFSO.OpenTextFile(inputfile)
Set ofile = ofso.createTextFile(OutputFile, True)
ofile.writeline "Check Heart beat started"
Do until ifile.AtEndOfLine
servicelist= ifile.ReadLine
strcomputer=left(servicelist,instr(servicelist,",")-1)
Service =right(servicelist,len(servicelist)-instr(servicelist,","))
ofile.writeline Now()
ofile.writeline "ServerName: " & strcomputer
ofile.writeline "ServiceName: " & Service

Set objWMIService =nothing
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

if err.number<>0 then
ofile.writeline "Error: " & err.number
ofile.writeline "Error: " & err.description
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "SQL Server HeartBeat"
objMessage.Sender = NotificationEmail
objMessage.To = NotificationEmail
objMessage.TextBody = "Server :" & strcomputer & " " & err.description
'msgbox y
'The line below shows how to send a webpage from a remote site
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'Name or IP of Remote SMTP Server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer
'Server port (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update

objMessage.Send

else

Set colItems = nothing
query=""
query = "Select * from Win32_Service where name = '" & Service & "'"
'msgbox query
Set colItems = objWMIService.ExecQuery(query,,48)
if err.number<>0 then
ofile.writeline "Error: " & err.number
ofile.writeline "Error: " & err.description

Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "SQL Server HeartBeat"
objMessage.Sender = NotificationEmail
objMessage.To = NotificationEmail
objMessage.TextBody = "Server :" & strcomputer & " " & err.description
'msgbox y
'The line below shows how to send a webpage from a remote site
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'Name or IP of Remote SMTP Server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer
'Server port (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update

objMessage.Send


else
For Each objItem in colItems
ofile.writeline "Status: " & objItem.Status
ofile.writeline "State: " & objItem.State


If objitem.status <>"OK" or objitem.state <>"Running" then
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "SQL Server HeartBeat"
objMessage.Sender = NotificationEmail
objMessage.To = NotificationEmail
objMessage.TextBody = "Server :" & strcomputer & ":" & Service & " Status: " _
& objitem.status & " Status: " & objitem.state
'msgbox y
'The line below shows how to send a webpage from a remote site
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'Name or IP of Remote SMTP Server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer
'Server port (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
objMessage.Send
end if
next
end if
end if

Loop

ofile.writeline "Check Heart beat Completed"




طبعاً أنت ستغير الاميل حسب بريدك SMTP server حسب بريدك

عند تشغيل الملف - سنجد أنه كون ملف باسم Status.txt


اطلعه علي محتواه

وسيقوم بارسال الرسالة لك
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Question [SQL] sql server 2008 fragment Incubus 0 62 20-12-16, 12:10 AM
آخر رد: Incubus
  كورس SQL Server 2008ٌ2 بالعربي أحمد النجار 2 722 07-11-16, 04:29 PM
آخر رد: thevirus
  [مقال] النسخ الاحتياطي التلقائي - Auto Back Up SQL Server Databases ابو ليلى 2 298 07-09-16, 03:53 AM
آخر رد: ابو ليلى
  [SQL] SQL SERVER 2012 adel27 1 553 21-12-15, 09:08 PM
آخر رد: عمر المستشار
  التعامل مع قواعد البيانات Sql Server 2005 خطوة بخطوة Mr. DotNet 10 6,549 29-03-15, 12:31 PM
آخر رد: العيد1403
  استنتاج الارقام العشوائية في ال SQL Server عمر المستشار 1 1,250 01-06-14, 11:03 AM
آخر رد: Sajad
  تنصيب ال SQl Server من خلال Configration File عمر المستشار 2 1,885 14-01-14, 04:58 PM
آخر رد: myalsailamy
  File table in SQL Server 2012 عمر المستشار 0 1,213 10-12-13, 11:33 AM
آخر رد: عمر المستشار
  اخذ ال backup في ال SQL Server عمر المستشار 4 1,593 07-06-13, 01:01 PM
آخر رد: عمر المستشار
  زيادة الاداء فى الsql server smss 1 987 17-04-13, 11:59 PM
آخر رد: Sajad

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم