การสำรองข้อมูล SQL แตกต่างจากการสำรองข้อมูลเซิร์ฟเวอร์รายคืนตามปกติอย่างไร


9

แผนกไอทีของเราสำรองเซิร์ฟเวอร์ทั้งหมดทุกคืน (มีการติดตั้งอินสแตนซ์ SQL Server บนเซิร์ฟเวอร์นี้) ซึ่งควรสำรองเซิร์ฟเวอร์นั้นตลอดจนเครือข่ายทั้งหมดในกรณีที่มีบางอย่างผิดปกติ ...

ดังนั้นผู้จัดการของฉันถามว่าการสำรองข้อมูล Full, Differential และ Log SQL ที่สำคัญของฉันคืออะไรเมื่อเทียบกับแผนกไอทีที่สำรองไว้? เพื่อประหยัดพื้นที่บนเซิร์ฟเวอร์ของเราแทนที่จะเก็บไฟล์เหล่านี้ไว้สองสามสัปดาห์แล้วลบมันเธอคิดว่าฝ่ายไอทีจะให้บริการ!

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

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

คำตอบ:


8

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

การสำรองข้อมูลเซิร์ฟเวอร์จะไม่แทนที่การสำรองฐานข้อมูล แต่จะเป็นการเสริมโดยการ "เก็บถาวร" ไฟล์สำรองฐานข้อมูลระยะยาว (เช่นมากกว่าวันนี้)

ในที่สุดคุณและฝ่ายบริหารของคุณจะต้องตัดสินใจ RPO ของคุณ (วัตถุประสงค์ของจุดกู้คืน - คุณต้องกู้คืนได้มากแค่ไหน) ด้วยการสำรองข้อมูลเซิร์ฟเวอร์รายวันเท่านั้นและไม่มีการสำรองฐานข้อมูลคุณจะสูญเสียงานเต็มวันในกรณีที่เลวร้ายที่สุด

แก้ไข : @Sting มีจุดที่ถูกต้องใน shadow copy นั้น (กลไกที่ใช้ในการทำสำเนาสำรองของเซิร์ฟเวอร์) นั้นไม่น่าที่จะทำการคัดลอกไฟล์ฐานข้อมูลทั้งหมดของคุณพร้อมกันอย่างแน่นอน (รวมถึงไฟล์บันทึก) ซึ่งอาจทำให้เกิดความไม่สอดคล้องกัน คุณคืนค่าการสำรองข้อมูล ตัวอย่างเช่นหาก shadow copy อ่านบันทึกธุรกรรมสองสามมิลลิวินาทีก่อนที่จะอ่านไฟล์ฐานข้อมูลไฟล์ฐานข้อมูลอาจมีธุรกรรมที่ไม่ได้รับการยอมรับ แต่เนื่องจากธุรกรรมได้รับการมอบหมายเป็นมิลลิวินาทีในภายหลังบันทึกจะไม่มีบันทึกใด ๆ


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

2
ด้วยการสำรองฐานข้อมูลที่จัดส่งไปยังเซิร์ฟเวอร์อื่นหากเซิร์ฟเวอร์ของคุณล่มคุณจะมีความสามารถในการกู้คืน ณ เวลาที่กำหนดจนถึงการสำรองข้อมูลบันทึกธุรกรรมล่าสุด (ไม่ว่าเวลาใดก็ตามที่เซิร์ฟเวอร์สำรอง) หากคุณพึ่งพาการสำรองข้อมูลเซิร์ฟเวอร์เพียงอย่างเดียวคุณจะต้องกลับไปที่สถานะฐานข้อมูลเมื่อค่ำเวลา 19.00 น .
Daniel Hutmacher

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

7

มีโอกาสที่การกู้คืนไฟล์ mdf และ ldf จาก shadow copy จะไม่สอดคล้องกับการทำธุรกรรม นั่นหมายถึงการคืนค่าเงาเหล่านี้ไม่สอดคล้องกับคุณสมบัติ ACID ของฐานข้อมูล

https://msdn.microsoft.com/en-us/library/aa480356.aspx

โอกาสคือการคืนค่าอาจจะใช้ได้ แต่คุณจะถูกทิ้งให้สงสัยว่าคุณได้รับอะไร (ไม่ต้องพูดถึงคุณจะได้รับมอบหมายให้ทำการทดสอบเพื่อให้แน่ใจว่าการสำรองข้อมูลเซิร์ฟเวอร์ / สำเนาเงาทำงานอย่างถูกต้องในแต่ละเซิร์ฟเวอร์และทุกครั้ง) นอกจากนี้ไม่มีวิธีกู้คืนบันทึกธุรกรรมไปยังจุดเช่นเดียวกับที่คุณสามารถใช้ SQL Server T -SQL RESTORE LOG / STOPAT

จนกว่าการสำรอง / คืนค่า Windows Server จะเป็นไปตามการทดสอบ SQL Server ACID อุตสาหกรรมของเราจะไม่สามารถรับโอกาสใด ๆ ได้

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


5
ความเสี่ยงนี้อาจสูงกว่านี้มากขึ้นอยู่กับการทำงานของซอฟต์แวร์ "การสำรองข้อมูลระบบ" และไฟล์ข้อมูล / บันทึกสำหรับฐานข้อมูลใด ๆ Shadow Copy นั้นยอดเยี่ยมจนกระทั่งมันไม่ตรงกัน
Aaron Bertrand

สแนปชอตของโวลุ่ม Windows ไม่ควรสอดคล้องกันใช่หรือไม่
usr

@usr ฉันไม่คิดว่ามันเป็นเรื่องจริงในทุก ๆ เล่ม
แอนดี้

3

ทั้งหมดนี้ขึ้นอยู่กับผลิตภัณฑ์ที่แผนกไอทีของคุณใช้สำหรับการสำรองข้อมูลในระดับเซิร์ฟเวอร์

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

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

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

หากผู้จัดการของคุณไม่ทำงานโดยใช้การสำรองข้อมูลในระดับเซิร์ฟเวอร์ฉันจะทำการวิจัยผลิตภัณฑ์ที่พวกเขาใช้อย่างหนัก ฉันจะดูว่ามี "add-on" หรือเอเจนต์สำรองของ SQL Server ใดที่สามารถซื้อเพื่อให้ทำการสำรองข้อมูล VDI ของฐานข้อมูล

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


0

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

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

แต่คุณสามารถคืนค่าการสำรองข้อมูลของคุณตามความเร็วที่คุณต้องการเมื่อเซิร์ฟเวอร์ของคุณยังมีชีวิตอยู่

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

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