Upload
know2pro
View
256
Download
1
Embed Size (px)
DESCRIPTION
DBMS ไทย บทที่ 19 การทำงานโดยอัตโนมัติ
Citation preview
บทท�� 19 การทางานโดยอั�ตโนมั�ต�
การก�าหนดงานแบบอั�ตโนมั�ต�ใน SQL Server มั�ขึ้��นมัา เพื่��อัทำ�าให�งานทำางด�านแอัดมั�น หร�อัเซิ�ร�ฟเวอัร�บางอัย่!างทำ��ทำ�าซิ��าเป็#นป็ระจำ�าทำ�างานได�แบบอั�ตโนมั�ต� ซิ��งส่!วนใหญ่!จำะเป็#นงานทำ��เราส่ามัารถคาดเดาได�ล่!วงหน�า เพื่��อัให�เราส่ามัารถใช้�เวล่าทำ��เหล่�อัเพื่��อัทำ�างานอั��นทำ��ส่�าค�ญ่กว!า เช้!น งานเก��ย่วก�บการพื่�ฒนาระบบแล่ะทำ�าการป็ร�บป็ร.งป็ระส่�ทำธิ�ภาพื่ขึ้อังระบบให�ด�ขึ้��น ต�วอัย่!างเช้!น ถ�าเราต�อังการทำ��จำะทำ�าการแบ1คอั�พื่เซิ�ร�ฟเวอัร�ทำ.กส่�ป็ดาห� หล่�งจำากช้��วโมังการทำ�างาน เราส่ามัารถก�าหนดเวล่าให�ทำ�างานน��โดย่อั�ตโนมั�ต�ได� โดย่ถ�าระหว!างการทำ�างานเก�ดป็2ญ่หาขึ้��น SQL Server จำะบ�นทำ�กเหต.การณ์�น��นไว�แล่ะแจำ�งให�เราทำราบได�ด�วย่
ส่�าหร�บใน SQL Server มั�เคร��อังมั�อัทำ��ช้!วย่ให�เราส่ามัารถทำ�างานแบบอั�ตโนมั�ต� ซิ��งก1ค�อั job เราส่ามัารถก�าหนด job เป็#นขึ้��นตอันการทำ�างานทำ��เราต�อังการ แล่ะย่�งส่ามัารถแจำ�ผู้5�ด5แล่ระบบเมั��อัทำ�างานส่�าเร1จำ หร�อัไมั!ส่�าเร1จำได� โดย่ SQL Server มั�เคร��อังมั�อัต!าง ๆ ทำ��ช้!วย่ให�เราทำ�างานก�บ job ได�อัย่!างส่ะดวก ซิ��งเราจำะได�ศึ�กษาก�นต!อัไป็
นอักจำากน��แล่�ว SQL Server ก1ย่�งมั� Alerts ทำ��ทำ�างานได�เป็#นอัย่!างด�ก�บระบบป็ฏิ�บ�ต�การ Windows 2003 / Vista โดย่ทำ�� Alerts จำะมั�การตอับส่นอังเมั��อัมั�เหต.การณ์�บางอัย่!างเก�ดขึ้��นมัา เช้!น เน��อัทำ��ขึ้อังด�ส่ก�ทำ��เก1บไฟล่�ขึ้�อัมั5ล่เก�ดเต�มัขึ้��นมัา เป็#นต�น โดย่เราต�อังตอับส่นอังต!อั Alert ด�วย่การก�าหนดให�ทำ�างานบางอัย่!างทำ��อัาจำจำะเป็#นการร�น job
หร�อัค�าส่��งส่คร�ป็ต� Transact-SQL บางอัย่!างโดย่อั�ตโนมั�ต�ก1ได�
ส่!วนป็ระกอับขึ้อัง SQL Server ทำ��ช้!วย่ในการทำ�างานแบบอั�ตโนมั�ต�ส่�าหร�บอังค�ป็ระกอับทำ��ช้!วย่ให�เราส่ามัารถจำ�ดการงานต!าง ๆ ใน SQL
Server ได�โดย่อั�ตโนมั�ต�มั�ด�งต!อัไป็น��
Job เป็#นงานทำ��เราต�อังการให� SQL Server ทำ�าให�ซิ��งอัาจำจำะเป็#นงานทำ��ส่ามัารถร�นหน��งคร��งหร�อัหล่าย่คร��งก1ได�ตามัเวล่าทำ��เราก�าหนด แล่ะจำะมั�การแจำ�งให�ทำราบด�วย่ว!าร�นได�ส่�าเร1จำหร�อัไมั! การร�น job จำะส่ามัารถทำ�าส่��งต!าง ๆ ด�งต!อัไป็น��
จำะทำ�าบนเคร��อังโล่คอัล่เคร��อังเด�ย่ว หร�อับนร�โมัทำเซิ�ร�ฟเวอัร�หล่าย่ๆ เคร��อังก1ได�
จำะทำ�าทำ��เวล่าใดเวล่าหน��ง หร�อัทำ�าซิ��า ๆ ก�นตามัเวล่าทำ��ก�าหนดก1ได�
Alert เป็#นส่�ญ่ญ่าณ์ทำ��เก�ดไมั!เป็#นเวล่า แต!เก�ดเมั��อัมั�เหต.การณ์�ทำ��เราได�ก�าหนดไว� เช้!น เน��อัทำ��ขึ้อังด�ส่ก�ทำ��เก1บไฟล่�ขึ้�อัมั5ล่เก�ดเต1มัขึ้��นมัา เป็#นต�น เราส่ามัารถก�าหนดเง��อันไขึ้ทำ��จำะทำ�าให�เก�ด Alert ขึ้��นมัาได� แล่ะให�ส่��งต!าง ๆ ต!อัไป็น��ทำ�างานเมั��อัเก�ด Alert ขึ้��น
แจำ�งเต�อันโอัเป็อัเรเตอัร�ทำ��ได�ก�าหนดไว� ให�จำ�ดการงานต!อัไป็
ร�น job ทำ��เราได�ส่ร�างไว� เพื่��อัตอับส่นอังต!อั
Alert น��น ทำ�าการส่!งอั�เว1นต�ไป็ย่�งเซิ�ร�ฟเวอัร�อั��นเพื่��อัให�
ทำ�างานทำ��ต�อังการต!อัไป็ Operators โอัเป็อัเรเตอัร�เป็#นบ.คคล่ทำ��
มั�หน�าทำ��ร �บผู้�ดช้อับในการด5แล่การทำ�างานขึ้อัง SQL Server
โดย่ทำ��โอัเป็อัเรเตอัร�จำะได�ร�บการเต�อันจำาก Alert ด�วย่ว�ธิ�ต!าง ๆ
ด�งต!อัไป็น�� ส่!งอั�เมัล่� เราส่ามัารถก�าหนดช้��อั
อั�เมัล่�ส่�าหร�บโอัเป็อัเรเตอัร�เป็#นกล่.!มัเด�ย่วก�น ซิ��งว�ธิ�น��จำะทำ�าให�โอัเป็อัเรเตอัร�หล่าย่ๆ คนได�ร�บการเต�อันในเวล่าเด�ย่วก�น
ส่!วนป็ระกอับต!างๆ ต!อัไป็น��ทำ��จำะช้!วย่ในการ
ส่!งเพื่จำเจำอัร�ไป็ให�ก�บโอัเป็อัเรเตอัร�
ส่!งขึ้�อัความัไป็ย่�งเคร��อังอั��น ๆในเคร�อัขึ้!าย่โดย่ใช้� Net send
ร5 �จำ�กก�บเซิอัร�ว�ส่ SQL Server Agent
ในการใช้� job แล่ะ Alert เราจำะต�อังทำ�างานก�บ SQL Server
Agent ซิ��งเป็#นเซิอัร�ว�ส่ทำ��ร �นบน Windows 2003 / Vista ทำ��ทำ�าหน�าทำ��ในการร�น job โดย่จำะทำ�าการตรวจำตราส่ถานะขึ้อัง SQL Server แล่ะทำ�าให�เก�ด Alert ขึ้��นเมั��อัมั�เหต.การณ์�ต!าง ๆทำ��งน��เราจำะต�อังส่��งให�เร��มัเซิอัร�ว�ส่ SQL Server Agent ก!อันจำ�งจำะร�นงานแบบอั�ตโนมั�ต�ได�
Note SQL Server Agent ส่น�บส่น.นการทำ�างานบน Windows XP
ด�วย่ แต! SQL Server Agent จำะไมั!ส่ามัารถใช้� Windows
Authentication ได� ทำ�าให�ต�อังใช้� SQL Server Authentication แทำน
เมั��อัร�น job ใด ๆ บน Windows XP
การเร��มัต�นเซอัร�วิ�ส SQL Server Agent
เราส่ามัารถเร��มัต�นการทำ�างานขึ้อังเซิอัร�ว�ส่น��ได�จำาก
Management Studio โดย่ให�เราทำ�าตามัขึ้��นตอันต!อัไป็น��
การก�าหนดค.ณ์ส่มับ�ต�ขึ้อัง SQL Server Agent
เราส่ามัารถก�าหนดค.ณ์ส่มับ�ต�ต!าง ๆ ขึ้อัง SQL Server Agent
ได�ด�งต!อัไป็น��
ให�เราคล่�กป็.;มัขึ้วาทำ�� SQL Server Agent
เล่�อัก Start เพื่��อัเร��มัต�นเซิอัร�ว�ส่
หน�าต!าง SQL Server Agent Properties มั�ส่!วนป็ระกอับต!างๆ ด�งน�� เพจ General ก�าหนดค!าพื่��นฐานทำ��วไป็ เพจ Advanced ก�าหนดค!าขึ้��นส่5ง ส่�าหร�บระบบซิ�บซิ�อัน เพจ Alert System ก�าหนดค!าเมัล่� ส่�าหร�บส่!งเมัล่�แจำ�งเต�อัน
การเก�ด Alert
เพจ Job Systemก�าหนดค!าการทำ�างานขึ้อัง Job
เพจ Connection ก�าหนดช้��อัเซิ�ร�ฟเวอัร� ช้��อัผู้5�ใช้� รห�ส่ผู้!านขึ้อังเซิ�ร�ฟเวอัร�ทำ��เราต�อังการร�น Job
1.ให�เราคล่�กป็.;มัขึ้วาทำ�� SQL Server Agent
เล่�อัก Properties เพื่��อัก�าหนดค.ณ์ส่มับ�ต�ต!าง
ๆ ให�ก�บ SQL Server
Agent
2.จำะป็รากฏิหน�าต!างให�เราก�าหนดค.ณ์ส่มับ�ต�ต!าง ๆ ขึ้อัง SQL Server
Agent
เพจ History ก�าหนดค!าการเก1บป็ระว�ต�การทำ�างานขึ้อัง Job
ส่�าหร�บในบางคร��ง เซิอัร�ว�ส่ SQL Server Agent อัาจำจำะจำ�าเป็#นต�อังต�ดต!อัก�บเซิอัร�ว�ส่ SQL Server เพื่��อัทำ�างานบางอัย่!างร!วมัก�น ซิ��งเราส่ามัารถก�าหนดล่1อักอั�นทำ��ใช้�เพื่��อัต�ดต!อัก�บเซิอัร�ว�ส่ SQL Server ให�ก�บเซิอัร�ว�ส่ SQL Server Agent ได�ด�งต!อัไป็น��
ในการก�าหนดรห�ส่ทำ��ใช้�ในการร�นเซิอัร�ว�ส่ SQL Server เราส่ามัารถก�าหนดได�ทำ��ง Windows Authentication หร�อั SQL Server
Authentication โดย่ให�เราใส่!ล่1อักอั�น แล่ะรห�ส่ผู้!านในช้!อัง Login
แล่ะ Password ตามัล่�าด�บเซิอัร�ว�ส่ SQL Server แล่ะเซิอัร�ว�ส่ SQL Server Agent จำะ
ทำ�างานร!วมัก�น โดย่ SQL Server Agent เป็ร�ย่บเหมั�อันผู้5�ใช้� (Robot) คนหน��งทำ��ใช้�ช้��อัล่1อักอั�น แล่ะรห�ส่ผู้!านทำ��เราก�าหนดให�ในเพื่จำ Connection ในการเช้��อัมัต!อัก�บเซิอัร�ว�ส่ SQL Server เพื่��อัทำ�างานทำ��เรา
ต��งเวล่าไว�
การกาหนดให�ร�นเซอัร�วิ�ส SQL Server Agent โดยอั�ตโนมั�ต�
1. เขึ้�าส่5!เพื่จำ Connection
2. .ให�เราก�าหนดรห�ส่ล่1อักอั�นทำ��เราจำะใช้�เมั��อัต�ดต!อัก�บเซิอัร�ว�ส่ SQL
ป็กต�เซิอัร�ว�ส่ SQL Server Agent จำะไมั!ร�นอั�ตโนมั�ต�เมั��อัเป็=ดว�นโดวส่� เราส่ามัารถต��งให�ทำ�างานอั�ตโนมั�ต�ได�ทำ��โป็รแกรมั SQL
Server Configuration Manager
ร��จ�กก�บ Job
1.เป็=ดโป็รแกรมั SQL
Server Configuration
Manager ขึ้ณ์ะทำ��เซิอัร�ว�ส่ SQL Server
Agent ทำ�างานอัย่5!
2. คล่�กเมัาส่�ป็.;มัขึ้วาเล่�อักค�าส่��ง Properties
3.ทำ��แทำ1บ Service เล่�อักต�วเล่�อัก Automatic ให�ก�บ Start Mode
4.คล่�กป็.;มั
เมั��อัเซิอัร�ว�ส่ SQL Server Agent ร�นอัย่5! เราส่ามัารถให�งานแอัดมั�น (Admin Job) ทำ�างานโดย่อั�ตโนมั�ต�ได�ด�วย่ Job โดย่เราส่ามัารถส่��งร�น Job ด�วย่ตนเอัง หร�อัต��งเวล่าร�น Job ไว� หร�อัให�ร�น Job เพื่��อัทำ��จำะตอับส่นอังต!อั Alerts ทำ��เก�ดก1ได�
Job ส่ามัารถร�นบนเซิ�ร�ฟเวอัร�เพื่�ย่งต�วเด�ย่ว หร�อับนเซิ�ร�ฟเวอัร�หล่าย่ๆ ต�วก1ได� เพื่��อัช้!วย่ให�การทำ�างานมั�ป็ระส่�ทำธิ�ภาพื่มัากย่��งขึ้��น
ส่�าหร�บการร�น Job บนเคร��อังเซิ�ร�ฟเวอัร�หล่าย่ ๆ เคร��อัง เราจำะต�อังก�าหนดอัย่!างน�อัย่เซิ�ร�ฟเวอัร�หน��งเคร��อังให�เป็#น Master Server เพื่��อัทำ�าหน�าทำ��กระจำาย่งานไป็ย่�งเซิ�ร�ฟเวอัร�อั��น
ทำ.กล่1อักอั�นใน SQL Server ส่ามัารถส่ร�าง Job ได� แต! Job จำะส่ามัารถแก�ไขึ้ได�โดย่เจำ�าขึ้อังทำ��ส่ร�าง Job น��นขึ้��นมัา แล่ะส่มัาช้�กขึ้อัง
Sysadmin Fixed Server Role เทำ!าน��น
การก�าหนดน�ย่ามัขึ้อัง Job
Job เป็#นช้.ดค�าส่��งการทำ�างานทำ��จำะถ5กทำ�าโดย่ SQL Server Agent
เราส่ามัารถใช้�ค�าส่��งต!าง ๆ เช้!น Transact – SQL ค�าส่��ง Command –
line ก�าหนดขึ้��นตอันการทำ�างานใน Job ได�เราส่ร�าง Job ขึ้��นมัาเพื่��อัร�นงานทำ��ต�อังทำ�าเป็#นป็ระจำ�า หร�อังานทำ��
ส่ามัารถก�าหนดตารางเวล่าให�ร�นได� โดย่จำะส่ามัารถแจำ�งให�ผู้5�ด5แล่ระบบทำราบถ�งส่ถานการณ์�ทำ�างานขึ้อังแต!ล่ะ Job โดย่การแจำ�งเต�อันผู้!านการใช้� Notifications ว!า Job น��นร�นส่�าเร1จำหร�อัไมั! ซิ��งเราจำะกล่!าวถ�งต!อัไป็
ขึ้��นตอันในการส่ร�าง Job ขึ้��นมัาใช้�งาน มั�ขึ้� �นตอันต!าง ๆ ด�งต!อัไป็น��
Note การแก�ไขึ้เจำ�าขึ้อัง (Owner) ขึ้อัง Job
ส่�าหร�บ Job ทำ��ส่ร�างขึ้��นมัาน��น จำะมั�เพื่�ย่งเจำ�าขึ้อัง Job หร�อัส่มัาช้�กขึ้อัง Sysadmin Fixed Server Role เทำ!าน��นทำ��ส่ามัารถเป็ล่��ย่น
1.ให�เราคล่�กป็.;มัขึ้วาทำ�� Job แล่ะเล่�อัก New Job
เพื่��อัส่ร�าง Job ใหมั!
Name ก�าหนดช้��อัขึ้อัง Owner ก�าหนดช้��อั
Category ก�าหนดหมัวดหมั5!ให�
Description ก�าหนดค�าอัธิ�บาย่
เพื่จำ General ก�าหนดขึ้�อัมั5ล่พื่��นฐานเก��ย่วก�บ Job
Enable เป็=ดให� Job ทำ�างานตามัป็กต� (หากไมั!เล่�อักไว�จำะเป็#นการ
น�ย่ามัขึ้อัง Job ทำ��มั�อัย่5! ส่��งเร��มัต�นการทำ�างาน Job หร�อัหย่.ดการทำ�างานขึ้อัง Job โอันส่�ทำธิ�ความัเป็#นเจำ�าขึ้อังให�ก�นคนอั��นได�
ราย่ล่ะเอั�ย่ดเพื่��มัเต�มัขึ้อังเพื่จำ Step
Job จำะป็ระกอับด�วย่ขึ้��นตอันการทำ�างานบนพื่��นฐานขึ้�อัมั5ล่ หร�อับนเซิ�ร�ฟเวอัร� โดย่แต!ล่ะ Job จำะต�อังมั�อัย่!างน�อัย่หน��งขึ้��นตอัน ซิ��งขึ้��นตอันน��นอัาจำจำะเร�ย่กโป็รแกรมัขึ้��นมัาทำ�างาน (ไฟล่�ทำ��มั�ส่!วนขึ้ย่าย่เป็#น
EXE) เร�ย่กค�าส่��ง Transact – SQL หร�อัส่คร�ป็ต�ขึ้อัง Microsoft
Active X ซิ��งส่!วนน��เราไมั!ขึ้อักล่!าวถ�ง
Note ส่�าหร�บขึ้��นตอันแต!ล่ะช้น�ด จำะมั�ราย่ล่ะเอั�ย่ดด�งต!อัไป็น�� ขึ้��นตอันทำ��เร�ย่กไฟล่�โป็รแกรมั (ไฟล่�ทำ��มั�ส่!วนขึ้ย่าย่เป็#น EXE)
ค�อัช้.ดค�าส่��งขึ้อังระบบป็ฏิ�บ�ต�การ หร�อัโป็รแกรมัทำ��ส่ามัารถร�นได� ซิ��งจำะเป็#นไฟล่�ทำ��ล่งทำ�าย่ด�วย่นามัส่ก.ล่ bat, cmd, com หร�อั exe
Job step list แส่ดงขึ้��นตอันการทำ�างานทำ��งหมัดขึ้อัง Job
Start step เล่�อักขึ้��นตอันเร��มัต�นในการทำ�า Job
Delete ป็.;มัล่บขึ้��นตอัน ใน Job
Edit ป็.;มัเป็ล่��ย่นแป็ล่งแก�ไขึ้ขึ้��นตอันใน
Insert ป็.;มัแทำรกขึ้��นตอันใน Job
New ป็.;มัเพื่��มัขึ้��นตอันใน Job
Move step ป็.;มัล่5กศึรขึ้��นเพื่��อัป็ร�บล่�าด�บการทำ�างานใน
เมั��อัส่ร�างขึ้��นตอันทำ��เป็#นค�าส่��งช้น�ดน�� จำะต�อังก�าหนดส่��งต!างๆ
ด�งต!อัไป็น�� ค!าส่!งกล่�บ ถ�าค�าส่��งน��นเส่ร1จำส่มับ5รณ์� ซิ��งเราส่ามัารถ
ตรวจำส่อับการทำ�างานได�จำากค!าน�� พื่าทำขึ้อังไฟล่�โป็รแกรมั เช้!น C:\ sqlcmd.exe -e -q
“sp_who” ขึ้��นตอันทำ��เร�ย่กค�าส่��ง Transact – SQL
เมั��อัเราส่ร�างขึ้��นตอันจำากค�าส่��ง Transact – SQL เราจำะต�อังก�าหนดส่��งต!าง ๆ ด�งต!อัไป็น��
ก�าหนดฐานขึ้�อัมั5ล่ทำ��จำะทำ�างานก�บ Job น��นๆ ก�าหนดช้.ดขึ้อังค�าส่��ง Transact – SQL ,
Stored Procedures ทำ��จำะเป็#นแต!ล่ะขึ้��นตอัน ใน Job
นอักจำากน�� เราย่�งส่ามัารถใช้�ไฟล่�ค�าส่��ง Transact – SQL
ทำ��มั�อัย่5!แล่�วเป็#นค�าส่��งส่�าหร�บขึ้��นตอันในการทำ�างานขึ้อัง
Job ก1ได� ขึ้��นตอันทำ��เร�ย่กส่คร�ป็ต�ขึ้อัง Microsoft
ActiveXในเพื่จำ Steps เมั��อัเราคล่�กป็.;มั New, lnsert หร�อั Edit จำะเขึ้�าส่5!
หน�าต!าง Job Step Properties ทำ��เราจำะส่ามัารถก�าหนดขึ้��นตอันการทำ�างานภาย่ใน job ได�
ราย่ล่ะเอั�ย่ดขึ้อังหน�าต!าง ๆ Job Step Properties
เพื่จำ General
Step name ต��งช้��อัขึ้��นตอัน Type ก�าหนดป็ระเภทำค�าส่��ง เช้!น
Operating System (cmdExec). Transact SQL หร�อัอั��นๆ
Run as ก�าหนดช้��อัส่มัาช้�กทำ��เป็#นผู้5�ส่� �งทำ�าค�าส่��งน��
Database ก�าหนดฐานขึ้�อัมั5ล่ทำ��ถ5กค�าส่��งน��กระทำ�า
Command ก�าหนดค�าส่��งทำ��ต�อังการทำ�าในช้!อังน��
Process exit code of a successful command ก�าหนดค!าทำ��ค�นกล่�บ เมั��อัขึ้��นตอันน��ทำ�างานส่�าเร1จำ (ป็รากฏิเมั��อัเราเล่�อัก Type เป็#น
Operating System (CmdExec)) Open, Select All, Copy, Paste เป็#นป็.;มัค�าส่��งทำ��ใช้�ก�บโค�ดใน
ช้!อัง Command
Parse เป็#นป็.;มัทำ��ใช้�ตรวจำความัถ5กต�อังขึ้อังร5ป็ป็ระโย่คค�าส่��งในช้!อัง
Command (ป็รากฏิเมั��อัเราเล่�อัก
Type เป็#น Transact-SQL)
เพื่จำ Advanced
On success action ก�าหนดส่��งทำ��จำะทำ�าเมั��อัค�าส่��งน��ทำ�าส่�าเร1จำ
Retry attempts ก�าหนดจำ�านวนคร��งทำ��พื่ย่าย่ามัทำ�าค�าส่��งน��ใหมั!เมั��อัล่�มัเหล่ว
Retry interval (minutes) ก�าหนดเวล่าห!างขึ้อังความัพื่ย่าย่ามัใหมั!แต!ล่ะคร��ง
On failure action ก�าหนดส่��งทำ��จำะทำ�าเมั��อัค�าส่��งน��ทำ�าไมั!ส่�าเร1จำ
Output file เขึ้�ย่นขึ้�อัมั5ล่เอัาทำ�พื่.ตล่งในไฟล่�ทำ��ก�าหนดในช้!อังน��
Append output to existing file เขึ้�ย่นขึ้�อัมั5ล่เอัาทำ�พื่.ตแบบไมั!ทำ�บขึ้อังเด�มั แต!ตอัทำ�าย่ไฟล่�ไป็เร��อัย่ ๆ
Log to table เขึ้�ย่นขึ้�อัมั5ล่เอัาทำ�พื่.ตล่งในตาราง
sysjobstepslogs ในฐานขึ้�อัมั5ล่
msdb Append output to existing entry in table เขึ้�ย่นขึ้�อัมั5ล่
เอัาทำ�พื่.ตต!อัทำ�าย่ตารางไป็เร��อัย่ ๆ Include step output in history เขึ้�ย่นขึ้�อัมั5ล่เอัาทำ�พื่.ตล่งใน
job history Run as user ก�าหนดช้��อัส่มัาช้�กทำ��ทำ�าการร�นค�า
ส่��งน��
ราย่ล่ะเอั�ย่ดเพื่��มัเต�มัเก��ย่วก�บการส่ร�างขึ้��นตอันขึ้อัง job
ส่มัาช้�กใน Sysadmin Fixed Server Role ส่ามัารถส่ร�างขึ้��นตอันขึ้อัง Job ให�ทำ�างานในนามัขึ้อังส่มัาช้�กคนอั��นๆได� ต�วอัย่!างเขึ้!น
sa จำะส่ามัารถส่ร�างขึ้��นตอันการส่ร�างฐานขึ้�อัมั5ล่ในนามัผู้5�ใช้�ช้��อั
Tharin ได� ถ�า job หน��ง ๆ มั�หล่าย่ขึ้��นตอัน เราส่ามัารถจำ�ดล่�าด�บการทำ�างาน
ขึ้อังแต!ล่ะขึ้��นตอันได� แล่ะส่ามัารถเพื่��มัขึ้��นตอันใหมั! ล่บขึ้��นตอันทำ��มั�อัย่5! แล่ะก�าหนดล่�าด�บขึ้อังขึ้��นตอันใหมั!ได� ซิ��งการเป็ล่��ย่นแป็ล่งจำะมั�ผู้ล่ในคร��งต!อัไป็ทำ��มั�การร�น job น��
เราส่ามัารถก�าหนดส่��งทำ��จำะให�ทำ�า เมั��อัขึ้��นตอันน��นทำ�าส่�าเร1จำ หร�อัไมั!ส่�าเร1จำขึ้��นมัาได� แล่ะก�าหนดจำ�านวนคร��ง แล่ะช้!วงเวล่าระหว!างแต!ล่ะคร��งทำ��จำะร�นขึ้��นตอันทำ��ไมั!ส่�าเร1จำน��นใหมั!ได�ด�วย่
แต!ล่ะขึ้��นตอันใน job จำะต�อังมั�ความัส่มับ5รณ์�ในต�วมั�นเอัง โดย่
Job จำะไมั!ส่ามัารถส่!งค!าบ5ล่�น ขึ้�อัมั5ล่ หร�อัค!าต�วเล่ขึ้ระหว!างแต!ล่ะขึ้��นตอันได� อัย่!างไรก1ตามัเราส่ามัารถส่!งค!าทำ��ส่ร�างด�วย่ค�าส่��ง Transact – SQL จำาก Job หน��งไป็ย่�ง Job อั��นได� โดย่ใช้�การฝากใส่!ตาราง หร�อัตารางช้��วคราวแบบโกดบอับก1ได� นอักจำากน�� เราย่�งส่ามัารถส่!งค!าจำากขึ้��นตอันหน��งใน Job ไป็ย่�งขึ้��นตอันอั��นได� โดย่ใช้�การเก1บในไฟล่�ขึ้�อัมั5ล่ก1ได�
ราย่ล่ะเอั�ย่ดเพื่��มัเต�มัขึ้อังเพื่จำ Schedules
เพื่จำน��จำะเป็#นการต��งเวล่าการทำ�างานขึ้อัง Job โดย่เราส่ามัารถระบ.เวล่าได�หล่าย่ ๆแบบด�งต!อัไป็น��
ทำ�าทำ�นทำ�ทำ�� SQL Server Agent เร��มัต�นการทำ�างาน ทำ�าทำ�นทำ�ทำ��การใช้�งาน CPU อัย่5!ต��ากว!าระด�บทำ��เราก�าหนดว!า
ว!างงาน“ ”
ทำ�าเป็#นป็ระจำ�าทำ.กว�น ส่�ป็ดาห� เด�อัน หร�อัป็? ทำ�าคร��งเด�ย่ว ณ์ ว�นแล่ะเวล่าทำ��ก�าหนด
ในเพื่จำ Schedules เมั��อัเราคล่�กป็.;มั New หร�อั Edit จำะเขึ้�าส่5�หน�าต!าง Job Schedule Properties ทำ��เราจำะส่ามัารถก�าหนดเวล่าทำ��จำะให� Job
ทำ�างานได�
3.2 ก�าหนดค!าตามัต�อังการในหน�าต!าง Job Step Properties
เพื่จำ General
ราย่ล่ะเอั�ย่ดเพื่��มัเต�มัขึ้อังเพื่จำ Jov Step Properties
เพื่จำ General
Name ต��งช้��อัขึ้��นตอัน Type ก�าหนดป็ระเภทำค�าส่��งเช้!น
Operating System (CmdExec), Transact-SQL หร�อัอั��น ๆ
Run as ก�าหนดช้��อัส่มัาช้�กทำ��เป็#นผู้5�ส่!งทำ�าค�าส่��งน��
Database ก�าหนดฐานขึ้�อัมั5ล่ทำ��ถ5กค�าส่��งน��กระทำ�า
Command ก�าหนดค�าส่��งทำ��ต�อังการทำ�าในช้!อังน��
3.3 ก�าหนดค!าตามัความัต�อังการในหน�าต!าง Job Step
Properties เพื่จำ Advanced
Process exit code of a successful command ก�าหนดค!าทำ��ค�นกล่�บ เมั��อัขึ้��นตอันน��ทำ�างานส่�าเร1จำ (ป็รากฏิเมั��อัเราเล่�อัก
Type เป็#น Operating System
(CmdExec)) Open , Select All, Copy ,Paste เป็#น
ป็.;มัค�าส่��งทำ��ใช้�ก�บโค�ดในช้!อัง Command
Parseเป็#นป็.;มัทำ��ใช้�ตรวจำความัถ5กต�อังขึ้อังร5ป็ป็ระโย่คค�าส่��งในช้!อัง
Command(ป็รากฏิเมั��อัเราเล่�อัก Type เป็#น
Transact-SQL)เพื่จำ Advanced
On success action ก�าหนดส่��งทำ��จำะทำ�าเมั��อัค�าส่��งน��ทำ�าเส่ร1จำ
Retry attempts ก�าหนดจำ�านวนคร��งทำ��พื่ย่าย่ามัทำ�าค�าส่��งน��ใหมั!เมั��อัล่�มัเหล่ว
On failure action ก�าหนดส่��งทำ��จำะทำ�าเมั��อัค�าส่��งน��ทำ�าไมั!ส่�าเร1จำ
Output file เขึ้�ย่นขึ้�อัมั5ล่เอัาทำ�พื่.ตล่งในไฟล่�ทำ��ก�าหนดในช้!อังน��
Append output to existing file เขึ้�ย่นขึ้�อัมั5ล่เอัาทำ�พื่.ตแบบไมั!ทำ�บขึ้อังเด�มั แต!ต!อัทำ�าย่ไฟล่�ไป็เร��อัย่ ๆ
Log to table เขึ้�ย่นขึ้�อัมั5ล่เอัาทำ�พื่.ตล่งในตาราง sysjobstepslogs ในฐานขึ้�อัมั5ล่ msdb
Append output to existing entry in table เขึ้�ย่นเอัาทำ�พื่.ตต!อัทำ�าย่ตารางไป็เร��อัย่
ๆ
include step output in history เขึ้�ย่นขึ้�อัมั5ล่เอัาทำ�พื่.ตล่งใน Job history
Rus as user ก�าหนดช้��อัส่มัาช้�กทำ��ทำ�าการร�นค�าส่��งน��
ราย่ล่ะเอั�ย่ดเพื่��มัเต�มัเก��ย่วก�บการส่ร�างขึ้��นตอันขึ้อัง Job
ส่มัาช้�กใน Sysadmin Fixed Server Role ส่ามัารถส่ร�างขึ้��นตอันขึ้อัง Job ให�ทำ�างานในนามัขึ้อังส่มัาช้�กคนอั��นได� ต�วอัย่!างเช้!น sa
จำะส่ามัารถส่ร�างขึ้��นตอันการส่ร�างฐานขึ้�อัมั5ล่ในนามัผู้5�ใช้�ช้��อั
Tharin ได� ถ�า Job หน��ง ๆ มั�หล่าย่ขึ้��นตอัน เราส่ามัารถจำ�ดล่�าด�บการทำ�างาน
ขึ้อังแต!ล่ะขึ้��นตอันได� แล่ะส่ามัารถเพื่��มัขึ้��นตอันใหมั! ล่บขึ้��นตอันทำ��มั�อัย่5! แล่ะก�าหนดล่�าด�บขึ้อังขึ้��นตอันใหมั!ได� ซิ��งการเป็ล่��ย่นแป็ล่งจำะมั�ผู้ล่ในคร��งต!อัไป็ทำ��มั�การร�น Job น��
เราส่ามัารถก�าหนดส่��งทำ��จำะให�ทำ�า เมั��อัขึ้��นตอันน��นทำ�าส่�าเร1จำ หร�อัไมั!ส่�าเร1จำขึ้��นมัาได� แล่ะก�าหนดจำ�านวนคร��ง แล่ะช้!วงเวล่าระหว!างแต!ล่ะคร��งทำ��จำะร�นขึ้��นตอันทำ��ไมั!ส่�าเร1จำน��นใหมั!ได�ด�วย่
แต!ล่ะขึ้��นตอันใน Job จำะต�อังมั�ความัส่มับ5รณ์�ในต�วมั�นเอัง โดย่
Job จำะไมั!ส่ามัารถส่!งค!าบ5ล่�น ขึ้�อัมั5ล่ หร�อัค!าต�วเล่ขึ้ระหว!างแต!ล่ะขึ้�นตอันได� อัย่!างไรก1ตามัเราส่ามัารถส่!งค!าทำ��ส่ร�างด�วย่ค�าส่��ง Transact-SQL จำาก Job หน��งไป็ย่�ง Job อั��นได� โดย่ใช้�การฝากใส่!ตาราง หร�อัตารางช้��งคราวแบบโกล่บอัล่ก1ได� นอักจำากน��เราย่�งส่ามัารถส่!งค!าจำากขึ้��นตอันหน��งใน Job ไป็ย่�งขึ้��นตอันอั��นได� โดย่การเก1บในไฟล่�ขึ้�อัมั5ล่ก1ได�
ราย่ล่ะเอั�ย่ดเพื่��มัเต�มัขึ้อังเพื่จำ Schedules
เพื่จำน��จำะเป็#นการต��งเวล่าการทำ�างานขึ้อัง Job โดย่เราส่ามัารถระบ.เวล่าได�หล่าย่ ๆ แบบด�งต!อัไป็น��
ทำ�าทำ�นทำ�ทำ�� SQL Server Agent เร��มัต�นการทำ�างาน ทำ�าทำ�นทำ�ทำ��การใช้�งาน CPU อัย่5!ต��ากว!าระด�บทำ��เราก�าหนดว!า “ว!าง
งาน” ทำ�าเป็#นป็ระจำ�าทำ.กว�น ส่�ป็ดาห� เด�อัน หร�อัป็? ทำ�าคร��งเด�ย่ว ณ์ ว�นแล่ะเวล่าทำ��ก�าหนด
ในเพื่จำ Schedules เมั��อัเราคล่�กป็.;มั New หร�อั Edit จำะเขึ้�าส่5!หน�าต!าง
Job Schedule Properties ทำ��เราจำะส่ามัารถก�าหนดเวล่าทำ��จำะให� Job
ทำ�างานได�
Schedule list แส่ดงการต��งเวล่าทำ��งหมัดเพื่��อัเร�ย่ก Job น��มัาทำ�างาน
Remove ป็.;มัล่บการต��งเวล่า
Edit ป็.;มัแก�ไขึ้การต��งเวล่า
Pick ป็.;มัก�าหนดการต��งเวล่า โดย่ใช้�การต��งเวล่าNew ป็.;มัก�าหนดการต��ง
ราย่ล่ะเอั�ย่ดขึ้อังหน�าต!าง Job Schedule
Name ต��งช้��อัการต��งเวล่าน�� Enabled เล่�อักถ5กต�อังการให�การต��งเล่า
น��มั�ผู้ล่ทำ�นทำ� แต!ถ�าถ5กเอัาอัอัก
การต��งเวล่าน��ก1จำะไมั!มั�ผู้ล่เมั��อัถ�งเวล่า Job ก1จำะไมั!ทำ�างาน
Schedule Type ก�าหนดร5ป็แบบกาต��งเวล่า Start automatically when
SQL Server Agent starts ทำ�าทำ�นทำ�ทำ�� SQL Server
Agent เร��มัต�นการทำ�างาน Star whenever the CPUs
became idle ทำ�าทำ�นทำ�ทำ��การใช้�งาน CPU อัย่5!ต��ากว!าระด�บทำ��เราก�าหนดว!า ว!าง“
งาน” Recurring ทำ�าเป็#นป็ระจำ�า
ทำ.กว�น ส่�ป็ดาห� เด�อัน หร�อัป็?
4.2 ก�าหนดค!าตามัต�อังการในหน�าต!าง Job Schedule
One time ทำ�าคร��งเด�ย่ว ณ์
ว�นแล่ะเวล่าทำ��ก�าหนดต�วเล่�อักทำ��ใช้�งานร!วมัก�บ Schedule Type แบบ One time
One – Time occurrence ก�าหนดว�น เด�อัน ป็?ป็ระจำ�าทำ��ทำ�า
Job น�� เช้!น ทำ.กว�นอัาทำ�ตย่� Frequency ก�าหนดเวล่าป็ระจำ�าทำ��ทำ�า Job น��
เช้!น ทำ.กว�นอัาทำ�ตย่� Daily frequency ก�าหนดเวล่าป็ระจำ�าทำ��ทำ�า Job น��
เช้!น ทำ.กว�นอัาทำ�ตย่�ตอันเทำ��ย่งค�น
Duration ก�าหนดระย่ะเวล่าทำ��จำะทำ�า Job น�� เช้!น ทำ.กว�นอัาทำ�ตย่�ตอันเทำ��ย่งค�น ต��งแต!อัาทำ�ตย่�ทำ�� 31/10/2550 เป็#นต�นไป็ ไมั!มั�ก�าหนดเล่�กทำ�า
Summary ส่ร.ป็ผู้ล่การต��งเวล่าเป็#นค�าบรรย่าย่ เพื่��อัตรวจำส่อับการต��งเวล่าว!าตรงก�บทำ��เราต�อังการหร�อัไมั!
การร�น Job ในช้!างทำ�� CPU ว!างงานเพื่��อัให�การใช้�งาน CPU มั�ป็ระส่�ทำธิ�ภาพื่ส่5งส่.ด เราส่ามัารถ
ก�าหนดเง��อันไขึ้ทำ��จำะบอักว!า CPU น��นอัย่5!ในช้!วงว!างงาน (Idle) หร�อัไมั! ซิ��งถ�าตรงตามัเง��อันไขึ้ทำ��เราก�าหนด SQL Server Agent ก1จำะร�น Job
น��นทำ�นทำ� ทำ��เห1นว!า CPU ว!างงานในการก�าหนดให� Job ร�นในช้!วงทำ�� CPU Idle เราจำะต�อังตรวจำ
ส่อับก!อันว!า ค!าการใช้�งาน CPU ทำ�� Job น��นต�อังการเป็#นเทำ!าไหร! โดย่ส่ามัารถใช้� SQL Server Profiler เพื่��อัตรวจำส่อับแบนว�ธิ แล่ะรวบรวมั
ส่ถ�ต�ต!าง ๆ ได� ซิ��งขึ้�อัมั5ล่ทำ��รวบรวมัมัาน��จำะถ5กน�ามัาใช้�เพื่��อัก�าหนดเง��อันไขึ้ทำ��บอักว!า CPU ก�าล่�ง Idle อัย่5! โดย่ให�เราก�าหนด
เป็อัร�เซิ1นต�ในการใช้�งาน CPU
ช้!วงเวล่าทำ�� CPU อัย่5!ในส่ถานะเทำ!าก�บ หร�อัต��ากว!าเป็อัร�เซิ1นต�ในขึ้�อัแรก ซิ��งเมั��อัเราอัย่5!ในส่ถานะน��เก�นช้!วงเวล่าทำ��ก�าหนด SQL
Server Agent ก1จำะเร��มัทำ�างานตามั Job ทำ��เราได�ก�าหนดให�ร�นในช้!วงทำ��มั� CPU Idle เก�ดขึ้��น
ราย่ล่ะเอั�ย่ดเพื่��มัเต�มัเก��ย่วก�บการส่��ง Job ทำ�างาน เราอัาจำจำะต�อังการร�น Job ในเวล่าอั��นนอักเหน�อัจำากช้!วงเวล่าทำ��
ก�าหนดไว� เช้!น เรามั�การก�าหนดให�ทำาการแบ1กอั�พื่ฐานขึ้�อัมั5ล่
1.ให�เราคล่�กเมัาส่�ป็.;มัขึ้วาทำ�� SQL Server Agent แล่ะเล่�อัก Properties
2.1 ทำ��แทำ1บ
2.2 ก�าหนดเป็อัร�เซิ1นต�การใช้� 2.3 ก�าหนดเง��อันไขึ้ทำ��จำะบอักให� CPU อัย่5!ในส่ถานะ Idle นานเทำ!าไรจำ�งร�น Job
Master ในตอันเย่1น แต!บางคร��งในกรณ์�ทำ��มั�การเป็ล่��ย่นแป็ล่งขึ้�อัมั5ล่เราอัาจำต�อังการส่��งแบ1กอั�พื่ขึ้�อัมั5ล่เล่ย่ ซิ��งเราก1ส่ามัารถทำ�าได� โดย่การคล่�กขึ้วาทำ�� Job น��นแล่ะเล่�อักค�าส่��ง Start Job at
Step… ถ�า Job น��นได�เร��มัต�นทำ�างานตามัตารางเวล่า เราจำะไมั!ส่ามัารถ
ส่��งร�น Job เด�ย่วก�นซิ��าบนเซิ�ร�ฟเอัร�เคร��อังเด�มัได�จำนหว!า Job
น��นร�นเส่ร1จำเร�ย่บร�อัย่แล่�ว เราส่ามัารถส่��งหย่.ด Job ในขึ้ณ์ะทำ��ร �นอัย่5!ได� ซิ��งในบางกรณ์� เมั��อั
เราอัอักค�าส่��งหย่.ด Job ค�าส่��งหย่.ดน��นอัาจำไมั!มั�ผู้ล่ในทำ�นทำ� เพื่ราะว!า Job น��นก�าล่�งทำ�างานบางอัย่!างอัย่5! เช้!น ค�าส่��ง BACKUP
หร�อัค�าส่��ง DBCC ซิ��งเราต�อังรอัให�ค�าส่��งเหล่!าน��ทำ�าเส่ร1จำก!อัน
Job จำ�งจำะหย่.ดตามัทำ��เราส่��ง แล่ะเมั��อัเราส่ามัารถหย่.ดการทำ�างานขึ้อัง Job น��นได� การหย่.ดแล่ะงานทำ��ทำ�าไป็แล่�วก1จำะถ5กบ�นทำ�กการทำ�างานไว�ใน Job History ด�วย่
อั�นทำ��จำร�งแล่�ว เมั��อัเราก�าหนดครบ 3 เพื่จำแรก Job ก1พื่ร�อัมัทำ�างานแล่�ว แต!ถ�าเราต�อังการส่��งงาน Job ให�ทำ�างานเฉพื่าะเจำาะจำงมัากย่��งขึ้��น เราส่ามัารถก�าหนดค!าใน 3 เพื่จำต!อัมัาได� ซิ��งมั�ราย่ล่ะเอั�ย่ดต!างๆ ด�งน��
Alert list แส่ดงราย่การ Alert
Remove ป็.;มัล่บ Add ป็.;มัเพื่��มั
ราย่ล่ะเอั�ย่ดเพื่��มัเต�มัขึ้อังเพื่จำ Alerts
ป็กต�เมั��อัมั�เหต.การณ์�ทำ��ตรงก�บทำ��เราระบ.ใน Alert เก�ดขึ้��น Alert
น��นจำะทำ�างาน แล่ะจำะไป็เร�ย่ก Job ต�วใดต�วหน��งขึ้��นมัาทำ�างานตอับส่นอังเหต.การณ์�น��น แต!ในกรณ์�ทำ��เราส่ร�าง Alert ภาย่ในหน�าต!าง Job Properties เมั��อัเราส่ร�างแล่�ว Alert ทำ��ได�จำะถ5กบ�งค�บให�ใช้� Job
ในหน�าต!างน��ตอับส่นอังต!อัเหต.การณ์�ทำ��เก�ดขึ้��นโดย่อั�ตโนมั�ต� ไมั!ส่ามัารถเป็ล่��ย่นได� เป็#นการส่ร�าง Alert เพื่��อัเร�ย่กให� Job ในหน�าต!างน��ทำ�างานน��นเอัง
เราไมั!ส่ามัารถส่ร�าง Alert บน Job ทำ��ย่�งไมั!ได�บ�นทำ�กได�โดย่เราต�อังคล่�กป็.;มั ok ทำ��หน�าต!าง Job Properties ก!อัน เพื่��อับ�นทำ�กแล่ะส่ร�าง Job จำากน��นเขึ้�าส่5!หน�าต!าง ๆ Job Properties ใหมั!อั�กคร��งในภาย่หล่�ง เพื่��อัเร��มัส่ร�าง Alert (การส่ร�าง Alert จำะขึ้อักล่!าวอั�กทำ�ในห�วขึ้�อัการส่ร�าง Alert)
Edit ป็.;มัแก�ไขึ้
ราย่ล่ะเอั�ย่ดเพื่��มัเต�มัขึ้อังเพื่จำ Notifications
ในการแจำ�งเต�อัน (Notifications) จำะเป็#นการแจำ�งเต�อันไป็ทำ��โอัเป็อัเรเตอัร� (Operator) หร�อัผู้5�ทำ��เก��ย่วขึ้�อังให�ร�บทำราบ ด�งน��นเราจำ�งต�อังส่ร�างโอัเป็อัเรเตอัร�ก!อัน จำ�งจำะมั�ค!าในช้!อังต!าง ๆ ให�เล่�อัก
(การส่ร�าง Operator จำะกล่!าวในห�วขึ้�อัต!อัไป็)
ในการส่!ง E-mail , Page , Net send , การเขึ้�ย่นล่1อักใน
Application event log หร�อัการล่บ Job จำะทำ�าก1ต!อัเมั��อัเง��อันไขึ้เป็#นจำร�ง โดย่เง��อันไขึ้การทำ�าจำะอัย่5!ในช้!อังด�านหล่�งขึ้อังแต!ล่ะห�วขึ้�อั
แล่ะมั�ต�วเล่�อักต!าง ๆ ให�เล่�อักเหมั�อัน ๆ ก�น ด�งน�� When the job succeeds เมั��อั Job ทำ�าส่�าเร1จำทำ.กขึ้��นตอัน When the Job fails เมั��อั Job ล่�มัเหล่ว When the Job completes เมั��อั Job ทำ�าครบ แต!อัาจำจำะไมั!
ส่�าเร1จำในบางขึ้��นตอัน
ความัต�อังการขึ้��นต��าเมั��อัเราใช้� Notifications
ถ�าส่!ง E-mail ด�วย่ฟ2งก�ช้��น Database Mail เราต�อังต�ดต��งโป็รแกรมัเมัล่�เซิ�ร�ฟเวอัร�ทำ��มั�การทำ�างานขึ้อัง SMTP (การใช้� Database Mail จำะกล่!าวในห�วขึ้�อัถ�ดไป็)
ถ�าส่!ง E-mail ด�วย่ฟ2งก�ช้��น SQL Mail เราต�อังเขึ้��อัมัต!อัการส่!งเมัล่�ไป็ทำ��เซิ�ร�ฟเวอัร�ขึ้อัง Microsoft Exchange แล่ะต�วเซิ�ร�ฟเวอัร�ทำ��ร �น SQL Server ต�อังต�ดต��งโป็รแกรมั Microsoft Outlook
แล่ะ Microsoft Exchange client ด�วย่ (ไมั!แนะน�าให�ใช้�ฟ2งก�ช้��น
SQL Mail เพื่ราะเป็#นฟ2งก�ช้��นเก!า แล่ะในอันาคตฟ2งก�ช้��นน��จำะถ5กต�ดอัอักจำากโป็รแกรมั SQL Server)
ถ�าส่!งเพื่จำเจำอัร� เราต�อังต�ดต��งซิอัฟแวร�จำากบร�ษ�ทำพื่�ฒนาซิอัฟทำ�แวร�อั�ส่ระ (Third – Party Pager-to-e-mail software)
หร�อัจำะเป็#นอั.ป็กรณ์�ฮาร�ดแวร�ได�
ถ�าส่!งผู้!าน Net send คอัมัพื่�วเตอัร�เคร��อังน��นต�อังอัน.ญ่าตให�ร�บขึ้�อัความัจำากโป็รแกรมั Windows Messenger ได� แล่ะโอัเป็อัเรเตอัร�ต�อังล่1อักอั�นใช้�เคร��อังน��นอัย่5!ด�วย่
ราย่ล่ะเอั�ย่ดเพื่��มัเต�มัขึ้อังเพื่จำ Targets
ก�าหนดเซิ�ร�ฟเวอัร�เป็Bาหมัาย่ขึ้อัง Job ทำ��เราส่ร�าง Target local server ร�น Job บนเคร��อังเซิ�ร�ฟเวอัร�น�� Target multiple server ร�น Job บนเซิ�ร�ฟเวอัร�ต�วอั��นในเคร�อั
ขึ้!าย่ ซิ��งเราส่ามัารถก�าหนดได�มัากกว!า 1 เซิ�ร�ฟเวอัร�
การใช้�งาน Database Mail
ในการใช้�งาน Notifications เพื่��อัส่!งการแจำ�งเต�อันผู้!านอั�เมัล่�น��น
เราจำะใช้�ความัส่ามัารถขึ้อัง Database Mail ซิ��งจำะส่ามัารถทำ�างานร!วมัก�บโป็รแกรมั SMTP Server ต�วใดๆ ก1ได� ไมั!จำ�าก�ดว!าต�อังเป็#น
Microsoft Exchange เทำ!าน��น ทำ�าให�เราส่ามัารถใช้�โป็รแกรมั SMTP
Server ทำ��เรามั�อัย่5!แล่�ว หร�อัหาดาวน�โหล่ดฟร�จำากอั�นเทำอัร�เน1ตมัาใช้�ร!วมัก�บ Database Mail ได�
Note ส่�าหร�บการต�ดต��งโป็รแกรมั SMTP Server น��น จำะเป็#นพื่��นฐานขึ้อังผู้5�ด5แล่ระบบอัย่5!แล่�ว จำ�งขึ้อัขึ้�ามัไป็ โดย่จำะถ�อัว!าขึ้� �นตอันหล่�งจำากน��ทำ��งหมัดกระทำ�าบนเคร��อังเซิ�ร�ฟเวอัร�ทำ��มั� SMTP Server ต�ดต��งพื่ร�อัมัทำ�างานแล่�ว
1. การใช้�งาน Database Mail น��น เร��มัต�นให�เราไป็ทำ�� All
Programs>Microsoft SQL Server 2005>Configuration Tools>SQL Server Surface Area Configuration จำะป็รากฏิหน�าต!าง SQL Server 2005 Surface Area Configuration
คล่�กทำ��ล่�งค� Surface Area Configuration for Features จำะป็รากฏิหน�าต!างด�งร5ป็ แล่�วทำ�าตามัขึ้��นตอันเพื่��อัเป็=ดการทำ�างานขึ้อัง Database Mail
2. จำากน��นไป็ทำ�� Management Studio ทำ��หน�าต!าง Object Explorer
ไป็ทำ�� Management>SQL Server Logs คล่�กขึ้วาทำ�� Database
Mail เล่�อักค�าส่��ง Configure Database Mail จำะป็รากฏิหน�าต!าง Database Mail Configuration Wizard ให�เราเล่�อักต�วเล่�อัก
Setup Database Mail by performing the following tasks เพื่��อัส่ร�าง Profile ใหมั! แล่ะ SMTP Account ใหมั!ในหน�าต!าง ๆ
New Database Mail Account ด�งร5ป็
3. จำากน��นกล่�บมัาทำ��หน�าต!าง Object Explorer อั�กคร��ง คล่�กเมัาส่�ขึ้วาทำ�� Database Mail เล่�อักค�าส่��ง Send Test E-mail … ล่อังส่!งเมัล่�ผู้!านโป็รแกรมั SMTP Server โดย่ส่!งในนามัผู้5�ใช้� SMTP
Account ทำ��ส่ร�างในขึ้��นตอันทำ��ผู้!านมัา ซิ��งถ�าโป็รแกรมัเช้1คเมัล่�ขึ้อังเรา เช้!น Microsoft Outlook ได�ร�บเมัล่� ก1แส่ดงว!าการส่ร�าง Profile แล่ะ SMTP Account ขึ้อังเราถ5กต�อัง แต!ถ�าไมั!ได�ร�บเมัล่�ก1กล่�บไป็แก�ไขึ้ในขึ้��นตอันทำ�� 2 ต!อัไป็
4. จำากน��นกล่�บมัาทำ��หน�าต!าง Object Explorer อั�กคร��ง คราวน��ไป็ทำ�� SQL Server Agent คล่�กขึ้วาเล่�อักค�าส่��ง Properties ไป็ทำ��เพื่จำ Alert System ก�าหนดค!าในส่!วน Mail session แล่�วทำ�าการร�ส่ตารทำ� SQL Server Agent หน��งคร��ง
5. ส่.ดทำ�าย่ล่อังส่ร�าง Job แล่ะก�าหนดในเพื่จำ Notifications ให�มั�การส่!งอั�เมัล่�ให�โอัเป็อัเรเตอัร�ทำราบ (การส่ร�างโอัเป็อัเรเตอัร�ด5ในห�วขึ้�อัต!อัไป็) จำากน��นล่อังส่��ง Job น��นทำ�างานโดย่การคล่�กขึ้วาทำ�� Job เล่�อักค�าส่��ง Start Job at Step… เมั��อั Job ทำ�างานเส่ร1จำเราจำะได�ร�บเมัล่�แจำ�งด�งร5ป็
ร5 �จำ�กก�บ Operators
ด�งทำ��ได�กล่!าวมัาแล่�วว!า เราส่ามัารถก�าหนดให�มั�การส่!งอั�เมัล่�ไป็ย่�งทำ�มังาน หร�อัผู้5�เก��ย่วขึ้�อังทำ��เร�ย่กว!าโอัเป็อัเรเตอัร� (Operator) ได� เมั��อั Job น��นทำ�างานส่�าเร1จำ หร�อัทำ�างานไมั!ส่�าเร1จำ ซิ��งในห�วขึ้�อัน��เราจำะมัาศึ�กษาก�นในเร��อังการก�าหนดโอัเป็อัเรเตอัร�ด�งห�วขึ้�อัต!าง ๆ ต!อัไป็น��
การส่ร�าง Operator
เราควรส่ร�างโอัเป็อัเรเตอัร�ก!อันทำ��เราจำะน�ย่ามั Job หร�อั Alert
โดย่จำะเร��มัจำาการก�าหนดค.ณ์ส่มับ�ต�พื่��นฐานขึ้อังโอัเป็อัเรเตอัร�ก!อัน
ซิ��งจำะมั�ช้��อัแล่ะขึ้�อัมั5ล่ทำ��ใช้�ในการต�ดต!อั แล่ะว�ธิ�การส่!งขึ้�อัความัไป็ถ�งโอัเป็อัเรเตอัร�น��น ๆ ได�แก!
ส่!งอั�เมัล่� ซิ��ง SQL Server Agent ต�อังการขึ้�อัมั5ล่อั�เมัล่�ทำ��ถ5กต�อัง เพื่��อัทำ��จำะใช้�ในการส่!งเมัล่�ให�ก�บโอัเป็อัเรเตอัร�
ส่!งทำางเพื่จำเจำอัร� ส่!งขึ้�อัความัผู้!านเคร�อัขึ้!าย่โดย่ใช้� Net Send แต!เราจำะต�อังร�นอัย่5!
บน Windows 2000 หร�อั5งกว!าจำ�งส่ามัารถใช้�ค�าส่��ง Set send ได�
Note ความัต�อังการด�านซิอัฟทำ�แวร� แล่ะฮาร�ดแวร�ขึ้� �นต��า เพื่��อัใช้�ส่!งขึ้�อัความัด�วย่ว�ธิ�ต!าง ๆ น��นจำะเหมั�อันก�นการใช้�เพื่จำ Notifications ในการส่ร�าง ๆ Job ซิ��งเรากล่!าวถ�งไป็แล่�ว
ส่�าหร�บการส่ร�างโอัเป็อัเรเตอัร�ให�เราทำ�าตามัขึ้��นตอันต!อัไป็น�� โดย่การต��งช้��อัโอัเป็อัเรเตอัร�จำะต�อังไมั!ซิ��าก�บทำ��มั�อัย่5!แล่�ว แล่ะไมั!เก�น
128 ต�วอั�กขึ้ระ
การแจำ�งเต�อัน Operator โดย่ใช้�เพื่จำเจำอัร�ในการใช้�เพื่จำเจำอัร�เราส่ามัารถก�าหนดในส่!วน Pager on duty
schedule ขึ้อังเพื่จำ General ส่�าหร�บโอัเป็อัเรเตอัร�แต!ล่ะคนแตกต!างก�นได� เช้!น OperatorA ทำ�างานเฉพื่าะว�นจำ�นทำร�ถ�งว�นพื่ฤห�ส่,
OperatorB ทำ�างานเฉพื่าะว�นศึ.กร� ด�งน��น เราจำ�งส่ามัารถก�าหนดขึ้อับเขึ้ตเวล่าในส่!วนขึ้อัง Pager on duty schedule ส่�าหร�บแต!ล่ะคน
แตกต!างก�น ตามัการทำ�างานจำร�ง แล่ะถ�าในกรณ์�ทำ��มั�การแจำ�งเต�อันเก�ดขึ้��นแต!ไมั!มั�ผู้5�ใด อัย่5!ในช้!วงเวล่าร�บเพื่จำเจำอัร� การแจำ�งเต�อันน��นก1จำะไป็ล่งทำ��โอัเป็อัเรเตอัร�ส่.ดทำ�าย่ทำ��เราเร�ย่กว!า Fail – Safe Operator
การก�าหนด Fail – safe Operator
Fail – safe Operator เป็#นโอัเป็อัเรเตอัร�คนส่.ดทำ�าย่ทำ��จำะถ5กแจำ�งเต�อัน หากการแจำ�งเต�อันต!าง ๆทำ�� ได�ส่!งไป็ย่�งโอัเป็อัเรเตอัร�คนอั��นทำ��เราได�ก�าหนดไว�แล่�วไมั!ส่�าเร1จำขึ้��นมัา ต�วอัย่!างเช้!น ถ�าเราน�ย่ามัโอัเป็อัเรเตอัร� 3 คน แล่ะไมั!มั�โอัเป็อัเรเตอัร�คนใดได�ร�บเพื่จำเล่ย่
SQL Server ก1จำะส่!งไป็ย่�ง Fail – Safe Operator แทำน โดย่ทำ��วไป็ Fail
– Safe Operator จำะถ5กแจำ�งเต�อันเมั��อั โอัเป็อัเรเตอัร�ทำ��ระบ.ไมั!ได�ร�บการเพื่จำ เหต.ผู้ล่น��อัาจำจำะมัาจำาก
ความัผู้�ดพื่ล่าดบางอัย่!าง หร�อัโอัเป็อัเรเตอัร�ไมั!ได�อัย่5!ในระหว!างการป็ฏิ�บ�ต�หน�าทำ��ก1ได�
SQL Server Agent ไมั!ส่ามัารถเขึ้�าใช้�งานตารางในฐานขึ้�อัมั5ล่
msdb ได�Fail – safe Operator จำะช้!วย่ให�การทำ�างานทำ�ความัร�ดก.มั แล่ะ
ป็ล่อัดภ�ย่มัากขึ้��น เราจำะไมั!ส่ามัารถล่บโอัเป็อัเรเตอัร�ทำ��ได�ก�าหนดให�เป็#น Fail – Safe Operator ได� นอักจำากจำะก�าหนดคนอั��นขึ้��นมัาเป็#นแทำน
ซิ��งเราส่ามัารถก�าหนด Fail – Safe Operator ได�ด�งน��
ร5 �จำ�กก�บ Alerts
ในระบบป็ฏิ�บ�ต�การ Windows Server 2000/2003 ขึ้�อัผู้�ดพื่ล่าด
(บางคร��งเร�ย่กว!าเหต.การณ์�ขึ้�อัผู้�ดพื่ล่าด) ทำ��เก�ดขึ้��นใน SQL Server จำะถ5กบ�นทำ�กเก1บใน Application Log แล่ะเมั��อัเก�ดขึ้�อัผู้�ดพื่ล่าดขึ้��น SQL
Server Agent จำะอั!านขึ้�อัมั5ล่จำาก Application log น��น แล่ะเป็ร�ย่บเทำ�ย่บขึ้�อัผู้�ดพื่ล่าดทำ��เราต��งให�ก�บ Alert ถ�า SQL Server Agent พื่บว!าขึ้�อัผู้�ดพื่ล่าดน��นตรงก�บทำ��เราได�ต��งไว�ในเง��อันไขึ้ก1จำะเร�ย่ก Alert น��นขึ้��นมัาทำ�างาน
การส่ร�าง Alert
เราส่ามัารถทำ�าให�เก�ด Alert ขึ้��มัาตามัเง��อันไขึ้ต!างๆ ด�งต!อัไป็น�� หมัาย่เล่ย่ขึ้�อัผู้�ดพื่ล่าดทำ��เก�ดขึ้��น ระด�บขึ้อังความัร.นแรงขึ้อังขึ้�อัผู้�ดพื่ล่าดทำ��เก�ดขึ้��น ก�าหนดฐานขึ้�อัมั5ล่ทำ��ให�เก�ดเหต.การณ์�ขึ้��น ถ�าเราต�อังการจำะ
จำ�าก�ดขึ้อับเขึ้ตขึ้อัง Alert
ก�าหนดขึ้�อัความัทำ��จำะให�แส่ดงเมั��อัเก�ด Alert น��นขึ้��น
เราส่ามัารถส่ร�าง Alert ขึ้��นมัาได� โดย่ให�เราทำ�าตามัขึ้��นตอันต!อัไป็น��
ราย่ล่ะเอั�ย่ดเพื่��มัเต�มัขึ้อังเพื่จำ General
เพื่จำน��จำะเป็#นการต��งขึ้�อัผู้�ดพื่ล่าดทำ��จำะป็ล่.กให� Alert ขึ้��นมัาทำ�างาน Name ต��งช้��อัขึ้อัง Alert
Enable ถ�าไมั!ถ5ก Alert จำะไมั!ตอับส่นอังต!อัขึ้�อัผู้�ดพื่ล่าดทำ��เก�ดขึ้��น
Type เล่�อักช้น�ดเหต.การณ์�มั� 3 ช้น�ด ค�อั SQL Server event alert ขึ้�อัผู้�ดพื่ล่าด
ทำ��วไป็ทำ��เก1บใน Microsoft Windows
event log SQL Server performance condition
alert ขึ้�อัผู้�ดพื่ล่าดทำ��เก��ย่วก�บป็ระส่�ทำธิ�ภาพื่การทำ�างานขึ้อัง SQL
Server
WMI event alert ขึ้�อัผู้�ดพื่ล่าดทำ��มัาจำาก Windows Management Instrumentation (WMI)
Database name ก�าหนดช้��อัฐานขึ้�อัมั5ล่ทำ��เราส่นใจำ ถ�าก�าหนดเป็#น all database จำะส่นใจำขึ้�อัผู้�ดพื่ล่าดทำ��มัาจำากทำ.กฐานขึ้�อัมั5ล่
Error number ก�าหนดขึ้�อัผู้�ดพื่ล่าดทำ��ทำ�าให� Alert ทำ�างานเป็#นหมัาย่เล่ขึ้ขึ้�อัผู้�ดพื่ล่าด ซิ��งเราส่ามัารถศึ�กษาความัหมัาย่ขึ้อังแต!ล่ะหมัาย่เล่ขึ้ทำ��พื่บเจำอัได�จำากระบบช้!วย่เหล่�อัขึ้อัง SQL Server
Severity ก�าหนดขึ้�อัผู้�ดพื่ล่าดทำ��ทำ�าให� Alert ทำ�างาน เป็#นระด�บความัร.นแรงขึ้อังขึ้�อัผู้�ดพื่ล่าดซิ��งระด�บทำ�� 19 ขึ้��นไป็ถ�อัเป็#นระด�บความัผู้�ดพื่ล่าดขึ้��นร.นแรง แล่ะแต!ล่ะระด�บความัผู้�ดพื่ล่าด จำะครอับคล่.มัหมัาย่เล่ย่ขึ้�อัผู้�ดพื่ล่าดหล่าย่ ๆ หมัาย่เล่ขึ้
Raise alert when message contains
ป็ล่.ก Alert ด�วย่ค�ย่�เว�ร�ด โอัย่ระบ.ค�ย่�เว�ร�ดเทำ�ย่บก�บขึ้�อัความัทำ��ส่!งแจำ�งมัาจำากขึ้�อัผู้�ดพื่ล่าด ถ�าตรงก�น Alert ก1ทำ�างาน
Message text ก�าหนดค�ย่�เว�ร�ด
ราย่ล่ะเอั�ย่ดเพื่��มัเต�มัขึ้อังเพื่จำ Response
เพื่จำน��จำะเป็#นการก�าหนดการตอับส่นอังเมั��อั Alert ทำ�างาน Execute job ก�าหนด Job ขึ้��นมัาทำ�างานเมั��อัเก�ด Alert น�� Notify Operators ก�าหนดโอัเป็อัเรเตอัร�ทำ��ได�ร�บขึ้�อัความัแจำ�ง
เต�อันเมั��อัเก�ด Alert น��
ราย่ล่ะเอั�ย่ดเพื่��มัเต�มัขึ้อังเพื่จำ Options
เพื่จำน��จำะเป็#นการก�าหนดต�วเล่�อักเพื่��มัเต�มัอั��น ๆ ด�งน�� E- mail เพื่��มัขึ้�อัความัล่งในอั�เมัล่�ทำ��ส่!งให�โอัเป็อัเร
เตอัร� Pager เพื่��มัขึ้�อัความัล่งในเพื่จำเจำอัร�ทำ��ส่!งให�โอัเป็อัเร
เตอัร� Net send เพื่��มัขึ้�อัความัล่งในขึ้�อัความัทำ��ส่!งผู้!าน Net
Send ให�โอัเป็อัเรเตอัร� Additional notification message to send ขึ้�อัความัทำ��จำะก�าหนด
เพื่��มั Delay between responses ก�าหนดระย่ะห!างในการตอับส่นอัง
แต!ล่ะคร��ง ซิ��งในกรณ์�ทำ�� Alert เก�ดขึ้��นถ�� ๆ
มัากเก�นไป็ เราส่ามัารถก�าหนดไมั!ต�อังตอับส่นอังทำ.ก ๆ Alert ได� โดย่ก�าหนดทำ��ช้!อังน��เป็#นนาทำ� แล่ะว�นาทำ� ก1จำะทำ�าให�การตอับ
ส่นอังเว�นช้!วงไป็ถ�งเวล่าทำ��ก�าหนด จำ�งตอับส่นอังใหมั!