हमने PostgreSQL 9.6beta1 के लिए rpm और deb आधारित वितरण दोनों के लिए pglogic 1.1 पैकेज उपलब्ध कराए हैं। वे हमारे मानक pglogic पैकेज रिपॉजिटरी से इंस्टॉल के लिए उपलब्ध हैं।
आप पूछ सकते हैं कि हम Postgres के बीटा संस्करण के लिए पैकेज क्यों जारी करते हैं? खैर, इसका एक कारण यह है कि आप वास्तविक समय में अपने मौजूदा PostgreSQL 9.5 या 9.4 डेटाबेस को 9.6beta1 पर दोहराने के लिए pglogic का उपयोग कर सकते हैं और बीटा रिलीज़ में किसी भी शेष बग को दूर करने में मदद करने के लिए उस पर परीक्षण चला सकते हैं। इसे कैसे करें, इस पर एक त्वरित ट्यूटोरियल यहां दिया गया है।
पहला कदम PostgreSQL 9.6beta1 को स्थापित करना है, इसे कैसे करना है, इसके बारे में जानकारी के लिए रिलीज़ घोषणा की जाँच करें। दूसरा चरण है pglogic स्थापित करना जैसा कि इंस्टॉलेशन निर्देश पृष्ठ पर बताया गया है।
अब वास्तविक प्रतिकृति सेटअप के लिए। यह काफी आसान है। यह सुनिश्चित करने के साथ प्रारंभ करें कि PostgreSQL तार्किक प्रतिकृति की अनुमति देने के लिए कॉन्फ़िगर किया गया है:
wal_level = 'logical'
max_worker_processes = 10 # one per database needed on provider node
# one per node needed on subscriber node
max_replication_slots = 10 # one per node needed on provider node
max_wal_senders = 10 # one per node needed on provider node
shared_preload_libraries = 'pglogical'
उपरोक्त सेटिंग्स को बदलने के लिए सर्वर को पुनः आरंभ करने की आवश्यकता है।
आपको आने वाले प्रतिकृति कनेक्शन को pg_hba.conf में भी अनुमति देनी चाहिए (ठीक उसी तरह जैसे भौतिक स्ट्रीमिंग प्रतिकृति सेट करते समय)। pg_hba.conf में लाइन कुछ इस तरह दिखनी चाहिए:
host replication postgres 10.0.0.2/32 md5
अधिक जानकारी के लिए pg_hba दस्तावेज़ीकरण पृष्ठ देखें।
इसके बाद, प्रदाता डेटाबेस पर pglogic एक्सटेंशन इंस्टॉल करें और वहां pglogic नोड बनाएं:
CREATE EXTENSION pglogical;
SELECT pglogical.create_node(
node_name := 'provider1',
dsn := 'host=providerhost port=5432 dbname=db'
);
फिर नए 9.6 डेटाबेस पर भी ऐसा ही करें:
CREATE EXTENSION pglogical;
SELECT pglogical.create_node(
node_name := 'subscriber1',
dsn := 'host=subscriberhost port=5432 dbname=db'
);
ध्यान दें कि वह कनेक्शन स्ट्रिंग्स को उस डेटाबेस तक ले जाना चाहिए जिसमें आप इन आदेशों को निष्पादित कर रहे हैं।
प्रदाता डेटाबेस पर वापस, उन तालिकाओं को जोड़ें जिन्हें आप दोहराना चाहते हैं default
प्रतिकृति सेट। ऐसा करने का सरल तरीका public
. में सभी तालिकाओं को जोड़ना है स्कीमा इस तरह:
SELECT pglogical.replication_set_add_all_tables('default', ARRAY['public']);
और अंत में, फिर से सब्सक्राइबर डेटाबेस पर, एक सब्सक्रिप्शन बनाएं जो प्रदाता से जुड़ता है और नकल करना शुरू कर देता है।
SELECT pglogical.create_subscription(
subscription_name := 'subscription1',
provider_dsn := 'host=providerhost port=5432 dbname=db',
synchronize_structure := true
);
यहां कनेक्शन स्ट्रिंग वही होनी चाहिए जो प्रदाता pglogic नोड बनाते समय उपयोग की जाती है। synchronize_structure := true
इसका मतलब है कि pglogic प्रदाता डेटाबेस से ग्राहक डेटाबेस (मानक pg_dump
का उपयोग करके सभी तालिका संरचनाओं को कॉपी करेगा) )।
और बस, अब आपके पास अपने मौजूदा PostgreSQL 9.5 या 9.4 डेटाबेस और नए PostgreSQL 9.6beta1 के बीच कार्यशील प्रतिकृति है।
इस पोस्ट में उपयोग किए गए कार्यों के बारे में अतिरिक्त जानकारी के लिए pglogic दस्तावेज़ीकरण और प्रोजेक्ट पेज देखें और केवल साधारण प्रतिकृति से अधिक कैसे करें।