ความแตกต่างระหว่างการสำรองข้อมูลเต็มรูปแบบและการสำรองข้อมูลเต็มรูปแบบเฉพาะการคัดลอกเท่านั้น


17

ฉันเห็นในเธรด SQL Server Central การสำรองข้อมูลเต็มตัดทอนบันทึกหรือไม่ การสำรองข้อมูลเต็มรูปแบบไม่ตัดทอนบันทึก:

ไม่ทั้งการสำรองข้อมูลทั้งหมดหรือส่วนต่างจะตัดทอนบันทึกธุรกรรม - Lynn Pettis
No - การสำรองข้อมูลเต็มรูปแบบไม่ตัดทอนบันทึก - Chad Crawford

ดังนั้นความแตกต่างระหว่างการสำรองข้อมูลเต็มรูปแบบและการสำรองข้อมูลเต็มรูปแบบเฉพาะการคัดลอกคืออะไร?

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

คำตอบ:


14

อย่างน้อยที่สุดคุณต้องพิจารณาการสำรองข้อมูลต่างกัน ยกเว้นว่าใช้เฉพาะการคัดลอกแบบเต็มการสำรองข้อมูล diff ถัดไปของคุณจะถูกปิด สำเนาสำรองเท่านั้น :

การสำรองข้อมูลเต็มรูปแบบเพียงคัดลอกเท่านั้น (ทุกรุ่นการกู้คืน)การสำรองข้อมูลแบบคัดลอกเท่านั้นไม่สามารถทำหน้าที่เป็นฐานที่แตกต่างกันหรือสำรองข้อมูลที่แตกต่างกัน

ข้อแตกต่างระหว่าง full-full และ full-copy คือ full-copy ไม่ทำให้เชนแตกต่างกัน ไม่มีการแบ่งห่วงโซ่การบันทึกเนื่องจากไม่มีการตัดทอนล็อกไฟล์


24

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

เมื่อคุณทำการสำรองข้อมูลเต็มรูปแบบการDatabaseBackupLSNปรับปรุง หลังจากทำการสำรองข้อมูลเต็มรูปแบบหากคุณใช้การสำรองข้อมูลส่วนต่างที่การสำรองข้อมูลนั้นDatabaseBackupLSNตรงกับการสำรองข้อมูลทั้งหมดดังนั้น SQL สามารถเชื่อมโยงสองรายการเข้าด้วยกันได้ (เช่นรู้จาก LSN เหล่านั้นที่ diff ตามเต็ม)

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

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

มีคำอธิบายที่ดีเกี่ยวกับปัญหานี้และทำไมผู้คนจำนวนมากเข้าใจผิดในการทำลายห่วงโซ่การสำรองข้อมูล - REDUX (หรือการกินอีกา)โดย Michael K. Campbell ซึ่งมีไกด์นำทางที่ดีเช่นนี้:

อิมเมจ SQLmag - การสำรองข้อมูลทั้งหมด v Copy_Only การสำรองข้อมูล

สำหรับคำอธิบายที่ดีเกี่ยวกับ LSN สี่แบบที่ต่างกันและวิธีการใช้ให้ดูที่การทำความเข้าใจหมายเลขลำดับบันทึกการทำงานของเซิร์ฟเวอร์ SQL สำหรับการสำรองข้อมูลโดย Simon Liew

วิธีการหลีกเลี่ยงปัญหานี้คือการไม่มีการสำรองข้อมูลมาตรฐานของฐานข้อมูลมากกว่าหนึ่งอย่าง ควรทำสำเนาสำรองสำรองหรือสำรองด้วยตัวเลือกคัดลอกอย่างเดียวดูสำเนาสำรองเท่านั้น (SQL Server)สำหรับรายละเอียดทั้งหมด แต่คุณต้องใช้ตัวเลือก "คัดลอกเฉพาะสำรองข้อมูล" ใน SSMS ผ่าน T-SQL ที่ระบุWITH COPY_ONLYไว้ในคำสั่ง หรือกับ PowerShell ใช้-CopyOnlyพารามิเตอร์


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

12

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

BACKUP DATABASE Test TO DISK = 'C:/Test.bak'

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

แต่เราจะสร้างการสำรองข้อมูลที่จะไม่ส่งผลต่อกระบวนการสำรองหรือคืนค่าฐานข้อมูลนั้นได้ดังต่อไปนี้ นี่คือที่มาสำรองสำเนาเท่านั้น

BACKUP DATABASE Test TO DISK = 'C:\Test.bak' WITH COPY_ONLY

ป้อนคำอธิบายรูปภาพที่นี่


2

เมื่อคุณมีการสำรองข้อมูลเต็มรูปแบบและชุดของการสำรองข้อมูลไฟล์บันทึกโซ่การดูแลจะถูกเก็บรักษาไว้โดยใช้ LSN (หมายเลขลำดับการบันทึก) หากคุณต้องการสำรองข้อมูลโดยไม่ทำลายห่วงโซ่การบันทึกให้ทำสำเนาสำรองเท่านั้น

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

ตัวอย่างเช่นสมมติว่าคุณมีสถานการณ์จำลองการสำรองข้อมูลที่ใช้การสำรองข้อมูลเต็มรูปแบบทุก ๆ 6 ชั่วโมง (เที่ยงคืน, 6 โมงเช้า, เที่ยง, 18.00 น.) และบันทึกการสำรองข้อมูลทุก ๆ 15 นาที มีคำขอเข้ามาในเวลา 9.00 น. เพื่อให้สำเนาของฐานข้อมูลของคุณวางบนเซิร์ฟเวอร์ทดสอบ คุณต้องการที่จะสำรองข้อมูลโดยไม่ทำลายห่วงโซ่การบันทึกของคุณหรือรบกวนงานการสำรองข้อมูลของคุณ นี่คือเมื่อมีการสำรองข้อมูลสำเนาเท่านั้น สำเนาสำรองเท่านั้นจะไม่รบกวนชุดสำรองปกติของคุณ


1
ฉันไม่คิดว่าห่วงโซ่การสำรองข้อมูลลักษณะพิเศษการคัดลอกเท่านั้นการสำรองข้อมูลเต็มรูปแบบแบบคัดลอกเท่านั้นไม่ได้ตั้งค่าฐานที่แตกต่าง นั่นคือความแตกต่างเท่านั้นดูลิงค์เหล่านี้sqlservercentral.com/Forums/Topic1471058-391-1.aspx?Update=1 และsqlinthewild.co.za/index.php/2011/03/08/ …
นักวิจัยด้านไอที

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

สมมติว่าคุณมีการสำรองข้อมูลเต็มรูปแบบ: FB1 และการสำรองข้อมูล 3 รายการ: LB1, LB2, LB3 ตอนนี้ทำการสำรองข้อมูลเต็มรูปแบบด้วยตนเอง: FB2 (โดยไม่ต้อง copy_only) รอการสำรองข้อมูลล็อกอีก 3 รายการ: LB4, LB5, LB6 ตอนนี้ลบ FB2 คุณสามารถกู้คืน FB1 + LB1 + LB2 + LB3 + LB4 + LB5 + LB6 ได้หรือไม่?
StanleyJohns

ใช่ฉันสามารถกู้คืนได้ ฉันใช้การสำรองข้อมูลเต็มรูปแบบ (ไม่ใช่แบบคัดลอก) FB1 จากนั้นเข้าสู่ระบบสำรองข้อมูล (LB1) จากนั้นสำรองข้อมูลเต็มรูปแบบ (ไม่คัดลอกเท่านั้น) FB2 จากนั้นทำการสำรองข้อมูลอีกครั้ง (LB2) จากนั้นฉันก็กู้คืนในลำดับนี้ FB1 + LB1 + LB2 คืนค่าอย่างถูกต้องและพบว่าทุกแถวป้อนอย่างถูกต้อง
นักวิจัยด้านไอที

2
-1 เนื่องจากการคัดลอกตัวเลือกเท่านั้นที่มีการสำรองข้อมูลเต็มรูปแบบไม่เกี่ยวข้องกับเครือข่าย LSN ผู้วิจัยชี้ว่า แต่คุณไม่ได้อัปเดต / ลบคำตอบของคุณ
Edward Dortland

0

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.