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

2 डेटाबेस को सिंक करना एक प्रतिबद्ध करने में विफल रहा

चूंकि आप एक वितरित लेनदेन करना चाहते हैं , आपको दो-चरण प्रतिबद्ध प्रोटोकॉल . की आवश्यकता है ।

आप हमेशा की तरह दोनों डेटाबेस पर लेन-देन शुरू करते हैं, लेकिन उन्हें करने के बजाय, आप चलाते हैं

PREPARE TRANSACTION 'some_name';

यह सब कुछ करता है जो एक प्रतिबद्धता के दौरान विफल हो सकता है और लेनदेन को जारी रखता है। एक बार यह सफल हो जाने के बाद, आप दोनों डेटाबेस पर निम्नलिखित चलाएँ:

COMMIT PREPARED 'some_name';

लेन-देन करने के लिए।

अगर PREPARE TRANSACTION के दौरान कुछ भी विफल हो जाता है , आप पहले से तैयार लेनदेन से छुटकारा पाने के लिए निम्नलिखित चलाते हैं:

ROLLBACK PREPARED 'some_name';

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




  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 संस्करण 9.4.4)

  2. PostgreSQL:डेटाबेस छोड़ें लेकिन DB अभी भी है

  3. एकाधिक आईपी पतों के लिए postgresql postgresql.conf सुनो_एड्रेस को कैसे कॉन्फ़िगर करें

  4. PostgreSQL के लिए स्लोनी प्रतिकृति के लिए एक विशेषज्ञ की मार्गदर्शिका

  5. X घंटे जोड़ना - @Query - स्प्रिंग डेटा JPA