Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

ตัดทอนและลบการตรวจสอบการดำเนินการใน MSSQL Server

บล็อกนี้กล่าวถึงขั้นตอนในการพิจารณาผู้ใช้ที่รับผิดชอบในการตัดและลบข้อมูลออกจากตารางบนเซิร์ฟเวอร์ MSSQL และระบุหน่วยงานที่รับผิดชอบ

ตัวอย่างเช่น:เมื่อใดที่ตารางถูกตัดทอน และเมื่อใดที่ข้อมูลถูกลบออกจากตาราง?ใครเป็นคนตัดตารางและนำข้อมูลออกจากตาราง?

เหตุผลในการรวบรวมข้อมูลนี้

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

สรุปปัญหา

ส่วนต่อไปนี้จะอธิบายหลักการสำคัญสี่ประการสำหรับ GitOps:

ระหว่าง 17.00 น. และ 19.00 น. ในวันที่ 5 มกราคม 2020 ตาราง "dump truncate" ถูกตัดทอนและข้อมูลจากตาราง "dump delete" จะถูกลบออกจากฐานข้อมูล "truncate test" คำถามที่เป็นไปได้ที่ต้องแก้ไข ได้แก่:

  • คุณต้องหาให้ได้ว่าปัญหาคืออะไร
  • ใครเป็นคนลบข้อมูลออกจากตาราง “dump_delete”
  • ตาราง “dump delete” ถูกลบไปกี่แถว
  • ใครเป็นคนตัดตาราง “dump_truncate”?
  • ตารางเหล่านี้ถูกตัดและลบเมื่อใด
  • บนเซิร์ฟเวอร์ กำหนดการสำรองข้อมูลปัจจุบันมีดังนี้:
  • ทุกสัปดาห์ในวันอาทิตย์ จะมีการสำรองข้อมูลเต็มรูปแบบ
  • ทุกวัน เวลา 13.00 น. สำรองส่วนต่าง
  • สำรองข้อมูลบันทึกทุก 15 นาที

ข้อกำหนดเบื้องต้น:

  • DB ควรอยู่ในโหมดการกู้คืนเต็มรูปแบบ
  • ควรมีการสำรองข้อมูลเต็มรูปแบบ แตกต่าง และบันทึก

แนวทางในระดับสูง:

  1. ระบุว่าการสำรองข้อมูลบันทึกใดที่เก็บการลบและตัดทอนการดำเนินการ
  2. ระบุรายละเอียดของการดำเนินการตัดทอนและลบโดยใช้การสำรองข้อมูลบันทึก

ตรวจสอบว่าบันทึกสำรองใดเก็บการดำเนินการลบและตัดทอน:

หมายเหตุ :เราดำเนินการตามขั้นตอนเหล่านี้โดยการสร้างสำเนาใหม่ของฐานข้อมูล

  1. กู้คืนข้อมูลสำรองเต็มรูปแบบในวันอาทิตย์ที่ 2 ม.ค. ด้วยโหมดสแตนด์บาย

  2. คืนค่าการสำรองข้อมูลส่วนต่างของวันที่ 5 ม.ค. ด้วยโหมดสแตนด์บาย

  3. กู้คืนข้อมูลสำรองด้วยโหมดสแตนด์บาย ตรวจสอบจำนวนตารางหลังจากการเรียกคืนบันทึกแต่ละครั้ง เพื่อดูว่าบันทึกสำรองใดเก็บบันทึกการตัดทอนและลบบันทึกการทำงาน

เมื่อเรากู้คืนข้อมูลสำรองบันทึกตั้งแต่เวลา 18.00 น. ตาราง "dump truncate" จะว่างเปล่า และรายการจากตาราง "dump delete" หายไป เป็นผลให้มันหมายถึง:

ระหว่าง 17:45 น. ถึง 18:00 น. ตาราง "dump truncate" จะถูกตัดทอน และข้อมูลจากตาราง "dump delete" จะถูกล้างไปพร้อมกัน

คุณต้องเรียกใช้คำสั่งกู้คืนต่อไปนี้:

ระบุรายละเอียดของการดำเนินการตัดและลบโดยใช้ข้อมูลสำรอง:

ขั้นตอนที่ 1:รวบรวมรหัสธุรกรรมสำหรับการดำเนินการตัดทอนและลบทั้งหมดที่เกิดขึ้นระหว่าง 17:45 ถึง 18:00 น.

แบบสอบถาม:

เราพบว่ามีการดำเนินการ 2 รายการ ได้แก่ การลบและตัดทอน เมื่อเวลา 17:50 น. และการดำเนินการเหล่านี้ดำเนินการโดย RP Dev สำหรับการเข้าสู่ระบบ

ขั้นตอนที่ 2:ค้นหาชื่อตารางที่เชื่อมโยงกับรหัสธุรกรรม

หากต้องการรับข้อมูลเกี่ยวกับการดำเนินการลบ ให้ทำตามขั้นตอนด้านล่าง:

I) กำหนด ID อ็อบเจ็กต์และ ID พาร์ติชันของการดำเนินการลบ

จากผลลัพธ์นี้ เราสามารถอนุมานข้อมูลต่อไปนี้:คอลัมน์คำอธิบายและชื่อธุรกรรม:ดำเนินการลบแล้ว

  • เวลาเริ่มต้น:การลบเริ่มต้นเมื่อ 2022/01/05 17:50:22:493
  • Login_Name:RP_DEV ได้เรียกใช้การดำเนินการลบ
  • ข้อมูลการล็อก:แต่ละแถวที่ขึ้นต้นด้วยคำนำหน้า "HoBt" หมายถึงการลบหนึ่งแถว รวมเป็น 7 แถว
  • รหัสอ็อบเจ็กต์ที่เชื่อมโยงกับตารางที่นำข้อมูลออก
  • Partition Id:Partition id ของวัตถุที่ข้อมูลถูกลบ

II) ค้นหาตารางที่มี ID อ็อบเจ็กต์และ ID พาร์ติชัน

แบบสอบถาม:

ตอนนี้เราสามารถสรุปได้ว่าข้อมูลจาก "dump delete" ถูกลบโดยผู้ใช้ RP DEV เมื่อเวลา 17:50 น. ภายใต้รหัสธุรกรรม '0000:00016a96' และลบทั้งหมด 7 แถว

หากต้องการรับข้อมูลเกี่ยวกับการดำเนินการตัดทอน ให้ทำตามขั้นตอนด้านล่าง:

I) กำหนด ID อ็อบเจ็กต์และ ID พาร์ติชันของการดำเนินการตัดทอน

เอาท์พุต:

ตอนนี้เราสามารถสรุปได้ว่าข้อมูลจาก "dump delete" ถูกลบโดยผู้ใช้ RP DEV เมื่อเวลา 17:50 น. ภายใต้รหัสธุรกรรม '0000:00016a96' และลบทั้งหมด 7 แถว

หากต้องการรับข้อมูลเกี่ยวกับการดำเนินการตัดทอน ให้ทำตามขั้นตอนด้านล่าง:

I) กำหนด ID อ็อบเจ็กต์และ ID พาร์ติชันของการดำเนินการตัดทอน

แบบสอบถาม:

เอาท์พุต

ผลลัพธ์ของการดำเนินการตัดทอนจะแตกต่างจากการดำเนินการลบเล็กน้อย

คอลัมน์ Partition ID:ไม่แสดง ID พาร์ติชันที่ถูกต้อง คุณสามารถค้นหาข้อมูลนี้ได้ในคอลัมน์คำอธิบาย รหัสพาร์ติชันถูกเน้น รหัสพาร์ติชันคือ 72057594043564032 และ 72057594043629568

ล็อกคำอธิบาย: แถว ​​SCH_M_OBJECT Always เสมอ ใน Lock Description จะแสดง Object ID ที่ถูกต้อง รหัสวัตถุคือ:885578193

ค้นหาตารางที่มี ID อ็อบเจ็กต์และ ID พาร์ติชัน

แบบสอบถาม:

เอาท์พุต

ตอนนี้เราสามารถระบุได้ว่าข้อมูลจาก “dump truncate” ถูกตัดทอนเวลา 17:50 น. โดยผู้ใช้ RP_DEV ภายใต้รหัสธุรกรรม'0000:00016a95'

บทสรุป

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

ให้ผู้เชี่ยวชาญของเราแนะนำคุณเกี่ยวกับเส้นทางแพลตฟอร์มข้อมูลยุคใหม่

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