Database
 sql >> डेटाबेस >  >> RDS >> Database

PSDatabaseClone के साथ क्लोनिंग डेटाबेस

अतिथि लेखक:सैंडर स्टैड (@sqlstad)

PSDatabaseClone एक पावरशेल मॉड्यूल है जिसमें डेटाबेस ("क्लोन") की छवियां बनाने और उन क्लोनों को एक या अधिक होस्ट में वितरित करने की क्षमता है।

इस मॉड्यूल का उपयोग क्यों करें?

डेटाबेस एडमिनिस्ट्रेटर, और वास्तव में कोई भी जिसे डेटा प्रोविजनिंग से निपटना होता है, उसके पास ऐसे उपयोगकर्ता होते हैं जो हमारे डेटाबेस के साथ काम करना चाहते हैं। यह नए समाधान विकसित करने, ईटीएल प्रक्रियाओं के लिए डेटा निकालने, प्रदर्शन समस्याओं का अनुकरण करने, रिपोर्टिंग उद्देश्यों के लिए डेटा पुनर्प्राप्त करने आदि के लिए हो सकता है।

अन्य स्थानों पर डेटा का प्रावधान करना एक बहुत ही कठिन कार्य हो सकता है और हम में से अधिकांश उस कार्य को करने में बहुत समय और संसाधन खर्च करते हैं।

डेटा को व्यवस्थित करने के लिए ज्ञात समाधान डेटाबेस को पुनर्स्थापित करना या इस समस्या को हल करने के लिए कुछ व्यापक स्क्रिप्टिंग विकसित करना है। ये समाधान हमेशा डेटा का प्रावधान करने का सबसे कारगर तरीका नहीं होते हैं और इनमें काफी समय लग सकता है।

अन्य स्थानों पर डेटा प्राप्त करने में लगने वाले समय के अलावा, इसमें बहुत अधिक डिस्क स्थान भी खर्च हो सकता है।

क्या होगा यदि डेटा का प्रावधान करने में लगने वाले समय को कम करने और साथ ही, आवश्यक संसाधनों की मात्रा को कम करने का कोई तरीका था? अब इसके लिए एक समाधान है और इसे PSDatabaseClone कहा जाता है।

मॉड्यूल कैसे स्थापित करें

मॉड्यूल की स्थापना को कई तरीकों से पूरा किया जा सकता है।

पॉवरशेलगैलरी

सबसे आसान तरीका है Install-Module . कमांड का उपयोग करना . आदेश PowerShell गैलरी में मॉड्यूल की तलाश करता है। PowerShell गैलरी का उपयोग करके मॉड्यूल को स्थापित करने के लिए निम्न कोड निष्पादित करें:

Install-Module PSDatabaseClone

इस पद्धति का उपयोग करने से नया संस्करण जारी होने पर मॉड्यूल को अपडेट करना भी आसान हो जाता है। बस Update-Module का उपयोग करें इसे नवीनतम संस्करण में अपडेट करने के लिए नीचे की तरह कमांड करें:

Update-Module PSDatabaseClone

रिपॉजिटरी की क्लोनिंग

मॉड्यूल को स्थापित करने का दूसरा तरीका गिट रिपॉजिटरी को अपनी स्थानीय मशीन पर क्लोन करना है। मैं उन लोगों को सलाह दूंगा जो इस पद्धति का उपयोग करने के लिए परियोजना में योगदान देना चाहते हैं।

निम्न आदेश निष्पादित करें:

git clone https://github.com/sanderstad/PSDatabaseClone.git

यह पूरी रिपॉजिटरी को आपकी स्थानीय मशीन पर डाउनलोड कर देगा जिससे आप मॉड्यूल का उपयोग कर सकते हैं या इसके लिए नई सुविधाएँ विकसित कर सकते हैं।

मॉड्यूल कैसे काम करता है?

छवियां

मॉड्यूल का लक्ष्य यथासंभव न्यूनतम बाहरी अनुप्रयोगों का उपयोग करना था, इसलिए हर कोई बिना किसी अतिरिक्त स्थापित किए मॉड्यूल का उपयोग कर सकता है। वर्चुअल हार्ड डिस्क (वीएचडी) बनाने के लिए मॉड्यूल विंडोज़ में देशी तकनीक का उपयोग करके काम करता है। VHD एक फ़ाइल स्वरूप है जो एक हार्ड डिस्क का प्रतिनिधित्व करता है और इसमें वॉल्यूम, विभाजन हो सकते हैं जिसमें बदले में फ़ाइलें और फ़ोल्डर्स हो सकते हैं। VHD को अन्य होस्ट में वितरित किया जा सकता है और एक अतिरिक्त डिस्क के रूप में माउंट किया जा सकता है, जैसे बाहरी USB ड्राइव में प्लग करना। एक बार कनेक्ट होने पर, होस्ट सिस्टम पर किसी भी अन्य डिस्क की तरह फाइलों और फ़ोल्डरों तक पहुंच सकता है।

मॉड्यूल एक वीएचडी बनाता है जो हमारी तथाकथित छवि होगी। छवि में वे सभी फ़ाइलें और फ़ोल्डर होंगे जो डेटाबेस के लिए आवश्यक हैं।

एक छवि बनाने की प्रक्रिया के दौरान, मॉड्यूल आपके द्वारा निर्दिष्ट डेटाबेस से एक बैकअप प्राप्त करेगा और डेटाबेस को VHD में पुनर्स्थापित करेगा।

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

चित्र 1:चित्र बनाने की प्रक्रिया

क्लोन

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

वह कार्यक्षमता तुरंत डिस्क स्थान बचाती है क्योंकि क्लोन के लिए मूल डेटाबेस आकार का केवल एक अंश उपयोग किया जाता है।

एक अन्य लाभ यह है कि, क्योंकि क्लोन परिवर्तनों के डेल्टा को बचाता है, छवि स्वयं किसी भी परिवर्तन से प्रभावित नहीं होती है। इसका मतलब है कि अन्य क्लोन भी प्रभावित नहीं होते हैं।

क्लोन बनाने की प्रक्रिया एक बनाई गई छवि (पैरेंट डिस्क) के अंदर एक अलग डिस्क बनाना है। क्लोन माउंट किया गया है और क्लोन के अंदर डेटाबेस एक इंस्टेंस से जुड़ा हुआ है।

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

यह उपयोगकर्ता या डेवलपर को ऐसी क्वेरी बनाने का मौका देता है जो उत्पादन पर उनके विकास प्रणाली के समान ही चलेंगे, जिससे अक्षम प्रश्नों को चलाने का जोखिम कम हो जाएगा।

छवियां और क्लोन बनाना

छवि बनाएं

प्रक्रिया का पहला चरण एक छवि बनाना है। एक छवि बनाने के लिए आपके पास निम्नलिखित पूर्वापेक्षाएँ हैं:

  • स्रोत उदाहरण
  • गंतव्य उदाहरण (स्रोत उदाहरण के समान हो सकता है)
  • डेटाबेस
  • नेटवर्क पथ
  • बैकअप

इमेज बनाने वाला कमांड है:New-PSDCImage

छवियों के लिए नेटवर्क पथ का उपयोग करना बहुत महत्वपूर्ण है ताकि अन्य होस्ट छवि को ढूंढ सकें और क्लोन बनाने के लिए इसका उपयोग कर सकें।

जब निम्न आदेश निष्पादित किया जाता है:

New-PSDCImage -SourceInstance SQLDB1 -DestinationInstance SQLDB1 -ImageNetworkPath \\sqldb1\psdatabaseclone\images -Database DB1 -CreateFullBackup

आपको निम्न परिणाम प्राप्त होंगे:

यह आदेश 2018-07-24 को रात 9 बजे के आसपास निष्पादित किया गया था, जो छवि में तारीखों की व्याख्या करता है

इस उदाहरण में कमांड किसी विशेष डेटाबेस के लिए उदाहरण SQLDB1 को देखता है और उसी उदाहरण का उपयोग करके एक छवि बनाने का प्रयास करता है। यह नवीनतम डेटा प्राप्त करने के लिए एक नया पूर्ण बैकअप बनाएगा।

परिणाम नेटवर्क शेयर \\sqldb1\psdatabaseclone\images में स्थित एक छवि है DB1_20180724214146.vhdx . कहा जाता है .

छवि के नाम की संख्याएं एक टाइमस्टैम्प हैं जिस समय छवि बनाई गई थी।

क्लोन बनाना

क्लोन छवि पर निर्भर है और किसी विशेष डेटाबेस से क्लोन बनाने का सबसे आसान तरीका है कि मॉड्यूल को आपके लिए यह पता लगाने दें।

निम्न आदेश निष्पादित करना:

New-PSDCClone -SqlInstance SQLDB3 -Database DB1 -CloneName DB1_Clone2 -LatestImage

नीचे जैसा ही परिणाम देगा:

कमांड ने सिर्फ दूसरे उदाहरण पर एक डिफरेंशियल डिस्क बनाई। क्लोन डेटाबेस DB1 के लिए नवीनतम छवि पर आधारित है, और क्लोन का नाम "DB1_Clone2" होगा।

क्योंकि हमने गंतव्य की आपूर्ति नहीं की, कमांड SQL सर्वर इंस्टेंस के डिफ़ॉल्ट डेटा स्थान को देखेगा।

उस निर्देशिका के भीतर यह "क्लोन" नामक एक उपनिर्देशिका बनाएगा। क्लोन उस फ़ोल्डर में रखा जाएगा।

जानकारी प्राप्त करना

मॉड्यूल की स्थापना के दौरान, आपने एक स्थान निर्दिष्ट किया जहां सभी क्लोन मिल सकते हैं। यह या तो एक डेटाबेस या एक निर्देशिका थी, और विशेष रूप से एक शेयर, जहां कॉन्फ़िगरेशन फ़ाइलें लिखी जाती हैं।

जानकारी प्राप्त करने के लिए आप Get-PSDCImage . कमांड का उपयोग कर सकते हैं और Get-PSDCClone . ये आदेश सूचना संग्रह से जानकारी को पुनः प्राप्त करेंगे और इसे उपयोगकर्ता को वापस लौटा देंगे।

छवि जानकारी

छवि जानकारी प्राप्त करने के लिए आपको Get-PSDCCimage . कमांड का उपयोग करना होगा . यह आपको नीचे जैसा परिणाम देगा:

आप देखते हैं कि एक ही डेटाबेस से कई छवियां हो सकती हैं, जिनमें से प्रत्येक में अलग-अलग डेटा हो सकता है।

क्लोन जानकारी

छवि जानकारी पुनर्प्राप्त करने के समान, आप क्लोन जानकारी प्राप्त कर सकते हैं। Get-PSDCClone कमांड का उपयोग करें और आपको नीचे जैसा परिणाम मिलेगा:

आगे क्या है?!

PSDatabaseClone के साथ अगली बात यह है कि छवियों में डेटा को एंटरप्राइज़ वातावरण के अनुकूल बनाने के लिए इसे अस्पष्ट करना संभव बनाना है। हम सभी हाल ही में डेटा उल्लंघन की घटनाओं के बारे में जानते हैं और हम यह सुनिश्चित करना चाहते हैं कि हमारा डेटा, कम से कम वह डेटा जो आधार पर नहीं है, इस तरह से छिपा हुआ है कि किसी को पता नहीं चलेगा कि इसके साथ क्या करना है।

आप कैसे मदद कर सकते हैं?

PSDatabaseClone एक ओपन सोर्स पॉवरशेल मॉड्यूल है और हर कोई जो दिलचस्पी रखता है वह मॉड्यूल को बेहतर बनाने में मदद कर सकता है। यदि आप पावरशेल फ़ंक्शंस और/या मॉड्यूल विकसित करने से परिचित हैं, तो आप नई सुविधाओं को विकसित करने में मदद कर सकते हैं, बग्स को ठीक कर सकते हैं (मुझे यकीन है कि कहीं न कहीं बग हैं)। यदि आप कोड विकसित करने में सहज नहीं हैं, तो चिंता न करें; करने के लिए बहुत कुछ है।

आप विभिन्न कार्यों का परीक्षण करने में मदद कर सकते हैं और उन्हें तोड़ने का प्रयास कर सकते हैं। मैं, एक व्यक्ति के रूप में, केवल इतनी दूर जा सकता हूं और अधिकांश समय मैं अपने कार्यक्रमों के सुखद प्रवाह का परीक्षण करता हूं। आप शायद एक अलग तरीके से परीक्षण करते हैं और अन्य परिणाम प्राप्त करते हैं जिनके बारे में मैंने कभी नहीं सोचा होगा। यह मॉड्यूल को बेहतर बनाने में मदद करेगा।

आप वर्तमान समाधान में जोड़ने के लिए नई सुविधाओं के बारे में सोचने में भी मदद कर सकते हैं। नई कार्यक्षमता के लिए आपके पास एक अच्छा विचार हो सकता है जिसे मैं स्वयं नहीं सोच सकता था।

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

जानकारी

वेबसाइट:https://psdatabaseclone.org

जीथब:https://github.com/sanderstad/PSDatabaseClone

लेखक के बारे में

Sander SQL सर्वर के साथ संस्करण 2000 से काम कर रहा है।
उन्होंने विभिन्न उद्योगों में काम किया है। , कृषि, वित्तीय उद्योग और स्वास्थ्य सेवा से।
वह पावरशेल के साथ संस्करण 1 से काम कर रहा है और जहां वह कर सकता है वहां स्वचालन को अपना रहा है।

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटा मास्किंग के माध्यम से डेटा जोखिम शमन

  2. सामान्य डेटाबेस इन्फ्रास्ट्रक्चर पैटर्न की तुलना करना

  3. डेटा एनालिटिक्स बनाम डेटा साइंस:क्या अंतर है?

  4. sp_updatestats से बचने का एक और कारण

  5. नामित उदाहरणों का उपयोग करना? अपने डीएसी कनेक्शन का परीक्षण करें!