क्यों TO DISK = N’NUL’
?
मुझे समझ नहीं आ रहा है कि आप क्यों इस्तेमाल कर रहे हैं TO DISK = N’NUL’
:
BACKUP
DATABASE [test0916aj8CJ] TO DISK = N’NUL’
यदि आप ऐसा करते हैं, तो बैकअप NUL
(यानी = कहीं नहीं / कुछ भी) में सहेजा जाता है और इसका उपयोग नहीं किया जा सकता क्योंकि इसकी फ़ाइल मौजूद नहीं है।
जबकि NUL
लॉग बैकअप के लिए एक गंतव्य के रूप में भी इस्तेमाल किया जा सकता है, इसका उपयोग या तो नहीं किया जाना चाहिए, विशेष रूप से उत्पाद सर्वर पर क्योंकि लॉग खो जाएगा और बैकअप श्रृंखला टूट जाएगी। (~ समान SHRINKFILE
)
लॉग बैकअप
समूह में DB जोड़ने से पहले, आपको इसे तैयार करना होगा। जब आप एक द्वितीयक DB तैयार करना चाहते हैं, तो कम से कम 1 ट्रांजेक्शन लॉग बैकअप लिया जाना चाहिए और पुनर्स्थापित किया जाना चाहिए। दर्पण इसका उपयोग यह पता लगाने के लिए करता है कि कौन से लेन-देन पहले से ही द्वितीयक डीबी पर सिंक किए गए हैं और कौन से लेनदेन अभी प्राथमिक डीबी के साथ सिंक में नहीं हैं।
इसलिए आपको प्राथमिक DB पर लेनदेन लॉग का बैकअप लेना चाहिए:
BACKUP LOG [test0916aj8CJ] TO DISK = N'....bak'
WITH COPY_ONLY, FORMAT, INIT, NAME = N'test0916aj8CJ-Transaction Log Backup', STATS = 10
COPY_ONLY
विकल्प इस्तेमाल किया जाना चाहिए। यह सुनिश्चित करता है कि लॉग बैकअप के अंत में लॉग्स को छोटा नहीं किया गया है।
प्राथमिक DB बैकअप श्रृंखला
हालाँकि, आप केवल एक लॉग बैकअप को पुनर्स्थापित नहीं कर सकते हैं, जिसका अर्थ है एक बैकअप श्रृंखला के बिना (परि का उत्तर भी देखें)। इसका मतलब यह है कि एक पूर्ण डेटाबेस बैकअप (+ यदि आवश्यक हो तो एक वैकल्पिक अंतर) के बाद लेनदेन लॉग बैकअप लिया जाना चाहिए।
चूंकि COPY_ONLY
विकल्प बैकअप श्रृंखला को नहीं तोड़ता है, इसलिए यह बैकअप श्रृंखला भी नहीं बनाता है। COPY_ONLY
विकल्प डाटाबेस बैकअप के लिए इस्तेमाल नहीं किया जा सकता।
बैकअप क्रम में:
COPY_ONLY
विकल्प के बिना पूर्ण डेटाबेस बैकअप
- वैकल्पिक अंतर बैकअप
COPY_ONLY
विकल्प के साथ 1 लॉग बैकअप
- यदि आवश्यक हो तो एक और (या अधिक) लॉग बैकअप ...
द्वितीयक DB को पुनर्स्थापित करें
फिर डेटाबेस बैकअप को द्वितीयक पर (+ विभेदक) पुनर्स्थापित किया जाना चाहिए।
यह NORECOVERY
विकल्प के साथ बहाल किया जाना चाहिए क्योंकि आप FULL बैकअप को पुनर्स्थापित करने के बाद लॉग बैकअप (ओं) को भी पुनर्स्थापित करना चाहते हैं।
अंतिम रूप से आप लॉग बैकअप को पुनर्स्थापित करेंगे। आपको अभी भी NORECOVERY
विकल्प का उपयोग करने की आवश्यकता है क्योंकि दर्पण एक बार लेनदेन को बहाल रखेगा।
NORECOVERY
विकल्प के साथ पूर्ण बैकअप पुनर्स्थापित करें
NORECOVERY
विकल्प के साथ DIFF बैकअप पुनर्स्थापित करें
NORECOVERY
विकल्प के क्रम में सभी लॉग बैकअप पुनर्स्थापित करें
यह सब एक साथ डाल देता है (अपने env के लिए अनुकूल करें)
प्राथमिक सर्वर रन पर:
USE master
Go
BACKUP DATABASE [test0916aj8CJ] TO DISK = N'....bak'
WITH FORMAT, INIT, NAME = N'test0916aj8CJ-Full Database Backup', STATS = 10
GO
BACKUP LOG [test0916aj8CJ] TO DISK = N'....bak'
WITH COPY_ONLY, FORMAT, INIT, NAME = N'test0916aj8CJ-Transaction Log Backup', STATS = 10
GO
द्वितीयक सर्वर रन पर:
USE master
Go
RESTORE DATABASE [test0916aj8CJ] FROM DISK = N'....bak'
WITH FILE = 1, NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE LOG [test0916aj8CJ] FROM DISK = N'....bak'
WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10
फिर आप लाभ समूह में नए माध्यमिक DB को जोड़ने के साथ आगे बढ़ सकते हैं ...
वैकल्पिक क्रियाएं
- DISK विकल्प को एक साझा फ़ोल्डर में सेट करना बेहतर है जो प्राथमिक और द्वितीयक दोनों सर्वरों से उपलब्ध है।
- प्राथमिक और माध्यमिक सर्वर दोनों पर समान डिस्क और स्थान पर DB फ़ाइलों को संग्रहीत करना भी बेहतर है।