تقييم الموضوع :
  • 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 ggtt17121985 0 982 12-10-23, 10:22 PM
آخر رد: ggtt17121985
  مساعده في تثبيت SQL Server Owz 1 422 22-09-23, 01:54 AM
آخر رد: Taha Okla
Photo [SQL] رسالة خطأ عند تنصيب sql server 2008 عثمان محمد جبور 2 1,736 07-10-21, 09:02 AM
آخر رد: عثمان محمد جبور
  تاريخ تنصيب ال SQL Server وتاريخ الانتهاء للنسخة ال Evaluation عمر المستشار 1 3,177 21-01-21, 02:00 PM
آخر رد: akrem72
  دورة في برنامج SQL Server 2008 تحت إشراف الاستاذ المهندس أحمد النجار ابو ابراهيم 2 6,320 15-04-20, 06:26 PM
آخر رد: nizar haider
  استفسار حول SQL SERVER MANGER mne3000 1 1,756 05-04-20, 01:21 AM
آخر رد: محمد كريّم
  max From views in sql server nabil.1710 2 2,279 15-01-20, 04:57 AM
آخر رد: EYADISMAIL
  مشكلة في تحميل sql server 2014 انيس القبائلي 0 1,834 09-01-20, 08:22 PM
آخر رد: انيس القبائلي
  [مقال] النسخ الاحتياطي التلقائي - Auto Back Up SQL Server Databases ابو ليلى 5 16,049 24-10-19, 03:43 PM
آخر رد: nouribenyahia
  SQL server tools to build stored procedures Akif 0 2,386 16-05-18, 01:25 PM
آخر رد: Akif

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


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