2012-04-24 8 views
5

बैकअप लेने के लिए कैसे यहाँ परिदृश्य है:एसक्यूएल सर्वर MDF फ़ाइलें

हम तीन डेटाबेस के साथ एक कंपनी की वेबसाइट है। यह SQL सर्वर 2005 चला रहा है। तीन डेटाबेस एमडीएफ फाइलों से जुड़े हुए हैं। किसी ने इन एमडीएफ फ़ाइलों में से किसी एक को सीधे कॉपी/पेस्ट करने का प्रयास किया जिसने फ़ाइल पर किसी प्रकार का लॉक किया जो केवल पढ़ने योग्य त्रुटि उत्पन्न करता है। हमने इसे अलग/रीटैच करके तय किया है।

इसे फिर से रोकने के लिए, हम इन डेटाबेसों की प्रतियां हमारे क्यूए डेटाबेस में स्थानांतरित करने के लिए देख रहे हैं।

कॉर्पोरेट साइट को नीचे ले जाने के बिना हम प्रतियां कैसे बना सकते हैं? मैंने Google को खोजने की कोशिश की और एक सभ्य तरीके से नहीं आया। डेटाबेस काफी छोटे हैं, और सबसे खराब मामला मैं सोच सकता हूं कि सिर्फ SQL सर्वर सेवा को बंद करना है, फिर केवल एमडीएफ की प्रतिलिपि बनाएँ, फिर सेवा को पुनरारंभ करें। मुझे लगता है कि सबसे डाउनटाइम पर 10 सेकंड है।

[कृपया ध्यान दें किसी को भी यह पढ़, सीधे MDF फ़ाइलों की प्रतिलिपि नहीं है, सुनिश्चित करें कि आप कम से कम डीबी ऑफ़लाइन ले सकते हैं या डीबी बंद किया जा सकता]

+0

क्षमा करें, मैं जोड़ लिया है चाहिए, कि डेटाबेस के बाद से यह दूर से होस्ट किया गया है एक ही नेटवर्क पर नहीं हैं, इसलिए हम सिर्फ डेटा स्थानांतरित नहीं कर सकते । हम क्यूए डेटाबेस से कनेक्ट करने में सक्षम नहीं होंगे। – dave2118

+0

क्या आप बैकअप निर्धारित नहीं कर सकते? फिर बैकअप फ़ाइलों को ले जाएं। – Ste

+0

हम केवल एक बैकअप (डेटाबेस> कार्य> बैकअप) को मजबूर कर सकते हैं जो किसी भी उपयोगकर्ता को डीबी तक पहुंचने का प्रयास करने पर कोई प्रभाव नहीं पड़ेगा, सही? – dave2118

उत्तर

2

बल्कि नक़ल करने की कोशिश और MDF फ़ाइलें ताला लगा की तुलना में, बस फाइल सिस्टम के लिए डेटाबेस के बैकअप लेना और फिर उन बंद कॉपी।

आप पूछ उपयोगकर्ताओं को एक बैकअप के दौरान प्रभावित हो जाएगा कि क्या ...

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

चेक बाहर इस सवाल हैं जिनके प्रदान की कुछ अच्छी जानकारी है: https://serverfault.com/questions/100490/what-happens-during-a-live-sql-server-backup

2

@dave, मुझे लगता है तुम सही हो, कि डेटाबेस> कार्य> बैकअप डेटाबेस में उपयोगकर्ता पहुंच को बाधित किए बिना काम करेगा। मैं अपने डेटाबेस का बैकअप लेने के लिए बैच फ़ाइल में निम्न आदेश चलाता हूं, और यह चलते समय पहुंच को अवरुद्ध नहीं करता है। मुझे ध्यान रखना चाहिए कि मैं SQL सर्वर के साथ एक विशेषज्ञ नहीं हूं; यह सिर्फ मेरे लिए काम करता है।

sqlcmd -S "MyHostName \ sqlexpress" -Q "डिस्क के लिए बैकअप डेटाबेस MyDatabaseName = N'C: \ पथ \ \ backup.bak 'NOFORMAT, NOINIT, नाम = N'MyDatabaseName-पूर्ण डेटाबेस बैकअप के साथ करने के लिए ', छोड़ें, NOREWIND, NOUNLOAD, आँकड़े = 10 "

+0

धन्यवाद डेविड। मैं आपके जैसा हूं, मैंने एसक्यूएल सर्वर के साथ साझेदार के रूप में वर्षों से काम किया है, लेकिन प्रशासनिक पक्ष पर ज्यादा नहीं। ओरेकल आधारित इस नई नौकरी के साथ, उनके पास एक कॉर्पोरेट साइट है जो SQL सर्वर से चल रही है जिसे शाब्दिक रूप से 4 वर्षों में छुआ नहीं गया है।मुझे एसक्यूएल सर्वर विशेषज्ञ को पदोन्नत किया जाता है और इसे समझना होगा। मुझे लगता है कि अनुमान लगाने से यहां पूछना बेहतर है। – dave2118

+0

शुभकामनाएं, डेव! –

संबंधित मुद्दे