การซ่อมแซม ความเสียหายของฐานข้อมูล SQL ด้วยการซ่อมแซม CHECKDB? คุณสามารถสูญเสียข้อมูลของคุณไปตลอดกาล

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

บทความนี้ให้ความเข้าใจในเชิงลึกเกี่ยวกับปัญหาความเสียหายของฐานข้อมูล SQL และวิธีการซ่อมแซมฐานข้อมูลที่เสียหาย นอกจากนี้ยังสรุปเครื่องมือซ่อมแซมฐานข้อมูล SQL Server เป็นทางเลือกสำหรับ DBBC CHECKDB ที่มีอาร์กิวเมนต์ REPAIR_ALLOW_DATA_LOSS

ประเภทของฐานข้อมูล SQL Server เสียหาย

ความเสียหายในระดับเพจของ SQL: ความเสียหายระดับเพจเกิดขึ้นเมื่อข้อมูลหรือข้อมูลที่จัดเก็บในส่วนหัวเนื้อหาหรืออาร์เรย์สล็อตของเพจฐานข้อมูลถูกเปลี่ยนแปลงจนผู้ใช้ไม่สามารถเข้าถึงเพจได้ ความเสียหายในระดับหน้าอาจเกิดขึ้นได้จากสาเหตุต่างๆเช่นปัญหาฮาร์ดแวร์ดิสก์ / ระบบย่อยล้มเหลวมัลแวร์การอัปเดตและแพตช์ที่ผิดพลาดเป็นต้น

ความเสียหายของหน้าเริ่มระบบ: นี่เป็นกรณีที่สำคัญยิ่งกว่าของความเสียหายของฐานข้อมูล SQL เนื่องจากเกี่ยวข้องกับหน้าบูต มีเพียงหนึ่งหน้าสำหรับเริ่มระบบต่อฐานข้อมูล SQL และเก็บข้อมูลเมตาสำหรับฐานข้อมูลทั้งหมด ดังนั้นความเสียหายอาจส่งผลต่อไฟล์ฐานข้อมูลทั้งหมด นอกจากนี้ DBCC CHECKDB หรือการกู้คืนระดับเพจไม่สามารถแก้ไขความเสียหายของบูตเพจได้ ข้อ จำกัด นี้ได้มาจากข้อเท็จจริงที่ว่าหน้าบูตเก็บข้อมูล Meta เช่นเวอร์ชันปัจจุบัน ID ฐานข้อมูลจุดตรวจ LSN เป็นต้น ความเสียหายของฐานข้อมูล

ความเสียหายของดัชนีที่ไม่ใช่คลัสเตอร์: ความเสียหายประเภทนี้เกี่ยวข้องกับ SQL Server 2008 และเวอร์ชันที่ใหม่กว่า โดยทั่วไปจะเกิดขึ้นเมื่อ SQL DBA พยายามเรียกใช้คำสั่ง UPDATE ที่ซับซ้อนพร้อมคำใบ้ NOLOCK เทียบกับตาราง ความเสียหายของดัชนีที่ไม่ใช่คลัสเตอร์นำไปสู่การอ่านแบบสอบถามฐานข้อมูล SQL ไม่ถูกต้องหรือการดำเนินการอ่านหลายครั้งในค่าเดียวกัน

ฐานข้อมูล SQL ในโหมดผู้ต้องสงสัย: โหมดผู้ต้องสงสัยของฐานข้อมูล SQL เป็นปัญหาที่ DBA เผชิญอยู่บ่อยครั้งเนื่องจากความเสียหายในไฟล์กลุ่มไฟล์หลักซึ่งจะหยุดการกู้คืนฐานข้อมูลระหว่างการเริ่มต้น SQL Server SQL Server อาจทำเครื่องหมายฐานข้อมูลในโหมด SUSPECT หลังจากตรวจพบปัญหาในล็อกไฟล์เนื่องจากสาเหตุเช่นความผิดปกติของฮาร์ดแวร์ปัญหาพื้นที่ดิสก์ระบบขัดข้อง ฯลฯ ฐานข้อมูลในโหมดผู้ต้องสงสัยไม่สามารถดำเนินการอ่าน / เขียนได้ซึ่งนำไปสู่การหยุดทำงาน .

วิธีการซ่อมแซมฐานข้อมูล SQL Server ที่เสียหายด้วยคำสั่ง DBCC CHECKDB

DBCC CHECKDBคือชุดคำสั่ง T-SQL เพื่อตรวจสอบความสมบูรณ์ทางตรรกะและทางกายภาพของวัตถุฐานข้อมูล SQL ในฐานข้อมูล SQL Server หรือฐานข้อมูล Azure SQL คุณสามารถรันคำสั่งเหล่านี้บนฐานข้อมูลทั้งหมดตารางแต่ละรายการและมุมมองในฐานข้อมูลหรือแค็ตตาล็อก

ต่อไปนี้เป็นไวยากรณ์ทั่วไปของคำสั่ง DBCC CHECKDB:

ต่อไปนี้เป็นคำอธิบายของอาร์กิวเมนต์ REPAIR_FAST, REPAIR_REBUILD และ REPAIR_ALLOW_DATA _LOSS:

การใช้ DBCC CHECKDB สำหรับการซ่อมแซมฐานข้อมูล SQL

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

ต่อไปนี้เป็นขั้นตอนในการรันคำสั่ง DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS:

  1. สร้างสำเนาทางกายภาพของฐานข้อมูลรวมถึงไฟล์ข้อมูลหลักและรองไฟล์บันทึกธุรกรรมแค็ตตาล็อกข้อความแบบเต็มสตรีมไฟล์ ฯลฯ
  2. ตั้งค่าฐานข้อมูลเป็นโหมดผู้ใช้คนเดียวโดยใช้ Transact-SQL

หมายเหตุสำคัญ:

การตั้งค่าฐานข้อมูลเป็นโหมดผู้ใช้คนเดียวจะตัดการเชื่อมต่อกับผู้ใช้รายอื่นโดยไม่มีการเตือน
ก่อนที่จะเปลี่ยนฐานข้อมูลเป็นโหมดผู้ใช้คนเดียวตรวจสอบให้แน่ใจว่าตัวเลือก AUTO_UPDATE_STATISTICS_ASYNC ถูกตั้งค่าเป็นปิด
a) เชื่อมต่อกับ T-SQL Database Engine และคลิก New Query

b) รันคำสั่ง ALTER DATABASE ดังต่อไปนี้:

ใช้ต้นแบบ;

ไป

แก้ไขฐานข้อมูล SoundBox2020

ตั้งค่า SINGLE_USER

ด้วย ROLLBACK ทันที;

ไป

แก้ไขฐานข้อมูล SoundBox2020

ตั้งค่า READ_ONLY;

ไป

แก้ไขฐานข้อมูล SoundBox2020

ตั้งค่า MULTI_USER;

ไป

คำสั่งด้านบนจะเปลี่ยนฐานข้อมูลชื่อ SoundBox2020 เป็นโหมดผู้ใช้คนเดียว ด้วยอาร์กิวเมนต์ ROLLBACK IMMEDIATE ใช้เพื่ออนุญาตให้ย้อนกลับของธุรกรรมที่ไม่สมบูรณ์ทั้งหมด

c) รัน DBCC CHECKDB ด้วยอาร์กิวเมนต์ REPAIR_ALLOW_DATA_LOSS ดังต่อไปนี้:

DBCC CHECKDB (‘SoundBox2020’, REPAIR_ALLOW_DATA_LOSS)

ไป

ผลลัพธ์ของคำสั่งจะมีลักษณะดังนี้:

ผลลัพธ์ DBCC สำหรับ ‘SoundBox2020’

ซ่อมแซม: เพจ (1: 166) ถูกยกเลิกการจัดสรรจากอ็อบเจ็กต์ ID 2121058256, ID ดัชนี 0, ID พาร์ติชัน 72057594039042048, จัดสรร ID ยูนิต 72057594043301888 (พิมพ์ข้อมูลในแถว)

ข่าวสารเกี่ยวกับ 8928 ระดับ 16 สถานะ 1 บรรทัดที่ 1

ID อ็อบเจ็กต์ 2121058256, ID ดัชนี 0, ID พาร์ติชัน 72057594039042048, จัดสรร ID ยูนิต 72057594043301888 (พิมพ์ข้อมูลในแถว): เพจ (1: 166) ไม่สามารถประมวลผลได้ ดูข้อผิดพลาดอื่น ๆ สำหรับรายละเอียด

มี 930 แถวใน 14 หน้าสำหรับวัตถุ “SoundBox2020”

เครื่องมือซ่อมแซมฐานข้อมูล SQL สามารถช่วยธุรกิจของคุณได้

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

การมีเครื่องมือซ่อมแซมฐานข้อมูลขององค์กรสามารถเชื่อมช่องว่างนี้ในกลยุทธ์การบำรุงรักษาและการกู้คืนฐานข้อมูล SQL ของคุณช่วยให้คุณสามารถจัดการกับสถานการณ์การหยุดทำงานได้อย่างมีประสิทธิภาพและปลอดภัย ตัวอย่างเช่นStellar Repair สำหรับ MS SQL เป็นแพ็คเกจซอฟต์แวร์ซ่อมแซมฐานข้อมูล SQL ขั้นสูงสำหรับการซ่อมแซมไฟล์ MDF และ NDF ที่เสียหายสำหรับ SQL Server 2019, 2017 และเวอร์ชันที่เก่ากว่าโดยไม่มีข้อมูลสูญหาย นอกจากนี้ยังสามารถแยกและกู้คืนฐานข้อมูลจากไฟล์สำรองที่เสียหาย ดังนั้นการพิจารณาเครื่องมือเช่นนี้สามารถช่วยประหยัดวันได้แม้ว่าสำเนาฐานข้อมูลที่ได้รับการดูแลอย่างดีจะเสียหาย

THAI-PDPA ให้คำปรึกษาและบริการปกป้องข้อมูลส่วนบุคคลตาม พ.ร.บ.ฯ แบบครบวงจร

ผู้ที่สนใจใช้บริการ Data Protection Services ของ THAI-PDPA สามารถติดต่อฝ่ายขายที่ดูแลคุณหรือฝ่ายการตลาดได้ที่เบอร์ 0-2860-6659 หรืออีเมล dcs@ko.in.rh