पूर्ण और प्रतिलिपि-केवल बैकअप के बीच महत्वपूर्ण अंतर यह है कि एलएसएन (लॉग अनुक्रम संख्या) है या नहीं, और विशेष रूप DatabaseBackupLSN
से अपडेट किया गया है या नहीं ।
जब आप एक पूर्ण बैकअप लेते हैं, तो DatabaseBackupLSN
अपडेट किया जाता है। पूर्ण बैकअप लेने के बाद, यदि आप एक डिफरेंशियल बैकअप लेते हैं, जिसमें बैकअप होता है, DatabaseBackupLSN
जो पूर्ण बैकअप से मेल खाता है, और इसलिए SQL दोनों को एक साथ जोड़ सकता है (जैसे कि यह उन एलएसएन से पता चलता है कि अंतर पूर्ण का अनुसरण करता है)।
समस्या तब आती है जब आपके पास शेड्यूल किए गए बैकअप चल रहे होते हैं, इसलिए आपके पास एक प्रारंभिक पूर्ण बैकअप होता है, और फिर डिफरेंशियल का एक क्रम होता है। यदि आप मैन्युअल रूप से एक पूर्ण बैकअप लेते हैं, तो यह LSN को अपडेट करेगा, और फिर उस बिंदु से प्रत्येक बैकअप बैकअप जो आप अनुसूचित बैकअप के माध्यम से लेते हैं, यह संदर्भित करेगा कि नया LSN मूल नहीं है। पुनर्स्थापित करने की आवश्यकता होने की स्थिति में, आप अपने शेड्यूल किए गए पूर्ण बैकअप को पुनर्स्थापित कर सकते हैं, लेकिन जब आप मैन्युअल जॉब के बाद लिए गए किसी भी विभेदक बैकअप को पुनर्स्थापित करने का प्रयास करते हैं, तो आप पाएंगे कि यह LSNs के समान नहीं रह जाएगा।
कॉपी-ओनली बैकअप के साथ यह स्पर्श नहीं करता है DatabaseBackupLSN
, और इस तरह बैकअप की श्रृंखला नहीं टूटती है।
इस मुद्दे का एक अच्छा वर्णन है, साथ ही साथ क्यों कई लोगों ने माइकल के। कैंपबेल द्वारा बैकअप चेन - REDUX (या ईटिंग क्रो) को तोड़ने में इसे गलत समझा , जिसमें इस तरह के अच्छे विज़ुअल गाइड शामिल हैं:
चार अलग-अलग एलएसएन की अच्छी व्याख्या के लिए और उनका उपयोग कैसे किया जाता है, साइमन एलवाईवाई द्वारा बैकअप के लिए SQL सर्वर लॉग अनुक्रम संख्या को समझना ।
मुद्दे से बचने का तरीका डेटाबेस के मानक बैकअप करने वाली एक से अधिक चीज़ों का नहीं होना है। कोई भी एडहॉक या सेकेंडरी बैकअप कॉपी-ओनली ऑप्शन के साथ किया जाना चाहिए, कॉपी-ओनली बैकअप (SQL सर्वर) पूरी जानकारी के लिए देखें, लेकिन अनिवार्य रूप से आप SSMS में "कॉपी ओनली बैकअप" विकल्प का उपयोग टी-एसक्यूएल WITH COPY_ONLY
कमांड के माध्यम से करते हैं। , या PowerShell के साथ -CopyOnly
पैरामीटर का उपयोग करें ।