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

PostgreSQL 13 में नया क्या है?

PostgreSQL, जिसे दुनिया के सबसे उन्नत ओपन सोर्स डेटाबेस के रूप में भी जाना जाता है, का पिछले 24 सितंबर 2020 से एक नया रिलीज़ संस्करण है, और अब यह परिपक्व हो गया है, हम जांच सकते हैं कि एक के बारे में सोचना शुरू करने के लिए वहां क्या नया है। प्रवासन योजना। PostgreSQL 13 कई नई सुविधाओं और संवर्द्धन के साथ उपलब्ध है। इस ब्लॉग में, हम इनमें से कुछ नई सुविधाओं का उल्लेख करेंगे और देखेंगे कि अपने वर्तमान PostgreSQL संस्करण को कैसे परिनियोजित या अपग्रेड किया जाए।

PostgreSQL 13 नई सुविधाएं और सुधार

आइए इस PostgreSQL 13 संस्करण की कुछ नई सुविधाओं और सुधारों का उल्लेख करना शुरू करते हैं जिन्हें आप आधिकारिक दस्तावेज़ीकरण में देख सकते हैं।

विभाजन करना

  • विभाजनों की छंटाई की अनुमति दें और अधिक मामलों में विभाजन के अनुसार जोड़ दें

  • विभाजित तालिकाओं पर ट्रिगर से पहले पंक्ति-स्तर का समर्थन करें

  • विभाजित तालिकाओं को प्रकाशन के माध्यम से तार्किक रूप से दोहराने की अनुमति दें

  • सदस्यों पर विभाजित तालिकाओं में तार्किक प्रतिकृति की अनुमति दें

  • विभाजन भावों में संपूर्ण-पंक्ति चर का उपयोग करने की अनुमति दें

सूचकांक

  • B-ट्री इंडेक्स में डुप्लीकेट को अधिक कुशलता से स्टोर करें

  • बॉक्स कॉलम पर GiST और SP-GiST इंडेक्स को ORDER BY बॉक्स <-> पॉइंट क्वेरीज़ का समर्थन करने की अनुमति दें। पी>

  • GIN अनुक्रमणिका को अधिक कुशलता से संभालने की अनुमति दें! (नहीं) tsquery खोजों में खंड

  • इंडेक्स ऑपरेटर कक्षाओं को पैरामीटर लेने की अनुमति दें

अनुकूलक

  • कंटेनमेंट/मैच ऑपरेटरों के लिए ऑप्टिमाइज़र के चयनात्मकता अनुमान में सुधार करें

  • विस्तारित आंकड़ों के लिए आंकड़े लक्ष्य निर्धारित करने की अनुमति दें

  • एक ही क्वेरी में कई विस्तारित सांख्यिकी ऑब्जेक्ट के उपयोग की अनुमति दें

  • या OR क्लॉज और IN/Any स्थिर सूचियों के लिए विस्तारित सांख्यिकी ऑब्जेक्ट के उपयोग की अनुमति दें

  • FROM क्लॉज में फंक्शन्स को ऊपर खींचने की अनुमति दें (इनलाइन) यदि वे स्थिरांक का मूल्यांकन करते हैं

प्रदर्शन

  • वृद्धिशील सॉर्टिंग लागू करें और इनसेट मानों को सॉर्ट करने के प्रदर्शन में सुधार करें

  • हैश एकत्रीकरण को बड़े एकत्रीकरण परिणाम सेट के लिए डिस्क संग्रहण का उपयोग करने की अनुमति दें

  • ऑटोवैक्यूम में वैक्यूमिंग गतिविधि को ट्रिगर करने के लिए इंसर्ट्स को न केवल अपडेट और डिलीट करने की अनुमति दें

  • रखरखाव कार्यों के लिए I/O संगामिति को नियंत्रित करने के लिए रखरखाव_io_concurrency पैरामीटर जोड़ें

  • एक लेन-देन के दौरान वाल राइट्स को छोड़ देने की अनुमति दें जो एक संबंध बनाता है या फिर से लिखता है, अगर wal_level न्यूनतम है

  • जब कई टेबलस्पेस उपयोग में हों तो DROP DATABASE कमांड को फिर से चलाते समय प्रदर्शन में सुधार करें 

  • पाठ में पूर्णांकों के रूपांतरण को गति दें

  • कई SQL स्टेटमेंट वाली क्वेरी स्ट्रिंग और एक्सटेंशन स्क्रिप्ट के लिए मेमोरी उपयोग कम करें

निगरानी

  • WAL उपयोग के आंकड़ों को ट्रैक करने के लिए EXPLAIN, auto_explain, autovacuum, और pg_stat_statements को अनुमति दें

  • लॉग होने के लिए सभी कथनों के बजाय SQL कथनों के नमूने की अनुमति दें

  • बैकएंड प्रकार को csvlog में जोड़ें और वैकल्पिक रूप से log_line_prefix लॉग आउटपुट

  • तैयार स्टेटमेंट पैरामीटर लॉगिंग के नियंत्रण में सुधार करें

  • एक समानांतर कार्यकर्ता की लीडर प्रक्रिया की रिपोर्ट करने के लिए pg_stat_activity में लीडर_पिड जोड़ें

  • स्ट्रीमिंग बेस बैकअप की प्रगति की रिपोर्ट करने के लिए सिस्टम दृश्य pg_stat_progress_basebackup जोड़ें 

  • विश्लेषण प्रगति की रिपोर्ट करने के लिए सिस्टम दृश्य pg_stat_progress_analyze जोड़ें

  • साझा स्मृति उपयोग प्रदर्शित करने के लिए सिस्टम दृश्य pg_shmem_allocations जोड़ें

प्रतिकृति और पुनर्प्राप्ति

  • स्ट्रीमिंग प्रतिकृति कॉन्फ़िगरेशन सेटिंग्स को पुनः लोड करके बदलने की अनुमति दें

  • WAL रिसीवर्स को एक अस्थायी प्रतिकृति स्लॉट का उपयोग करने की अनुमति दें जब एक स्थायी एक निर्दिष्ट न हो

  • प्रतिकृति स्लॉट के लिए WAL संग्रहण को max_slot_wal_keep_size तक सीमित होने दें

  • किसी भी अनुरोधित विराम को रद्द करने के लिए स्टैंडबाय प्रचार की अनुमति दें

  • यदि पुनर्प्राप्ति निर्दिष्ट पुनर्प्राप्ति लक्ष्य तक नहीं पहुंचती है तो एक त्रुटि उत्पन्न करें

  • डिस्क पर गिराए जाने से पहले तार्किक डिकोडिंग द्वारा उपयोग की जाने वाली मेमोरी पर नियंत्रण की अनुमति दें

  • अवैध पृष्ठों को WAL द्वारा संदर्भित किए जाने पर भी पुनर्प्राप्ति को जारी रहने दें

उपयोगिता कमांड

  • VACUUM को किसी तालिका के अनुक्रमित को समानांतर में संसाधित करने की अनुमति दें

  • EXPLAIN के बफर आउटपुट में प्लानिंग-टाइम बफर उपयोग की रिपोर्ट करें

  • एक तालिका बनाएं जैसे कि बनाई गई तालिका में जांच बाधा की कोई विरासत गुण नहीं है

  • एक कॉलम से जेनरेट की गई प्रॉपर्टी को निकालने की अनुमति देने के लिए ALTER TABLE ... DROP EXPRESSION जोड़ें

  • दृश्य कॉलम का नाम बदलने के लिए ALTER VIEW सिंटैक्स जोड़ें

  • आधार प्रकार के TOAST गुणों और समर्थन कार्यों को संशोधित करने के लिए ALTER TYPE विकल्प जोड़ें

  • डेटाबेस स्थान बनाएं विकल्प जोड़ें

  • ड्रॉप डेटाबेस को लक्ष्य डेटाबेस का उपयोग करके सत्रों को डिस्कनेक्ट करने की अनुमति दें, जिससे ड्रॉप सफल हो सके

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

PostgreSQL 13 को कैसे परिनियोजित करें

इसके लिए, हम मान लेंगे कि आपके पास ClusterControl स्थापित है, अन्यथा, आप इसे स्थापित करने के लिए संबंधित दस्तावेज़ों का पालन कर सकते हैं।

ClusterControl से परिनियोजन करने के लिए, बस डिप्लॉय विकल्प चुनें और दिखाई देने वाले निर्देशों का पालन करें।

PostgreSQL का चयन करते समय, आपको उपयोगकर्ता, कुंजी या पासवर्ड, और पोर्ट निर्दिष्ट करना होगा SSH द्वारा अपने सर्वर से कनेक्ट करने के लिए। आप अपने नए क्लस्टर के लिए एक नाम भी जोड़ सकते हैं और यदि आप चाहते हैं कि ClusterControl आपके लिए संबंधित सॉफ़्टवेयर और कॉन्फ़िगरेशन स्थापित करे।

SSH एक्सेस जानकारी सेट करने के बाद, आपको डेटाबेस क्रेडेंशियल्स को परिभाषित करने की आवश्यकता है , संस्करण, और डेटादिर (वैकल्पिक)। आप यह भी निर्दिष्ट कर सकते हैं कि किस भंडार का उपयोग करना है।

अगले चरण में, आपको अपने सर्वर को उस क्लस्टर में जोड़ना होगा जिसे आप आईपी एड्रेस या होस्टनाम का उपयोग करके बनाने जा रहे हैं।

अंतिम चरण में, आप चुन सकते हैं कि आपकी प्रतिकृति समकालिक होगी या नहीं। एसिंक्रोनस, और फिर डिप्लॉय पर प्रेस करें।

कार्य समाप्त होने के बाद, आप अपना नया PostgreSQL क्लस्टर देख सकते हैं मुख्य क्लस्टर नियंत्रण स्क्रीन।

अब आपने अपना क्लस्टर बना लिया है, आप उस पर कई कार्य कर सकते हैं, जैसे लोड बैलेंसर (HAProxy), कनेक्शन पूलर (PgBouncer), या एक ही ClusterControl UI से नए प्रतिकृति स्लेव जोड़ना।

PostgreSQL 13 में अपग्रेड करना

यदि आप अपने वर्तमान PostgreSQL संस्करण को इस नए संस्करण में अपग्रेड करना चाहते हैं, तो आपके पास तीन मुख्य विकल्प हैं जो इस कार्य को करेंगे।

  • Pg_dump:यह एक तार्किक बैकअप टूल है जो आपको अपने डेटा को डंप करने और इसे नए PostgreSQL में पुनर्स्थापित करने की अनुमति देता है। संस्करण। यहां आपके पास एक डाउनटाइम अवधि होगी जो आपके डेटा आकार के अनुसार अलग-अलग होगी। आपको सिस्टम को रोकने या प्राथमिक नोड में नए डेटा से बचने, pg_dump चलाने, उत्पन्न डंप को नए डेटाबेस नोड में स्थानांतरित करने और इसे पुनर्स्थापित करने की आवश्यकता है। इस समय के दौरान, आप डेटा असंगति से बचने के लिए अपने प्राथमिक PostgreSQL डेटाबेस में नहीं लिख सकते।

  • Pg_upgrade:यह आपके PostgreSQL संस्करण को इन-प्लेस अपग्रेड करने के लिए एक PostgreSQL टूल है। यह उत्पादन के माहौल में खतरनाक हो सकता है और हम उस मामले में इस पद्धति की अनुशंसा नहीं करते हैं। इस पद्धति का उपयोग करने से आपके पास डाउनटाइम भी होगा, लेकिन संभवत:यह पिछली pg_dump विधि का उपयोग करने की तुलना में काफी कम होगा।

  • तार्किक प्रतिकृति:PostgreSQL 10 के बाद से, आप इस प्रतिकृति पद्धति का उपयोग कर सकते हैं जो आपको प्रमुख संस्करण उन्नयन के साथ प्रदर्शन करने की अनुमति देता है शून्य (या लगभग शून्य) डाउनटाइम। इस तरह, आप पिछले PostgreSQL संस्करण में एक स्टैंडबाय नोड जोड़ सकते हैं, और जब प्रतिकृति अप-टू-डेट होती है, तो आप नए PostgreSQL नोड को बढ़ावा देने के लिए एक विफलता प्रक्रिया कर सकते हैं।

नई PostgreSQL 13 सुविधाओं के बारे में अधिक विस्तृत जानकारी के लिए, आप आधिकारिक दस्तावेज़ीकरण देख सकते हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL माइग्रेशन के लिए शीर्ष ओपन सोर्स टूल्स

  2. SQL:जब NOT IN और NOT EQUAL TO की बात आती है, तो कौन सा अधिक कुशल है और क्यों?

  3. सॉकेट फ़ाइल /var/pgsql_socket/.s.PGSQL.5432 माउंटेन लायन में गुम (OS X सर्वर)

  4. दिए गए स्ट्रिंग को विभाजित करें और केस स्टेटमेंट तैयार करें

  5. Postgres SQL में `->>` और `->` में क्या अंतर है?