लॉजिकल प्रतिकृति में संघर्ष समाधान
जानें कि लॉजिकल प्रतिकृति में संघर्ष कैसे उत्पन्न होते हैं और PostgreSQL उन्हें पहचानने तथा हल करने के लिए कौन-सी रणनीतियाँ उपलब्ध कराता है।
लॉजिकल प्रतिकृति में संघर्ष समाधान, CoddyKit पर उन्नत PostgreSQL: अनुक्रमण, विभाजन और प्रतिकृति का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह उन्नत PostgreSQL: अनुक्रमण, विभाजन और प्रतिकृति सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। उन्नत PostgreSQL: अनुक्रमण, विभाजन और प्रतिकृति पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
संघर्ष क्यों होते हैं
Physical replication के विपरीत, logical replication subscriber पर SQL-स्तरीय ऑपरेशन के रूप में परिवर्तन लागू करती है। यदि स्थानीय डेटा आने वाले परिवर्तन से अलग हो, तो conflict होता है और लागू करना रुक जाता है।
संघर्ष के सामान्य प्रकार
सामान्य conflicts में शामिल हैं:
- Unique violation — उसी key वाली पंक्ति पहले से मौजूद है
- Missing row — UPDATE या DELETE ऐसी पंक्ति को लक्ष्य बनाता है जो subscriber पर मौजूद नहीं है
- Type या constraint का बेमेल होना
अप्लाई worker का रुकना
जब कोई conflict आता है, तो subscription का apply worker error के साथ बंद हो जाता है और उसी transaction को बार-बार फिर से आज़माता है, इसलिए आपके हस्तक्षेप तक replication lag बढ़ता रहता है।
संघर्ष ढूँढना
PostgreSQL log विफल transaction और उसका LSN दर्ज करता है। आप subscription के आँकड़ों की भी जाँच कर सकते हैं।
SELECT subname, last_error_time, last_error_message
FROM pg_stat_subscription_stats;डेटा ठीक करके समाधान करना
एक विकल्प स्थानीय डेटा को सुसंगत बनाना है ताकि परिवर्तन लागू हो सके: conflicting पंक्ति हटाएँ, फिर replication को दोबारा प्रयास करने दें।
DELETE FROM products WHERE id = 42;
-- the incoming INSERT for id 42 now appliesकिसी transaction को छोड़ना
यदि offending परिवर्तन को अनदेखा किया जाना चाहिए, तो उसे LSN के आधार पर छोड़ दें। सावधानी से उपयोग करें, क्योंकि इससे वह डेटा छोड़ दिया जाता है।
ALTER SUBSCRIPTION my_sub SKIP (lsn = '0/14A0B30');त्रुटि पर निष्क्रिय करना
Subscription को error होने पर स्वयं disable होने के लिए सेट करें, ताकि वह बार-बार प्रयास करना बंद कर दे और operator की प्रतीक्षा करे।
ALTER SUBSCRIPTION my_sub SET (disable_on_error = true);संघर्षों को रोकना
इन तरीकों से conflicts कम करें:
- हर logical dataset के लिए एक ही writer का उपयोग करें
- Nodes के बीच overlapping primary key ranges से बचें
- सुनिश्चित करें कि subscriber schema, publisher से मेल खाता हो
Replica identity का महत्व
UPDATE और DELETE को लक्ष्य पंक्ति ढूँढने के लिए replica identity की आवश्यकता होती है। बिना primary key वाली टेबल को REPLICA IDENTITY FULL की आवश्यकता होती है, अन्यथा replication विफल हो जाएगी।
ALTER TABLE logs REPLICA IDENTITY FULL;Lag की निगरानी
Publisher पर pg_replication_slots देखें; रुका हुआ subscriber WAL को रोके रखता है और slot का आकार बढ़ाता है, जिससे डिस्क भरने का जोखिम रहता है।
SELECT slot_name, active, pg_size_pretty(
pg_wal_lsn_diff(pg_current_wal_lsn(), confirmed_flush_lsn))
FROM pg_replication_slots;Runbook का दस्तावेज़ बनाएँ
क्योंकि conflicts के लिए manual judgement आवश्यक होता है, टीमें एक runbook रखती हैं: conflict की पहचान कैसे करें, डेटा ठीक करना है या छोड़ना है, और बाद में consistency की पुष्टि कैसे करें।
त्वरित जाँच
Subscriber पर आने वाला INSERT unique violation उत्पन्न करता है। सबसे सुरक्षित समाधान क्या है?
पुनरावृत्ति
आपने सीखा कि logical replication में conflicts कैसे उत्पन्न होते हैं, stats और logs के माध्यम से उन्हें कैसे ढूँढें, और डेटा ठीक करके, LSN छोड़कर या disable_on_error का उपयोग करके उनका समाधान कैसे करें। उचित replica identity और single-writer design अधिकांश conflicts को रोकते हैं।
एआई शिक्षक के साथ उन्नत PostgreSQL: अनुक्रमण, विभाजन और प्रतिकृति सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 11
- पाठ
- 44
अक्सर पूछे जाने वाले प्रश्न
क्या “लॉजिकल प्रतिकृति में संघर्ष समाधान” पाठ निःशुल्क है?
हाँ—“लॉजिकल प्रतिकृति में संघर्ष समाधान” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और उन्नत PostgreSQL: अनुक्रमण, विभाजन और प्रतिकृति पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। उन्नत PostgreSQL: अनुक्रमण, विभाजन और प्रतिकृति पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“लॉजिकल प्रतिकृति में संघर्ष समाधान” में मैं क्या सीखूँगा?
जानें कि लॉजिकल प्रतिकृति में संघर्ष कैसे उत्पन्न होते हैं और PostgreSQL उन्हें पहचानने तथा हल करने के लिए कौन-सी रणनीतियाँ उपलब्ध कराता है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ उन्नत PostgreSQL: अनुक्रमण, विभाजन और प्रतिकृति का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या उन्नत PostgreSQL: अनुक्रमण, विभाजन और प्रतिकृति शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर उन्नत PostgreSQL: अनुक्रमण, विभाजन और प्रतिकृति शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“लॉजिकल प्रतिकृति में संघर्ष समाधान” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस उन्नत PostgreSQL: अनुक्रमण, विभाजन और प्रतिकृति पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर उन्नत PostgreSQL: अनुक्रमण, विभाजन और प्रतिकृति पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- तार्किक प्रतिकृति की मूल बातें
- प्रकाशनों का कॉन्फ़िगरेशन
- सब्सक्रिप्शन का प्रबंधन
- लॉजिकल प्रतिकृति में संघर्ष समाधान