मैं एक डेटाबेस को ऑफ़लाइन क्यों ले जाऊंगा?


15

किन कारणों से और किन स्थितियों में आप "टेक ऑफलाइन" / ALTER DATABASE dbName SET OFFLINEसुविधा का उपयोग करेंगे ।

ऑफ़लाइन डेटाबेस के साथ आप कौन से कार्य कर सकते हैं? आप केवल ऑफ़लाइन डेटाबेस के साथ कौन से कार्य कर सकते हैं?

जवाबों:


16

आप इसे ऑनलाइन डालने के लिए एमडीएफ फाइल को दूसरे सर्वर पर ले जा सकते हैं।


4
+1, या एक अन्य ड्राइव / फ़ोल्डर / सैन ...
क्रिस एस

क्या "ऑफ़लाइन लेने" के लिए एकमात्र उपयोग है?
ग्रेग बी

5
नहीं, मैं अन्य कारणों के बारे में सोच सकता हूं। कल्पना करें कि आपके पास कई एप्लिकेशन के लिए कई डेटाबेस हैं। उन अनुप्रयोगों में से एक फ्रंट-एंड एप्लिकेशन (वेब ​​ऐप, क्लाइंट, जो जानता है) का अपग्रेड हो रहा है। आप अपग्रेड के दौरान किसी के द्वारा डेटाबेस तक पहुंच को अक्षम करना चाहते हैं, लेकिन आप पूरे सर्वर को डाउन नहीं करना चाहते हैं अन्य डेटाबेस के कारण। यह ऑफ़लाइन होने का एक कारण हो सकता है। मुझे यकीन है कि आपकी कल्पना अन्य कारणों से भी सामने आ सकती है।
14

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

2
ग्रेग बी - मैंने विशेष रूप से फ्रंट-एंड को अपग्रेड करते हुए कहा, डीबी ही नहीं। मेरे द्वारा वर्णित परिदृश्य में, DB को अपरिवर्तित छोड़ दिया जाता है। यह सुनिश्चित करने के लिए ऑफ़लाइन लिया जाएगा कि संक्रमण के दौरान कोई इसे एक्सेस नहीं कर रहा है।
mfinni

18

विकास / मंचन के वातावरण में, कभी-कभी डेटाबेस को ऑफ़लाइन लेने के लिए यह सुनिश्चित करना उपयोगी होता है कि आप डेटाबेस के सही उदाहरण से एप्लिकेशन में कनेक्ट कर रहे हैं और आपके पास कहीं जैकिंग कनेक्शन स्ट्रिंग नहीं है।

उस ने कहा, इस स्थिति में अलग-अलग वातावरण के लिए अलग-अलग डेटाबेस के नाम और निर्माण प्रक्रिया के लिए एक बेहतर विचार है जो स्वचालित रूप से आपके डेटा को कॉन्फ़िगर करेगा ...

इसी तरह, मैं उन्हें (नहीं-तो) ऑफ-मौका में decommissioning करने से पहले कुछ समय के लिए डेटाबेस ऑफ़लाइन लेना पसंद करता हूं कि किसी कारण से उन्हें ऑनलाइन वापस आने की आवश्यकता है। मुझे कई बार देवों द्वारा काट लिया गया है जिनके पास हुक है कि मैं अपने डेटाबेस में से एक में नहीं जानता जब मैं इसे निकालना चाहता हूं। इसे कम करने और इसे कम करने और जरूरत पड़ने पर पुनर्स्थापित करने की तुलना में अधिक कम ऑफ़लाइन और कम समय लगता है।

एक और बात आपातकालीन सुरक्षा के रूप में होगी। मुझे पहले भी ऐसा करना पड़ा है। कभी-कभी आपके ऐप में एक गंदा बग पाया जाता है, जो भले ही दुर्भावनापूर्ण न हो, फिर भी आपके डेटाबेस में डेटा दूषित होगा। जब तक आप बग को पहचान नहीं लेते, तब तक डेटाबेस को ऑफ़लाइन रखना रक्तस्राव को रोकने का एक त्वरित तरीका है। आप डेटाबेस के भीतर क्षति का आकलन करने के लिए इसे ऑनलाइन वापस ला सकते हैं।


2
मुझे हटाने से पहले ऑफ़लाइन लेने का विचार पसंद है
ग्रेग बी

8
डिट्टो। हमारे पूर्व-उत्पादन वातावरण में मेरे पास चार हज़ार-ईश डेटाबेस हैं। यह जानना कभी-कभी मुश्किल होता है कि कौन क्या है। इसे ऑफ़लाइन लेना और स्क्वील्स का इंतजार करना कभी-कभी एकमात्र विकल्प होता है।
माइकल ग्रीन

6

हालांकि यहां दिए गए कुछ उत्तर आपको कुछ विचार दे सकते हैं कि आप एक डेटाबेस के साथ क्या कर सकते हैं जिसकी पहुंच प्रतिबंधित है, वास्तव में बहुत अधिक डेटाबेस के साथ नहीं किया जा सकता है जो ऑफ़लाइन है। आप डेटा आदि को अपडेट, अपग्रेड, ऐड या डिलीट नहीं कर सकते।


2
सही बात। यदि आप डेटाबेस के साथ बहुत कुछ करने में सक्षम होना चाहते हैं तो आप इसे एकल उपयोगकर्ता मोड में रखना बेहतर समझते हैं। फिर आप अभी भी पहुंच को प्रतिबंधित करते हैं लेकिन बहुत अधिक कर सकते हैं।
शॉन होवेट

आप इसका नाम बदल भी नहीं सकते!
दिमा फॉमिन

0

मेरे कारण, मुझे जो डीबीए को अधिक बार बेचना पड़ता है, उसकी तुलना में मैं गणना करना चाहूंगा ...

"SAN मरम्मत की जरूरत है ... और नहीं, मैं सिर्फ एक ड्राइव को गर्म-स्वैप नहीं कर सकता, बैकप्लेन / कंट्रोलर गलती पर हैं।"

जब उनके डिस्क चले जाते हैं तो DB उदाहरण बहुत बुरा व्यवहार करते हैं।

इस प्रकार, मैं SAN को ऑफ़लाइन लेने से पहले SQL इंस्टेंस को बंद कर देता हूं, और फिर उन्हें एक बार में वापस लाता हूं ताकि वे संसाधन नहीं लड़ें - पहला उदाहरण सभी क्लस्टर संसाधनों को लेता है और सक्रिय DB नोड बन जाता है, बाद के इंस्टेंस चलते हैं पैसिव नोड्स के रूप में।


-3

कई कारणों से आपको ऐसा करने की आवश्यकता होगी ..

एक उदाहरण के लिए,

consider changing or upgrading the actual database program/binary...
consider changing or upgrading the schema or tables..
consider changing or upgrading index's..

सबसे महत्वपूर्ण बिंदु ।।

Is taking a backup.. to get a perfect snapshot in time.. 

(कुछ डीबी में आप बस सभी तालिकाओं पर एक ताला बनाते हैं)


+1, डीबी को डीफ्रैग करने या सिकोड़ने के लिए पुराने DBMS भी।
क्रिस एस

1
पुन: "ऑनलाइन स्कीमा बदलना या बदलना", "ऑफ़लाइन" डेटाबेस को बंद कर दिया गया है, सफाई से बंद कर दिया गया है, और ऑफ़लाइन चिह्नित किया गया है। डेटाबेस ऑफ़लाइन होने के दौरान संशोधित नहीं किया जा सकता है। " आप इस स्थिति में स्कीमा को कैसे अपग्रेड कर सकते हैं?
ग्रेग बी

क्षमा करें .. मैं एक निष्क्रिय डेटाबेस में परिवर्तन करने की बात कर रहा था .. Im a MySQL फॉलोअर, मैंने मान लिया कि अपग्रेड एक डेटाबेस पर होगा जो ऑफ़लाइन चिह्नित किया गया है, इसलिए इसमें बदलाव की आवश्यकता के अलावा किसी भी अन्य समस्या के साथ कोई समसामयिक समस्याएं नहीं हैं। । शायद हम इसे तब छोड़ सकते हैं ..: D
Arenstar

2
असली डेटाबेस असली बैकअप का समर्थन करते हैं, आप जानते हैं। आपको समय के अनुरूप बैकअप लेने के लिए नथिंग की जरूरत नहीं है, लेकिन एक टॉयलाइन की खिलौना है। एक डीबी जिसमें एक ताला या कुछ अन्य बेवकूफ तंत्र की आवश्यकता होती है, एक खिलौना है। वास्तव में। सभी प्रमुख डेटाबेस को पूर्ण बैकअप के साथ कोई समस्या नहीं है, लगातार, जबकि भारी उपयोग में है।
टॉमटॉम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.