5
วิธีตรวจจับการเปลี่ยนแปลงใด ๆ ในฐานข้อมูล (DDL และ DML)
มีฐานข้อมูลจำนวนมากบนเซิร์ฟเวอร์ SQL ของลูกค้าของฉัน ฐานข้อมูลเหล่านี้อยู่ระหว่างการพัฒนาเพื่อให้นักพัฒนาสามารถออกแบบปรับโครงสร้างทำการแก้ไขข้อมูลและอื่น ๆ มีฐานข้อมูลบางส่วนที่เปลี่ยนแปลงได้ยาก ลูกค้าของฉันต้องรักษาความปลอดภัยทั้งหมด (สำรองข้อมูล) และใช้เวลาในการจัดการสภาพแวดล้อม (บริษัท ไม่มีตำแหน่งผู้ดูแลฐานข้อมูลที่ บริษัท ) หลังจากการสนทนาที่ยาวนานลูกค้าได้ตัดสินใจใช้กลยุทธ์การสำรองข้อมูลเต็มรูปแบบรายวันเนื่องจากความสะดวกในการกู้คืน ดังนั้นนี่คือบทสรุปของสถานการณ์: จำนวนฐานข้อมูลสามารถเปลี่ยนแปลงได้ทุกวัน ฐานข้อมูลที่เปลี่ยนแปลง (หมายถึงข้อมูลและ / หรือโครงสร้างที่มีการเปลี่ยนแปลง) จะถูกสำรอง ฐานข้อมูลที่ไม่เปลี่ยนแปลงจะไม่ถูกสำรอง โซลูชันจะไม่ส่งผลกระทบต่อโครงสร้างฐานข้อมูล (ไม่ จำกัด ข้อกำหนด) "เครื่องมือสำรอง" นี้จะทำงานโดยอัตโนมัติ ปัญหาหลัก: วิธีการตรวจสอบว่ามีการเปลี่ยนแปลงฐานข้อมูล ส่วนแรกของปัญหา (DDL เปลี่ยนแปลง) สามารถแก้ไขได้โดยการใช้ทริกเกอร์ DDL แต่การเปลี่ยนแปลงข้อมูล (การเปลี่ยนแปลง DML) เป็นปัญหา เป็นไปไม่ได้ที่จะใช้ทริกเกอร์ DML กับทุกตารางของฐานข้อมูลทั้งหมดเพื่อติดตามการเปลี่ยนแปลง (ประสิทธิภาพการจัดการวัตถุที่ขยายเพิ่ม ... ) เอ็นจิ้นการสำรองข้อมูลต้องติดตามการเปลี่ยนแปลงทั้งหมดเพื่อทำเครื่องหมายแต่ละฐานข้อมูลว่าพร้อมสำหรับการสำรองข้อมูล Change Data Captureเป็นวิธีแก้ปัญหา แต่ดูเหมือนว่าหนักเกินไป …