รายการตรวจสอบ SQL Server


14

การติดตามจากคำถามอื่นของฉันฉันต้องการเริ่มคิดเกี่ยวกับสิ่งที่ฉันควรดูในฐานรายวัน / รายสัปดาห์ / รายเดือนในแง่ของการแจ้งเตือน ฉันหวังว่าจะสามารถเห็นปัญหามาก่อนที่จะเกิดขึ้น (นั่นคือแผน) ...

จนถึงตอนนี้ฉันได้เริ่มเก็บสคริปต์สำหรับต่อไปนี้ (ไม่มีคำสั่ง):

ประจำวัน

  • ตรวจสอบความพร้อมของระบบ (ในกรณีที่ฉันต้องตรวจสอบอะไรเป็น DBA)
  • ตรวจสอบข้อมูลสำรองล่าสุด
  • ตรวจสอบการสำรองข้อมูลบันทึกธุรกรรม
  • ตรวจสอบสถานะของงาน SQL
  • ตรวจสอบการใช้งาน CPU โดยเฉลี่ยในช่วง 24 ชั่วโมงที่ผ่านมา (หรือ 1140 นาที)

รายสัปดาห์

  • ตรวจสอบประวัติการสำรองข้อมูลของ MSDB
  • ตรวจสอบเพื่อดูว่าเมื่อครั้งที่ CheckDB ทำงานครั้งสุดท้าย
  • ตรวจสอบดัชนีการแตกแฟรกเมนต์
  • ตรวจสอบสถิติดัชนี (อ่าน vs เขียน ฯลฯ )
  • ตรวจสอบคอขวด IO

รายเดือน

  • ตรวจสอบดัชนีที่ขาดหายไป
  • ตรวจสอบดัชนีที่ไม่ได้ใช้อีกต่อไป

ข้อเสนอแนะอื่น ๆ ? (ฉันใหม่กับ DBA ดังนั้นยินดีให้ความช่วยเหลือ / คำแนะนำใด ๆ เสมอ)

คำตอบ:


3
  1. การสำรองข้อมูล

    • ตรวจสอบอีเมลสำรอง
    • การสำรองข้อมูลใช้เวลานานเท่าใด (ระยะเวลาการสำรองฐานข้อมูล)
    • ตรวจสอบว่าฐานข้อมูลทั้งหมดถูกสำรองตามแผนการบำรุงรักษา
  2. พื้นที่ว่างในดิสก์ หมายเหตุรูปแบบที่สำคัญจากการตรวจสอบก่อนหน้า ไฟล์บันทึกอาจได้รับผลกระทบอย่างมากจากงานรายเดือน

  3. ความล้มเหลวของงาน กรองกิจกรรมงานสำหรับความล้มเหลว

  4. ตรวจสอบระบบ ดูในบันทึก SQL สำหรับข้อผิดพลาดที่สำคัญ

    • แอปพลิเคชันบันทึก
  5. ประสิทธิภาพ

    • ตรวจสอบสถิติประสิทธิภาพบนเซิร์ฟเวอร์ทั้งหมด
    • ตรวจสอบว่าตัวนับอยู่ในช่วงปกติของเซิร์ฟเวอร์ที่ใช้งานจริงทั้งหมด
  6. การเชื่อมต่อ

    • ตรวจสอบว่าแอปพลิเคชันของลูกค้าสามารถรับข้อมูลจากฐานข้อมูล
    • ตรวจสอบความเร็วในการเข้าถึงข้อมูลที่ยอมรับได้
  7. การทำซ้ำ ตรวจสอบว่าแต่ละสิ่งพิมพ์และผู้จัดจำหน่ายทำงานสำหรับการสมัครแต่ละครั้ง

รายการตรวจสอบ DBA ของ SQL Server

รายการตรวจสอบ DBA ของแบรด

รายการตรวจสอบ Oracle DBA (อาจมีประโยชน์)

รายการตรวจสอบการจัดการฐานข้อมูล SQL Server DBA

รายการตรวจสอบตอนเช้าของ DBA

รายการตรวจสอบ DBA MS SQL Server (รายการตรวจสอบจำนวนมาก)

รายการตรวจสอบ DBA ของ SQL Server


4

เฉพาะรูปแบบที่ฉันแนะนำในรายการตรวจสอบของคุณคือแทนที่คำว่า BACKUP ด้วย RESTORE การตรวจสอบว่าการสำรองข้อมูลเสร็จสมบูรณ์เป็นการเริ่มต้นที่ดีสิ่งที่สำคัญคือคุณสามารถกู้คืนจากการสำรองข้อมูลได้หรือไม่ แจ้งเตือนเมื่อเกิดความล้มเหลวในการสำรองข้อมูลทำการสุ่มคืนค่าโดยอัตโนมัติเพื่อให้คุณทราบว่าข้อมูลสำรองของคุณนั้นดี

ขั้นตอนต่อไปจากรายการตรวจสอบรายวัน / รายสัปดาห์ / รายเดือนคือประวัติ การตรวจสอบตัวนับประสิทธิภาพ x / y / z นั้นไม่มีความหมายหากไม่มีเกณฑ์เปรียบเทียบกับวันนี้ หากไม่เข้าใจวันนี้เทียบกับเมื่อวานเป็นไปไม่ได้ที่จะทำนายในเดือนหน้า


2

หมายเหตุ: ไม่ใช่ SQL Server DBA

หากเป็นไปได้คุณอาจต้องการตรวจสอบดัชนีรายเดือนที่ไม่ได้ใช้โดยการสอบถามใด ๆ คุณต้องการทำสิ่งนี้อย่างแน่นอน

  • ตารางที่มีขนาดใหญ่มาก
  • ตารางที่มีดัชนีจำนวนมาก
  • ดัชนีที่มีหลายคอลัมน์ (3 หรือมากกว่า)

4
เพียงตรวจสอบให้แน่ใจว่า "ไม่ได้ใช้" แสดงถึงวัฏจักรธุรกิจทั้งหมด ฉันเคยได้ยินหลายกรณีที่ DBA ตัดสินใจวางดัชนีที่ไม่ได้ใช้ในสองสามเดือนและวันถัดไปที่รายงานประจำไตรมาสของ CFO ใช้เวลาหลายชั่วโมงแทนที่จะเป็นวินาที ... คุณไม่สามารถพึ่งพา index_usage_stats DMV โดยเฉพาะอย่างยิ่งหากเซิร์ฟเวอร์ของคุณเริ่มต้นใหม่เป็นระยะ ๆ ดังนั้นฉันจะทำเช่นนี้หากคุณเก็บสถิติการใช้งานของคุณเองตลอดเวลา ...
Aaron Bertrand


2

สิ่งที่จะช่วยให้บรรลุผลได้ ... Idera นำเสนอเครื่องมือฟรีสำหรับการตรวจสอบงาน SQL Server ที่ฉันใช้ไปสองสามครั้ง มันดีมากสำหรับการรับภาพรวมที่ดีแม้ว่ามันจะมีข้อ จำกัด เล็กน้อยเนื่องจากมันฟรี มูลค่าการตรวจสอบ: http://www.idera.com/Products/Free-Tools/SQL-job-manager/

สิ่งที่ฉันจะเพิ่มสำหรับด้านความปลอดภัยของบ้าน ... ไฟล์การติดตามโดยเฉพาะสำหรับการจับภาพกิจกรรมการเข้าสู่ระบบสำหรับบัญชีผู้ใช้ สิ่งนี้จะช่วยให้คุณค้นหาบัญชีที่ไม่ใช้งานได้อย่างง่ายดาย จากนั้นสคริปต์ที่จะตรวจสอบเมื่อมีคนถูกเพิ่มลงในบทบาทเซิร์ฟเวอร์ / ฐานข้อมูลคงที่ ดูแลระบบโดยเฉพาะถ้าคุณไม่ใช่คนเดียวที่จัดการเซิร์ฟเวอร์ / อินสแตนซ์


ไฟล์ติดตามเป็นวิธีที่ดีที่สุดในการทำเช่นนี้หรือไม่
Thomas Stringer

มันเป็นวิธีที่ง่ายที่สุดที่ฉันรู้ว่าจะได้รับข้อมูล เว้นแต่คุณจะใส่ทริกเกอร์เพื่อเก็บข้อมูลลงในตารางหรือบันทึก หากใช้การจัดการนโยบาย SQL 2008 สามารถใช้เพื่อจุดประสงค์นี้

การติดตามอาจเป็นวิธีที่ดีที่สุด @ShawnMelton มีวิธีแก้ไขรีจิสตรี ( sqlservercentral.com/articles/security/sqlserverauditingiting1/1 ) เพื่อให้ SQL Server ตรวจสอบการเข้าสู่ระบบทั้งหมด (สำเร็จและล้มเหลว) ฉันไม่แน่ใจว่าวิธีการที่ดีที่สุดคืออะไร แต่ฉันก็ยังคงวิตกกังวลอยู่เสมอเกี่ยวกับการทำให้การติดตามดำเนินไปอย่างไม่มีกำหนด ความคิดของคุณ?
Thomas Stringer

ฉันไม่เคยมีปัญหาในการใช้งานไฟล์ติดตามซึ่งมันส่งผลต่อประสิทธิภาพอย่างมาก การเปิดใช้งานการตรวจสอบ C2 แม้ว่าฉันมีฉันไม่ชอบการเปิดใช้งาน Extended Events เสนอทางเลือกอื่นและควรจะเป็นวิธีการที่ต้องการในการใช้ไฟล์ติดตามซึ่งให้กำลังงานมากขึ้น คุณอาจตรวจสอบสิ่งเหล่านั้นเพื่อดูว่ามีตัวเลือกสำหรับเหตุการณ์การเข้าสู่ระบบหรือไม่ฉันแน่ใจว่ามี จากสิ่งที่ฉันเข้าใจเกี่ยวกับพวกเขาพวกเขาได้รับการยกเว้นจากการสร้างความนิยมด้วยประสิทธิภาพ

ดี ฉันมีแนวโน้มที่จะเห็นด้วยกับคุณ และใช่ C2 เป็นหนึ่งในสถานการณ์ที่ใช้งานได้จริงหากคุณต้องการ
Thomas Stringer

0
  • ตรวจสอบบันทึกข้อผิดพลาดของ SQL Server และ บริษัท ตัวแทนของเซิร์ฟเวอร์ SQL
  • ตรวจสอบสถานะของเซิร์ฟเวอร์ที่มิร์เรอร์ (ตัวการและมิรเรอร์)
  • ตรวจสอบการเปลี่ยนแปลงเวลาดำเนินงาน
  • ตรวจสอบโหนดที่ใช้งานในเซิร์ฟเวอร์ sql คลัสเตอร์
  • ตรวจสอบเนื้อที่ดิสก์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.