प्रदर्शन को प्रभावित किए बिना मैं बड़े SQL सर्वर डेटाबेस का बैकअप कैसे ले सकता हूं?


18

हमारे पास प्रश्नों की रिपोर्ट धीरे-धीरे चल रही है या सुबह जल्दी निकल रही है, और केवल एक ही काम मुझे दौड़ता हुआ दिखाई दे रहा है जो मुझे लगता है कि यह प्रभावित कर सकता है कि यह हमारी ऑनलाइन बैकअप नौकरी है।

डेटाबेस अपने आप में लगभग 300GB का है, और बैकअप का काम सुबह 4:30 बजे शुरू होता है और सुबह 7:00 बजे के बाद तक खत्म नहीं होता है। हमारे बैकअप कार्य का वर्तमान सिंटैक्स है:

BACKUP DATABASE [DatabaseName]
TO DISK = N'E:\Database Backups\DatabaseName.Bak'
WITH INIT, NOUNLOAD, NAME = N'DatabaseName.Bak',
NOSKIP, STATS = 10, NOFORMAT

E:\ सर्वर पर एक विभाजन है जो दोनों डेटाबेस और डेटाबेस बैकअप रखता है।

यह भी ध्यान दिया जाना चाहिए कि यह एक आभासी सर्वर है, न कि एक समर्पित स्टैंडअलोन सर्वर। वर्चुअल सर्वर पर स्विच करने के तुरंत बाद हमें बैकअप प्रक्रिया के दौरान मंदी की शिकायतें मिलने लगीं, इसलिए मुझे लगता है कि यह संबंधित हो सकती है।

क्या इस बैकअप जॉब को चलाने का कोई तरीका है ताकि यह रनिंग के दौरान क्वेरी के प्रदर्शन को प्रभावित न करे?

हम SQL Server 2005 का उपयोग कर रहे हैं

जवाबों:


21
  1. अपने सिस्टम पर बाकी I / O से बैकअप I / O अलग करें। हालांकि इसमें अधिक समय लग सकता है और हिचकी आने का खतरा हो सकता है, लेकिन स्थानीय डिस्क के बजाय नेटवर्क पर बैकअप लेने से उदाहरण पर प्रत्यक्ष प्रभाव को कम करने में मदद मिल सकती है। यहां तक ​​कि एक आभासी मशीन में आपको अन्य भंडारण को उजागर करने में सक्षम होना चाहिए ताकि SQL सर्वर एक अलग I / O सबसिस्टम को लिख सके।
  2. इससे कोई फर्क नहीं पड़ेगा, लेकिन अगर यह नौकरी से चलाया जाता है, तो आपको STATSविकल्प का उपयोग करने की आवश्यकता क्यों है ? क्या आप वाकई अन्य विकल्प की जरूरत है ( NOUNLOAD, NOSKIP, NOFORMAT)? मैंने विकल्पों के पूरे मैट्रिक्स पर कोई व्यापक प्रदर्शन परीक्षण नहीं किया है, लेकिन IMHO को आपको केवल उन विकल्पों का उपयोग करना चाहिए, जिन्हें आप जानते हैं कि आपको आवश्यकता है।
  3. एक अलग समय पर अपने पूर्ण बैकअप को चलाएं जो नियमित उपयोगकर्ता गतिविधि में हस्तक्षेप नहीं करता है। यह हमेशा संभव नहीं होता है, लेकिन यहां तक ​​कि 24/7 संचालन में भी चरम और सुस्त समय होता है।
  4. यदि आप 2008+ पर जाते हैं, तो आप बैकअप कंप्रेशन का लाभ उठा सकते हैं (2008 में एंटरप्राइज़, 2008 R2 + में मानक या एंटरप्राइज़)। यदि आप 2008 में नहीं जा सकते हैं या पर्याप्त संस्करण नहीं है, तो 3 पार्टी बैकअप उपकरण हैं जो आपके लिए संपीड़न करेंगे, और वे इसके लिए बहुत अच्छे हैं। 2008 के बाद से मैं मूल संपीड़न का उपयोग करने में सक्षम रहा हूं, और मैं तीसरे पक्ष में आगे निवेश करने की आवश्यकता के साथ गति और संपीड़न दोनों से काफी संतुष्ट हूं। लेकिन 2005 में मुझे याद है कि रेड-गेट एसक्यूएल बैकअप के साथ अच्छी सफलता मिली ; क्वेस्ट लाइटस्पीड भी काफी अच्छी है, लेकिन मुझे नहीं पता कि डेल अधिग्रहण के बाद से इसमें किस तरह का प्रयास किया जा रहा है।
  5. यदि आपके डेटाबेस पूर्ण पुनर्प्राप्ति में हैं, तो आप पूर्ण बैकअप के बीच अधिक समय तक जा सकते हैं, इस ज्ञान के लिए कि यदि आपको समय में एक बिंदु पर पुनर्प्राप्त करना है, तो संभवतः आपके पास पुनर्स्थापित करने के लिए अधिक लॉग होंगे। आप इस विकल्प को पूरे सप्ताह में भिन्न होने के नीचे अली के सुझाव के साथ जोड़ सकते हैं - यदि आपको गुरुवार को पुनर्प्राप्त करना था, तो आपको 1 पूर्ण, 1 अंतर, और लॉग को अलग से पुनर्स्थापित करने की आवश्यकता होगी।
  6. यदि आपके पास बहुत सारा डेटा है जो बासी और अपरिवर्तित है, तो आप एक अलग रिकवरी प्लान के साथ एक अलग डेटाबेस में होस्टिंग पर विचार कर सकते हैं, या कम से कम विभिन्न फाइलग्रुप पर, और अपने बैकअप ऑपरेशन को इस तरह विभाजित कर सकते हैं। यदि आपके पास संदर्भ या संग्रह डेटा है जिसे केवल-पढ़ने के लिए बनाया जा सकता है, और यदि आप सरल पुनर्प्राप्ति में हैं, तो आप इसे अपने स्वयं के रीड-ओनली फ़ाइलग्रुप में ले जा सकते हैं, इसे एक बार वापस कर सकते हैं, और इसे अपने रात के बैकअप में शामिल नहीं करना है। दुबारा कभी भी। इन MSDN विषयों को देखें:

टुकड़ा करने का काम पुनर्स्थापित करता है

उदाहरण: केवल कुछ फ़ाइल समूह (सरल रिकवरी मॉडल) के टुकड़े का पुनर्स्थापना


क्या आप मुझे सिस्टम के बाकी I / O से बैकअप I / O को अलग करने के बारे में अधिक जानने के लिए सही दिशा में इंगित कर पाएंगे? # 3 (बैकअप का समय बदलना) 4:30 के बाद से एक विकल्प नहीं है क्योंकि बैकअप चलाने के लिए सबसे अच्छा समय है, और हमने 2008 (# 4) में अपग्रेड करने के बारे में बात की है, लेकिन मुझे नहीं लगता कि ऐसा हो रहा है कभी भी जल्द ही।
राहेल 19

सुनिश्चित नहीं है कि आपको सही दिशा में कैसे इंगित किया जाए - क्या आप वर्चुअल मशीन के अन्य भंडारण को उजागर कर सकते हैं?
हारून बर्ट्रेंड

हां, मुझे लगता है कि हम वर्चुअल मशीन में अन्य स्टोरेज को एक्सपोज कर सकते हैं। जब आप कहते हैं "बैकअप I / O को सिस्टम में I / O के बाकी हिस्सों से अलग करना", तो क्या आप डिस्क ड्राइव के बजाय नेटवर्क ड्राइव का बैकअप लेने की बात कर रहे हैं?
राहेल १

3
नहीं, मेरा मतलब है कि डिस्क के अलावा किसी भी अन्य I / O सबसिस्टम का बैकअप लेना जहां आप एक साथ नियमित डेटाबेस और अस्थायी गतिविधि के लिए पढ़ते और लिखते हैं। यह एक ही सर्वर पर एक अलग डिस्क ड्राइव, एक और मशीन पर एक शेयर, पर सैन एक अलग LUN, एक NAS, आदि पर एक हिस्सा हो सकता है
हारून बर्ट्रेंड

मैं टुकड़े टुकड़े बहाल एक महान समाधान है कि मैं के बारे में सोचा नहीं था, इसे पोस्ट करने के लिए धन्यवाद!
अली रज़ेगी

8

यह एक सामान्य मुद्दा है, कई समाधान हैं और वास्तव में आपके पर्यावरण पर निर्भर करता है। आइए उनके माध्यम से चलते हैं:

1- फ्लाई पर बैकअप कम्प्रेशन

2008 में R1 बैकअप संपीड़न एंटरप्राइज़ में उपलब्ध हो गया, 2008R2 में यह मानक में उपलब्ध हो गया। यह बहुत बड़ा है। यह आपको बहुत समय बचाएगा। यदि आप उन्नयन के लिए जा सकते हैं। यदि आप नहीं कर सकते, तो RedGate की हाइपरबैक उपयोगिता या क्वेस्ट लाइटस्पीड को देखें । दोनों का नि: शुल्क परीक्षण है।

2- फुल और डिफ बैकअप

मुझे विरासत में मिला एक 2TB ठेस डेटाबेस 24/7 प्रमुख इंटरनेट कंपनी के लिए बहुत सारे टाइमआउट का कारण बनता है। हमने पूर्ण और अंतर बैकअप को सक्षम किया जिससे हमारा काफी समय बच गया। गतिविधि कम होने पर मैं रविवार को 12:00 बजे पूर्ण बैकअप लेता हूं, और सप्ताह के दौरान अलग-अलग होता हूं। इससे काफी जगह बच गई। लेनदेन के लॉग से अलग डिफ का काम डेटाबेस के पन्नों को बदल देने पर वे काम करते हैं। किसी भी परिवर्तित पृष्ठ का बैकअप लिया जाता है। इस प्रकार आप एक पूर्ण पुनर्स्थापना करते हैं, फिर संशोधित पृष्ठों को जोड़ने के लिए अलग पुनर्स्थापना करें।

3- आपकी अड़चन क्या है?

निदान करने के लिए टोंटी विश्लेषण महत्वपूर्ण है। क्या आप अपने डेटा फ़ाइलों के समान डिस्क सरणी का बैकअप ले रहे हैं? क्या आपकी डेटा फ़ाइलें आंकी जा रही हैं? बैकअप के दौरान डेटा डिस्क के लिए आपका DISK SEC / READ और DISK SEC / WRITE क्या है? मैंने 4 फ़ाइलों को बनाने के लिए बैकअप को संशोधित किया है। प्रत्येक फ़ाइल में स्वयं थ्रेड लेखक होता है और हमारे SAN में जो बहुत अच्छा काम करता है। इसका परीक्षण करें, मैंने केवल 4 बैकअप फ़ाइलों को बनाकर 45 मिनट का मुंडन किया। बस यह सुनिश्चित करें कि ऊपर सूचीबद्ध आपकी डिस्क मीट्रिक कम हैं। एक आधार रेखा प्राप्त करें।

4 - एक अलग सर्वर और उस ऊपर वापस करने के लिए दोहराएं

यह थोड़ा उन्नत है। आपको यह सुनिश्चित करना होगा कि आपका प्रतिकृति डेटाबेस अद्यतित है और आपको उसके लिए उचित निगरानी की आवश्यकता है। यदि यह है, तो आप केवल प्रतिकृति डेटाबेस का बैकअप ले सकते हैं।


हाइपरबाक पर सिर्फ एक हेड, मैंने इसे VLDB पर कोई लाभ नहीं दिया है जब मैंने इसे बहुत देर से 2011 में परीक्षण किया था। मैंने रेडगेट के साथ बात की और उन्होंने उल्लेख किया कि यह एक बग था, इसलिए उम्मीद है कि अब तक इसका समाधान हो गया है। मुझे नहीं लगता कि 300GB को VLDB वैसे भी माना जाएगा, लेकिन अगर यह उम्मीद के मुताबिक प्रदर्शन नहीं करता है, तो इसके लिए देखें।
अली रज़ेगी

-1

आप इन मापदंडों का उपयोग कर सकते हैं:

ब्लॉकशीट - आकार 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536 (केबी में) चुनें।

BUFFERCOUNT - बैकअप ऑपरेशन के लिए उपयोग किए जाने वाले I / O बफ़रों की कुल संख्या निर्दिष्ट करता है। आप किसी भी सकारात्मक पूर्णांक को निर्दिष्ट कर सकते हैं; हालाँकि, बड़ी संख्या में बफ़र्स Sqlservi.exe प्रक्रिया में अपर्याप्त वर्चुअल पता स्थान के कारण "स्मृति से बाहर" त्रुटियों का कारण हो सकता है। - MSDN से

MAXTRNASFERSIZE - यह 65536 बाइट्स (64 KB) से 4194304 बाइट्स (4 एमबी) तक है


-3

कोशिश करो। यह समयबाह्य समय समाप्त समस्या का समाधान किया, जबकि बड़े आकार डीबी।

Private Sub Command1_Click()
On Error Resume Next
Dim con As New Connection
Dim tm As String
con.CommandTimeout = 500'''Command timeout should be 500


 With con
    .ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=dbiBMS;Data Source=192.168.103.4"
    .Open
 End With
 tm = CStr(Time)

con.Execute " backup database dbiBMS to disk='E:\Database_Backup\Test1.bak' with format "

con.Close
MsgBox tm
Exit Sub
x:
MsgBox Err.Description

End Sub

3
मुझे नहीं लगता कि 500ms के लिए टाइमआउट सेट करने से टाइमआउट की समयसीमा समाप्त हो जाएगी।
वीजयप २०'१५
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.