تقييم الموضوع :
  • 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


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

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كورس SQL Server 2008ٌ2 بالعربي أحمد النجار 2 637 07-11-16, 04:29 PM
آخر رد: thevirus
  [مقال] النسخ الاحتياطي التلقائي - Auto Back Up SQL Server Databases ابو ليلى 2 222 07-09-16, 03:53 AM
آخر رد: ابو ليلى
  [SQL] SQL SERVER 2012 adel27 1 491 21-12-15, 09:08 PM
آخر رد: عمر المستشار
  التعامل مع قواعد البيانات Sql Server 2005 خطوة بخطوة Mr. DotNet 10 6,444 29-03-15, 12:31 PM
آخر رد: العيد1403
  استنتاج الارقام العشوائية في ال SQL Server عمر المستشار 1 1,215 01-06-14, 11:03 AM
آخر رد: Sajad
  تنصيب ال SQl Server من خلال Configration File عمر المستشار 2 1,849 14-01-14, 04:58 PM
آخر رد: myalsailamy
  File table in SQL Server 2012 عمر المستشار 0 1,163 10-12-13, 11:33 AM
آخر رد: عمر المستشار
  اخذ ال backup في ال SQL Server عمر المستشار 4 1,522 07-06-13, 01:01 PM
آخر رد: عمر المستشار
  زيادة الاداء فى الsql server smss 1 957 17-04-13, 11:59 PM
آخر رد: Sajad
  دورة في برنامج SQL Server 2008 تحت إشراف الاستاذ المهندس أحمد النجار ابو ابراهيم 0 2,208 13-03-13, 06:33 AM
آخر رد: ابو ابراهيم

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


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