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

क्लाउड विक्रेता डीप-डाइव:Microsoft Azure पर PostgreSQL

यदि आपने हाल ही में Microsoft का अनुसरण किया है तो यह कोई आश्चर्य की बात नहीं होगी कि एक प्रतिस्पर्धी डेटाबेस उत्पाद का प्रदाता, अर्थात् SQL सर्वर, भी PostgreSQL बैंडवागन पर कूद गया। OIN को 60,000 पेटेंट जारी करने से लेकर PGCon में प्लेटिनम प्रायोजक होने तक, Microsoft PostgreSQL कॉर्पोरेट बैकिंग संगठनों में से एक के रूप में। यह दिखाने के लिए हर अवसर लिया कि आप न केवल Microsoft पर PostgreSQL चला सकते हैं, बल्कि इसका उल्टा भी सच है:Microsoft, अपने क्लाउड ऑफ़रिंग के माध्यम से, आपके लिए PostgreSQL चला सकता है। साइटस डेटा के अधिग्रहण और हाइपरस्केल के नाम से एज़्योर क्लाउड में उनके प्रमुख उत्पाद को जारी करने के साथ यह कथन और भी स्पष्ट हो गया। यह कहना सुरक्षित है कि PostgreSQL को अपनाना बढ़ रहा है और अब इसे चुनने के और भी अच्छे कारण हैं।

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

Azure के साथ PostgreSQL संगतता

संस्करण करना

उत्पाद दस्तावेज़ीकरण के अनुसार सिंगल सर्वर n-2 प्रमुख श्रेणी में PostgreSQL संस्करणों को लक्षित करता है:

प्रदर्शन के लिए निर्मित समाधान के रूप में 100 जीबी डेटा सेट के लिए सिंगल सर्वर की सिफारिश की जाती है और बड़ा। सर्वर ने पूर्वानुमेय प्रदर्शन प्रदान किया - डेटाबेस उदाहरण vCores और IOPS की पूर्वनिर्धारित संख्या के साथ आते हैं (प्रावधानित भंडारण के आकार के आधार पर)।

एक्सटेंशन

इसमें काफी संख्या में समर्थित एक्सटेंशन हैं जिनमें से कुछ आउट ऑफ बॉक्स इंस्टॉल किए जा रहे हैं:

[email protected]:5432 postgres> select name, default_version, installed_version from pg_available_extensions where name !~ '^postgis' order by name;

            name             | default_version | installed_version

------------------------------+-----------------+-------------------

address_standardizer         | 2.4.3 |

address_standardizer_data_us | 2.4.3           |

btree_gin                    | 1.2 |

btree_gist                   | 1.5 |

chkpass                      | 1.0 |

citext                       | 1.4 |

cube                         | 1.2 |

dblink                       | 1.2 |

dict_int                     | 1.0 |

earthdistance                | 1.1 |

fuzzystrmatch                | 1.1 |

hstore                       | 1.4 |

hypopg                       | 1.1.1 |

intarray                     | 1.2 |

isn                          | 1.1 |

ltree                        | 1.1 |

orafce                       | 3.7 |

pg_buffercache               | 1.3 | 1.3

pg_partman                   | 2.6.3 |

pg_prewarm                   | 1.1 |

pg_qs                        | 1.1 |

pg_stat_statements           | 1.6 | 1.6

pg_trgm                      | 1.3 |

pg_wait_sampling             | 1.1 |

pgcrypto                     | 1.3 |

pgrouting                    | 2.5.2 |

pgrowlocks                   | 1.2 |

pgstattuple                  | 1.5 |

plpgsql                      | 1.0 | 1.0

plv8                         | 2.1.0 |

postgres_fdw                 | 1.0 |

tablefunc                    | 1.0 |

timescaledb                  | 1.1.1 |

unaccent                     | 1.1 |

uuid-ossp                    | 1.1 |

(35 rows)

Azure पर PostgreSQL मॉनिटरिंग

सर्वर निगरानी मेट्रिक्स के एक सेट पर निर्भर करती है जिसे कस्टम डैशबोर्ड बनाने के लिए बड़े करीने से समूहीकृत किया जा सकता है:

ग्राफविज़ या ब्लॉकडिएग से परिचित लोग निर्यात के विकल्प की सराहना कर सकते हैं। JSON फ़ाइल में संपूर्ण डैशबोर्ड:

इसके अलावा मेट्रिक्स - और उन्हें - अलर्ट से लिंक किया जा सकता है:

क्वेरी स्टोर के माध्यम से क्वेरी आंकड़ों को ट्रैक किया जा सकता है और क्वेरी प्रदर्शन के साथ देखा जा सकता है अंतर्दृष्टि। उसके लिए, कुछ Azure विशिष्ट मापदंडों को सक्षम करने की आवश्यकता होगी:

[email protected]:5432 postgres> select * from pg_settings where name ~ 'pgms_wait_sampling.query_capture_mode|pg_qs.query_capture_mode';

-[ RECORD 1 ]---+------------------------------------------------------------------------------------------------------------------

name            | pg_qs.query_capture_mode

setting         | top

unit            |

category        | Customized Options

short_desc      | Selects which statements are tracked by pg_qs. Need to reload the config to make change take effect.

extra_desc      |

context         | superuser

vartype         | enum

source          | configuration file

min_val         |

max_val         |

enumvals        | {none,top,all}

boot_val        | none

reset_val       | top

sourcefile      |

sourceline      |

pending_restart | f

-[ RECORD 2 ]---+------------------------------------------------------------------------------------------------------------------

name            | pgms_wait_sampling.query_capture_mode

setting         | all

unit            |

category        | Customized Options

short_desc      | Selects types of wait events are tracked by this extension. Need to reload the config to make change take effect.

extra_desc      |

context         | superuser

vartype         | enum

source          | configuration file

min_val         |

max_val         |

enumvals        | {none,all}

boot_val        | none

reset_val       | all

sourcefile      |

sourceline      |

pending_restart | f

धीमी क्वेरी और प्रतीक्षा की कल्पना करने के लिए हम क्वेरी प्रदर्शन विजेट पर आगे बढ़ते हैं:

लंबी चलने वाली क्वेरी​​​

आंकड़ों की प्रतीक्षा करें

Azure पर PostgreSQL लॉगिंग

अधिक उन्नत पार्सिंग के लिए मानक PostgreSQL लॉग को डाउनलोड किया जा सकता है, या उन्हें लॉग एनालिटिक्स में निर्यात किया जा सकता है:

Azure के साथ PostgreSQL प्रदर्शन और स्केलिंग

जबकि vCores की संख्या को आसानी से बढ़ाया या घटाया जा सकता है, यह क्रिया सर्वर पुनरारंभ को ट्रिगर करेगी:

शून्य डाउनटाइम प्राप्त करने के लिए अनुप्रयोगों को क्षणिक त्रुटियों को इनायत से संभालने में सक्षम होना चाहिए ।

क्वेरी ट्यूनिंग के लिए, Azure पहले से लोड किए गए pg_statements और pg_buffercache एक्सटेंशन के अलावा, प्रदर्शन अनुशंसाओं के साथ DBA प्रदान करता है:

Azure पर उच्च उपलब्धता और प्रतिकृति

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

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

Azure पर PostgreSQL सुरक्षा

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

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

फ़ायरवॉल वेब इंटरफ़ेस में एक चीज़ मुझे अजीब लगी - मैं नेविगेट नहीं कर सका जब परिवर्तन सहेजे जा रहे थे तब पृष्ठ से दूर:

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

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

~ $ while : ; do psql -U $(pwgen -s 20 1)@pg10 ; sleep 0.1 ; done

psql: FATAL:  password authentication failed for user "AApT6z4xUzpynJwiNAYf"

psql: FATAL:  password authentication failed for user "gaNeW8VSIflkdnNZSpNV"

psql: FATAL:  password authentication failed for user "SWZnY7wGTxdLTLcbqnUW"

psql: FATAL:  password authentication failed for user "BVH2SC12m9js9vZHcuBd"

psql: FATAL:  password authentication failed for user "um9kqUxPIxeQrzWQXr2v"

psql: FATAL:  password authentication failed for user "8BGXyg3KHF3Eq3yHpik1"

psql: FATAL:  password authentication failed for user "5LsVrtBjcewd77Q4kaj1"

....

PostgreSQL लॉग की जाँच करें:

2019-08-19 07:13:50 UTC-5d5a4c2e.138-FATAL:  password authentication failed

for user "AApT6z4xUzpynJwiNAYf"

2019-08-19 07:13:50 UTC-5d5a4c2e.138-DETAIL:  Role "AApT6z4xUzpynJwiNAYf" does not exist.

   Connection matched pg_hba.conf line 3: "host all all 173.180.222.170/32 password"

2019-08-19 07:13:51 UTC-5d5a4c2f.13c-LOG:  connection received: host=173.180.222.170 port=27248 pid=316

2019-08-19 07:13:51 UTC-5d5a4c2f.13c-FATAL:  password authentication failed for user "gaNeW8VSIflkdnNZSpNV"

2019-08-19 07:13:51 UTC-5d5a4c2f.13c-DETAIL:  Role "gaNeW8VSIflkdnNZSpNV" does not exist.

   Connection matched pg_hba.conf line 3: "host all all 173.180.222.170/32 password"

2019-08-19 07:13:52 UTC-5d5a4c30.140-LOG:  connection received: host=173.180.222.170 port=58256 pid=320

2019-08-19 07:13:52 UTC-5d5a4c30.140-FATAL:  password authentication failed for user "SWZnY7wGTxdLTLcbqnUW"

2019-08-19 07:13:52 UTC-5d5a4c30.140-DETAIL:  Role "SWZnY7wGTxdLTLcbqnUW" does not exist.

   Connection matched pg_hba.conf line 3: "host all all 173.180.222.170/32 password"

2019-08-19 07:13:53 UTC-5d5a4c31.148-LOG:  connection received: host=173.180.222.170 port=32984 pid=328

2019-08-19 07:13:53 UTC-5d5a4c31.148-FATAL:  password authentication failed for user "BVH2SC12m9js9vZHcuBd"

2019-08-19 07:13:53 UTC-5d5a4c31.148-DETAIL:  Role "BVH2SC12m9js9vZHcuBd" does not exist.

   Connection matched pg_hba.conf line 3: "host all all 173.180.222.170/32 password"

2019-08-19 07:13:53 UTC-5d5a4c31.14c-LOG:  connection received: host=173.180.222.170 port=43384 pid=332

2019-08-19 07:13:54 UTC-5d5a4c31.14c-FATAL:  password authentication failed for user "um9kqUxPIxeQrzWQXr2v"

2019-08-19 07:13:54 UTC-5d5a4c31.14c-DETAIL:  Role "um9kqUxPIxeQrzWQXr2v" does not exist.

   Connection matched pg_hba.conf line 3: "host all all 173.180.222.170/32 password"

2019-08-19 07:13:54 UTC-5d5a4c32.150-LOG:  connection received: host=173.180.222.170 port=27672 pid=336

2019-08-19 07:13:54 UTC-5d5a4c32.150-FATAL:  password authentication failed for user "8BGXyg3KHF3Eq3yHpik1"

2019-08-19 07:13:54 UTC-5d5a4c32.150-DETAIL:  Role "8BGXyg3KHF3Eq3yHpik1" does not exist.

   Connection matched pg_hba.conf line 3: "host all all 173.180.222.170/32 password"

2019-08-19 07:13:55 UTC-5d5a4c33.154-LOG:  connection received: host=173.180.222.170 port=12712 pid=340

2019-08-19 07:13:55 UTC-5d5a4c33.154-FATAL:  password authentication failed for user "5LsVrtBjcewd77Q4kaj1"

2019-08-19 07:13:55 UTC-5d5a4c33.154-DETAIL:  Role "5LsVrtBjcewd77Q4kaj1" does not exist.

ईमेल अलर्ट लगभग 30 मिनट बाद आया:

डेटाबेस सर्वर तक बारीक पहुंच की अनुमति देने के लिए, Azure RBAC प्रदान करता है, जो एक क्लाउड नेटिव एक्सेस कंट्रोल फीचर है, PostgreSQL क्लाउड डीबीए के शस्त्रागार में सिर्फ एक और टूल है। यह उतना ही करीब है जितना हम सर्वव्यापी pg_hba पहुंच नियमों के करीब पहुंच सकते हैं।

Azure पर PostgreSQL बैकअप और पुनर्प्राप्ति

मूल्य निर्धारण स्तरों के बावजूद, बैकअप 7 से 35 दिनों के बीच बनाए रखा जाता है। मूल्य निर्धारण स्तर डेटा को पुनर्स्थापित करने की क्षमता को भी प्रभावित करता है।

प्वाइंट-इन-टाइम रिकवरी Azure पोर्टल या सीएलआई के माध्यम से और पांच मिनट तक बारीक के रूप में प्रलेखन के अनुसार उपलब्ध है। पोर्टल कार्यक्षमता बल्कि सीमित है - दिनांक पिकर विजेट पिछले 7 दिनों को चुनने के लिए संभावित तिथियों के रूप में अंधाधुंध दिखाता है, हालांकि मैंने आज सर्वर बनाया है। साथ ही, पुनर्प्राप्ति लक्ष्य समय पर कोई सत्यापन नहीं किया गया है - मुझे उम्मीद थी कि पुनर्प्राप्ति अंतराल के बाहर कोई मान दर्ज करने से विज़ार्ड को जारी रखने से रोकने में त्रुटि उत्पन्न होगी:

एक बार पुनर्स्थापना प्रक्रिया शुरू हो जाने के बाद, एक त्रुटि, माना जाता है कि बाहर की वजह से रेंज वैल्यू का, लगभग एक मिनट बाद पॉपअप होगा:

…लेकिन, दुर्भाग्य से, त्रुटि संदेश बहुत उपयोगी नहीं था:

अंत में, 7 दिनों तक की अवधारण अवधि के लिए बैकअप संग्रहण निःशुल्क है। यह विकास के माहौल के लिए बेहद उपयोगी साबित हो सकता है।

संकेत और सुझाव

सीमाएं

एकल सर्वर सीमाओं के आदी हो जाएं।

कनेक्टिविटी

कनेक्शन को सही डेटाबेस सर्वर पर रूट करने के लिए हमेशा कनेक्शन स्ट्रिंग का उपयोग करें।

प्रतिकृति

आपदा पुनर्प्राप्ति परिदृश्यों के लिए, युग्मित क्षेत्रों में से एक में पढ़ने की प्रतिकृतियां खोजें।

भूमिकाएं

जैसा कि AWS और GCloud के मामले में होता है, कोई सुपरयूज़र एक्सेस नहीं है।

जीयूसी

सर्वर पुनरारंभ या सुपरयूज़र एक्सेस की आवश्यकता वाले पैरामीटर कॉन्फ़िगर नहीं किए जा सकते।

स्केलिंग

ऑटो-स्केलिंग के दौरान, नए नोड के आने तक एप्लिकेशन को फिर से प्रयास करना चाहिए।

मेमोरी राशि और आईओपीएस निर्दिष्ट नहीं किया जा सकता है - मेमोरी को जीबी प्रति वीकोर की इकाइयों में आवंटित किया जाता है, अधिकतम 320GB (32vCores x 10GB) तक, और IOPS प्रोविजन किए गए स्टोरेज के आकार पर निर्भर होते हैं। अधिकतम 6000 आईओपीएस। इस समय Azure अधिकतम 20,000 IOPS के साथ एक बड़ा संग्रहण पूर्वावलोकन विकल्प प्रदान करता है।

बेसिक टियर में बनाए गए सर्वर को सामान्य प्रयोजन या मेमोरी ऑप्टिमाइज्ड में अपग्रेड नहीं किया जा सकता है।

संग्रहण

सुनिश्चित करें कि ऑटो-ग्रो सुविधा सक्षम है - यदि डेटा की मात्रा प्रावधानित संग्रहण स्थान से अधिक है, तो डेटाबेस केवल-पढ़ने के लिए मोड में प्रवेश करेगा।

संग्रहण को केवल बढ़ाया जा सकता है। जिस तरह अन्य सभी क्लाउड प्रदाताओं के साथ स्टोरेज आवंटन को कम नहीं किया जा सकता है और मुझे कोई स्पष्टीकरण नहीं मिला है। अत्याधुनिक उपकरणों को देखते हुए, बड़े क्लाउड प्लेयर्स वहन कर सकते हैं, LVM ऑनलाइन डेटा स्थानांतरण जैसी सुविधाएँ प्रदान नहीं करने का कोई कारण नहीं होना चाहिए। भंडारण वास्तव में आजकल सस्ता है, अगले प्रमुख संस्करण के उन्नयन तक स्केलिंग के बारे में सोचने का वास्तव में कोई कारण नहीं है।

फ़ायरवॉल

कुछ मामलों में, फ़ायरवॉल नियमों के अपडेट को प्रसारित होने में पांच मिनट तक का समय लग सकता है।

एक सर्वर उसी सबनेट में स्थित होता है, क्योंकि जब तक उपयुक्त फ़ायरवॉल नियम लागू नहीं हो जाते, तब तक एप्लिकेशन सर्वर तक नहीं पहुंचा जा सकेगा।

वर्चुअल नेटवर्क नियम क्रॉस-रीजन एक्सेस की अनुमति नहीं देते हैं और परिणामस्वरूप, Azure क्लाउड के बाहर डेटाबेस से कनेक्ट करने के लिए dblink और postgres_fdw का उपयोग नहीं किया जा सकता है।

वीनेट/सबनेट दृष्टिकोण वेब ऐप्स पर लागू नहीं किया जा सकता क्योंकि उनके कनेक्शन सार्वजनिक आईपी पते से उत्पन्न होते हैं।

सेवा समाप्ति बिंदु सक्षम होने पर बड़े वर्चुअल नेटवर्क अनुपलब्ध रहेंगे।

एन्क्रिप्शन

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

~ $ openssl x509 -in BaltimoreCyberTrustRoot.crt.pem -noout -dates

notBefore=May 12 18:46:00 2000 GMT

notAfter=May 12 23:59:00 2025 GMT

घुसपैठ का पता लगाने वाला सिस्टम

उन्नत ख़तरा सुरक्षा का पूर्वावलोकन रिलीज़ बेसिक टियर इंस्टेंस के लिए उपलब्ध नहीं है।

बैकअप और पुनर्स्थापना

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

PITR ऑपरेशन के बाद क्लाउड फ़ायरवॉल नियमों को फिर से कॉन्फ़िगर करने की आवश्यकता विशेष रूप से महत्वपूर्ण है।

डेटाबेस सर्वर को हटाने से सभी बैकअप हट जाते हैं।

पुनर्स्थापना के बाद, पुनर्स्थापना के बाद के कुछ ऐसे कार्य हैं जिन्हें निष्पादित करना होगा।

प्रदर्शन को बढ़ावा देने के लिए बल्क इंसर्ट के लिए अनलॉग टेबल की सिफारिश की जाती है, हालांकि, उन्हें दोहराया नहीं जाता है।

निगरानी

मैट्रिक्स हर मिनट रिकॉर्ड किए जाते हैं और 30 दिनों तक संग्रहीत किए जाते हैं।

लॉगिंग

क्वेरी स्टोर एक वैश्विक विकल्प है, जिसका अर्थ है कि यह सभी डेटाबेस पर लागू होता है। केवल पढ़ने के लिए लेन-देन और 6,000 बाइट्स से अधिक लंबी क्वेरी समस्याग्रस्त हैं। डिफ़ॉल्ट रूप से, कैप्चर की गई क्वेरी को 7 दिनों तक बनाए रखा जाता है।

प्रदर्शन

क्वेरी प्रदर्शन अंतर्दृष्टि अनुशंसाएं वर्तमान में अनुक्रमणिका बनाने और छोड़ने तक सीमित हैं।

आवश्यकता न होने पर pg_stat_staements अक्षम करें।

uuid_generate_v4 को gen_random_uuid() से बदलें। यह आधिकारिक पोस्टग्रेएसक्यूएल दस्तावेज़ीकरण में अनुशंसा के साथ इनलाइन है, बिल्डिंग यूयूआईडी-ओएसपी देखें।

उच्च उपलब्धता और प्रतिकृति

पढ़ने की पांच प्रतियों की सीमा है। लेखन-गहन अनुप्रयोगों को पठन प्रतिकृतियों के उपयोग से बचना चाहिए क्योंकि प्रतिकृति तंत्र अतुल्यकालिक है जो कुछ देरी का परिचय देता है जिसे अनुप्रयोगों को सहन करने में सक्षम होना चाहिए। पढ़ें प्रतिकृतियां एक अलग क्षेत्र में स्थित हो सकती हैं।

प्रतिलिपि समर्थन केवल सर्वर बनने के बाद ही सक्षम किया जा सकता है। इस सुविधा के लिए सर्वर पुनरारंभ की आवश्यकता है:

पढ़ें प्रतिकृतियां मास्टर नोड से फ़ायरवॉल नियमों को इनहेरिट नहीं करती हैं:

प्रतिकृति पढ़ने में विफलता स्वचालित नहीं है। विफलता तंत्र नोड आधारित है।

पठन प्रतिकृतियों को कॉन्फ़िगर करने से पहले उन बातों की एक लंबी सूची है जिनकी समीक्षा की जानी चाहिए।

प्रतिकृति बनाने में लंबा समय लगता है, भले ही मैंने अपेक्षाकृत छोटे डेटा सेट के साथ परीक्षण किया हो:

 वैक्यूम

वैक्यूम

अपस्ट्रीम वैक्यूम डिफ़ॉल्ट मानों के साथ PostgreSQL जहाजों के लिए Azure डेटाबेस के रूप में प्रमुख मापदंडों की समीक्षा करें:

[email protected]:5432 postgres> select name,setting from pg_settings where name ~ '^autovacuum.*';

               name                 | setting

-------------------------------------+-----------

autovacuum                          | on

autovacuum_analyze_scale_factor     | 0.05

autovacuum_analyze_threshold        | 50

autovacuum_freeze_max_age           | 200000000

autovacuum_max_workers              | 3

autovacuum_multixact_freeze_max_age | 400000000

autovacuum_naptime                  | 15

autovacuum_vacuum_cost_delay        | 20

autovacuum_vacuum_cost_limit        | -1

autovacuum_vacuum_scale_factor      | 0.05

autovacuum_vacuum_threshold         | 50

autovacuum_work_mem                 | -1

(12 rows)

अपग्रेड करें

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

PostgreSQL Azure एन्हांसमेंट

समय श्रृंखला

TimescaleDB एक एक्सटेंशन के रूप में उपलब्ध है (PostgreSQL मॉड्यूल का हिस्सा नहीं), हालांकि, यह कुछ ही क्लिक दूर है। एकमात्र दोष पुराना संस्करण 1.1.1 है, जबकि अपस्ट्रीम संस्करण वर्तमान में  1.4.1 (2019-08-01) पर है।

[email protected]:5432 postgres> CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;

WARNING:

WELCOME TO

_____ _                               _ ____________

|_   _(_)                             | | | _ \ ___ \

| |  _ _ __ ___   ___ ___ ___ __ _| | ___| | | | |_/ /

| | | |  _ ` _ \ / _ \/ __|/ __/ _` | |/ _ \ | | | ___ \

| | | | | | | | |  __/\__ \ (_| (_| | |  __/ |/ /| |_/ /

|_| |_|_| |_| |_|\___||___/\___\__,_|_|\___|___/ \____/

               Running version 1.1.1

For more information on TimescaleDB, please visit the following links:



1. Getting started: https://docs.timescale.com/getting-started

2. API reference documentation: https://docs.timescale.com/api

3. How TimescaleDB is designed: https://docs.timescale.com/introduction/architecture




CREATE EXTENSION



[email protected]:5432 postgres> \dx timescaledb

                                    List of installed extensions

   Name     | Version | Schema |                            Description

-------------+---------+--------+-------------------------------------------------------------------

timescaledb | 1.1.1   | public | Enables scalable inserts and complex queries for time-series data

(1 row)

लॉगिंग

PostgreSQL लॉगिंग विकल्पों के अलावा, PostgreSQL के लिए Azure डेटाबेस को अतिरिक्त निदान घटनाओं को रिकॉर्ड करने के लिए कॉन्फ़िगर किया जा सकता है।

फ़ायरवॉल

Azure पोर्टल में पोर्टल में लॉग इन किए गए IP पतों से कनेक्शन की अनुमति देने के लिए एक आसान सुविधा शामिल है:

मैंने इस विशेषता पर ध्यान दिया क्योंकि यह डेवलपर्स और सिस्टम प्रशासकों के लिए इसे आसान बनाता है खुद को अंदर आने दें, और यह एक ऐसी सुविधा के रूप में सामने आता है जो न तो AWS और न ही GCloud द्वारा पेश की जाती है।

निष्कर्ष

PostgreSQL सिंगल सर्वर के लिए Azure डेटाबेस एंटरप्राइज़ स्तर की सेवाएँ प्रदान करता है, हालाँकि, इनमें से कई सेवाएँ अभी भी पूर्वावलोकन मोड में हैं:क्वेरी स्टोर, प्रदर्शन अंतर्दृष्टि, प्रदर्शन अनुशंसा, उन्नत ख़तरा सुरक्षा, बड़ा संग्रहण, क्रॉस-क्षेत्र प्रतिकृतियां पढ़ें।

जबकि Azure क्लाउड में PostgreSQL को प्रशासित करने के लिए ऑपरेटिंग सिस्टम ज्ञान की आवश्यकता नहीं है, DBA से ऐसे कौशल प्राप्त करने की अपेक्षा की जाती है जो डेटाबेस तक ही सीमित नहीं हैं - Azure नेटवर्किंग (VNet), कनेक्शन सुरक्षा (फ़ायरवॉल) ), आसान स्क्रिप्टिंग के लिए केक्यूएल, एज़्योर सीएलआई के साथ व्यूअर और एनालिटिक्स लॉग करें, और सूची आगे बढ़ती है।

आखिरकार, जो लोग अपने PostgreSQL वर्कलोड को Azure में माइग्रेट करने की योजना बना रहे हैं, उनके लिए कई संसाधन उपलब्ध हैं जिनमें Azure पार्टनर्स की एक चुनिंदा सूची शामिल है, जिसमें Credativ शामिल है, जो PostgreSQL के प्रमुख प्रायोजकों और योगदानकर्ताओं में से एक है।

पी>

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. दिनांक सीमा के अनुसार SQL समूह

  2. यौगिक कुंजी के लिए पंक्तियों के प्रति समूह क्रमांक

  3. मिश्रित शब्द-और-संख्या स्ट्रिंग्स की मानवकृत या प्राकृतिक संख्या छँटाई

  4. PG::ग्रुप बाय क्लॉज में त्रुटि

  5. Postgresql में किसी क्वेरी को कैसे रोकें/मारें?