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

धीरे-धीरे SQL सर्वर से PostgreSQL में माइग्रेट करें

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

नए पीजी संस्करणों के लिए पढ़ने/लिखने के लिए विदेशी डेटा रैपर आ रहा है, लेकिन यह शुरुआत में केवल अन्य पोस्टग्रेएसक्यूएल सर्वरों का समर्थन करेगा। sqlstates और त्रुटि संदेशों, खोज स्थितियों, और बहुत कुछ का अनुवाद करने की आवश्यकता के कारण MS SQL का समर्थन करना बहुत कठिन होगा, इसलिए कोई भी रैपर निस्संदेह काफी सीमित होगा और शानदार प्रदर्शन से कम होगा। जैसा कि आप कहते हैं, वैसे भी FDW समर्थन इस समय बहुत अपरिपक्व है।

इस तरह से हाइब्रिड करने की कोशिश करने से आप बहुत सी चीजें खो देते हैं:

  • कोई विदेशी कुंजी अखंडता प्रवर्तन नहीं

  • प्रत्येक पक्ष पर डेटा प्रकार 100% समान व्यवहार नहीं कर सकते हैं, इसलिए डेटा एक तरफ ठीक हो सकता है और दूसरी तरफ नहीं। टाइमस्टैम्प/तारीख सोचें।

  • कुशल जुड़ाव के लिए एक अत्यंत परिष्कृत विदेशी डेटा आवरण की आवश्यकता होगी - तो आमतौर पर क्या होता है कि पूरी तालिका प्राप्त की जाएगी और फिर स्थानीय रूप से शामिल हो जाएगी। प्रदर्शन भयानक होगा।

  • प्रश्न लिखना एक दुःस्वप्न बन जाता है जब आप सबसे तुच्छ कार्य के अलावा कुछ भी कर रहे होते हैं। फ़ंक्शन के नाम अलग हैं, आदि।

  • आप कई एसीआईडी ​​​​गुण खो देते हैं या कमजोर करते हैं और/या दो चरण प्रतिबद्धता का उपयोग करना चाहिए, जो प्रदर्शन के लिए बेकार है।

गंभीरता से, ऐसा मत करो।

डीबी को सिंक करना शायद और भी बदतर है - जब तक कि यह एक तरीका न हो, यह खोए गए अपडेट, हटाए गए पंक्तियों को फिर से दिखने और बदतर के लिए एक नुस्खा बनने जा रहा है। दोतरफा समन्वयन बेहद है कठिन।

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

यदि आप ऐप में पूरी तरह से नए हिस्से जोड़ रहे हैं तो उन्हें पीजी में रखना उचित हो सकता है यदि वे डीबी में अन्य डेटा के साथ बिल्कुल भी बातचीत नहीं करते हैं। हालाँकि, यह बहुत कम संभावना है, और आपके sysadmins तब भी आपसे घृणा करेंगे जब आप उन्हें बताएंगे कि अब आपको दो अलग-अलग डेटाबेस में एक परमाणु स्नैपशॉट की आवश्यकता है...



  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. pghoard विकल्प - क्लस्टरकंट्रोल के साथ PostgreSQL बैकअप प्रबंधन

  3. लेन-देन कार्य के माध्यम से समानांतर आदेशों को संभाल नहीं सकता है। जब सभी

  4. अनेक-से-अनेक संबंध में मिलान उपसमुच्चय का चयन करना

  5. Psycopg2 db कनेक्शन खोए हुए नेटवर्क कनेक्शन पर हैंग हो जाता है