VPN منقطع ہونے کے بعد MySQL نقل: پہلے دونوں مرحلے پڑھیں
منقطع راستہ گم شدہ لین دین نہیں ہے۔ وصول کنندہ اور لاگو کنندہ کو الگ الگ پڑھیں، پھر دیکھیں کہ ماخذ اب بھی کیا رکھتا ہے۔
VPN گرنے پر نقل کی نگرانی سرخ ہو جاتی ہے، اور پہلا رجحان مقام کو ری سیٹ کرنا ہوتا ہے۔ یہی رجحان نیٹ ورک کی رکاوٹ کو ڈیٹا کا مسئلہ بناتا ہے۔ گرا ہوا راستہ اس بارے میں کچھ نہیں کہتا کہ نقل نے کیا وصول کیا یا کیا لاگو کیا، اور یہ دو حالتوں والے دو مرحلے ہیں۔ کچھ بھی بدلنے سے پہلے انہیں الگ الگ پڑھیں۔
دو مرحلے، دو الگ جواب
عام غیر ہم وقت نقل دو کام کرتی ہے۔ وصول کنندہ ماخذ سے جڑتا ہے، واقعات کھینچتا ہے اور انہیں مقامی طور پر ریلے لاگ میں لکھتا ہے۔ لاگو کنندہ وہ لاگ پڑھتا ہے اور واقعات نقل پر چلاتا ہے۔ جب راستہ ٹوٹتا ہے تو وصول کنندہ فوراً رک جاتا ہے جبکہ لاگو کنندہ ڈسک پر پہلے سے موجود بیک لاگ پر کام جاری رکھتا ہے۔ اس لیے ایک رکاوٹ دو مختلف سوال پیدا کرتی ہے: کیا کنکشن واپس آیا، اور کیا جمع شدہ کام لاگو ہوا؟ انہیں ایک سوال سمجھنے سے دو حالتیں مل کر گمراہ کن جواب بن جاتی ہیں۔
وصول کنندہ کا بحال ہونا بتاتا ہے کہ راستہ چل رہا ہے۔ یہ نہیں بتاتا کہ لاگو کنندہ کتنا پیچھے ہے، یا منقطع رہتے ہوئے اسے کوئی خرابی ملی یا نہیں۔
درست بیان کے ساتھ چینل پڑھیں
MySQL 8.4 میں، SHOW REPLICA STATUS ہر ترتیب شدہ چینل کے لیے ایک سطر واپس کرتا ہے، اس لیے فہرست کی پہلی سطر کی بجائے وہ سطر پڑھیں جس چینل کا آپ ارادہ رکھتے ہیں۔ Replica_IO_Running جڑے ہوئے وصول کنندہ کو جڑنے والے یا رکے ہوئے وصول کنندہ سے الگ کرتا ہے، اور Replica_SQL_Running لاگو کنندہ کی وضاحت کرتا ہے۔ ان کے ساتھ والے خرابی کے کالم بھی پڑھیں، کیونکہ دوبارہ جڑ کر فوراً ناکام ہونے والا وصول کنندہ ایسا پیغام چھوڑتا ہے جو کوئی حالت کا جھنڈا نہیں دکھائے گا۔ پرانی اشاعتیں مختلف کالم نام استعمال کرتی ہیں، اس لیے صرف حکموں کے نام بدل کر پرانا نسخہ ترجمہ نہ کریں۔
ماخذ کی شناخت اور ترتیب شدہ فلٹر بھی جانچیں۔ غلط ماخذ کی طرف اشارہ کرنے والی، یا آپ کی سوچ سے زیادہ تنگ فلٹر شدہ نقل صحت مند ہونے کی اطلاع دیتی ہے جبکہ وہ آپ کی توقع سے مختلف چیز نقل کر رہی ہوتی ہے۔
صفر تاخیر کا عدد جھوٹ کیوں بول سکتا ہے
تاخیر کی قدر آخری لاگو شدہ واقعے کے وقت کی مہر کا موجودہ وقت سے موازنہ کرتی ہے۔ جب وصول کنندہ ایک گھنٹہ رکا رہا ہو، لاگو کنندہ بیک لاگ ختم کر کے موصول شدہ کے آخر تک پہنچ سکتا ہے، اور تب عدد صفر پر گر جاتا ہے حالانکہ نقل ماخذ سے ایک گھنٹہ پیچھے ہے۔ یہ پیمانہ لاگو کنندہ کی قطار ناپتا ہے، نقل کی تازگی نہیں۔
اس کے بجائے چلائے گئے لین دین کا ماخذ کے پاس دستیاب سے موازنہ کریں۔ وہ موازنہ رکے ہوئے وصول کنندہ میں بھی قائم رہتا ہے۔
اصل بحالی کی کھڑکی کا تعین محفوظ رکھنا کرتا ہے
پکڑنے کے لیے ضروری ہے کہ ماخذ نقل کو درکار لین دین اب بھی رکھے۔ ان کے صاف ہونے کے بعد نقل انہیں حاصل نہیں کر سکتی، اور کتنی بھی دوبارہ جوڑنے سے یہ نہیں بدلتا۔
GTID خودکار مقام کے ساتھ ناکامی واضح ہے: نقل ایسی تاریخ مانگتی ہے جو ماخذ اب نہیں رکھتا اور آگے بڑھنے سے انکار کرتی ہے۔ تب اختیارات ہیں کہ گم شدہ واقعات ایسے ماخذ سے لیے جائیں جو اب بھی انہیں رکھتا ہے، یا بیک اپ سے دوبارہ بنا کر اسے پکڑنے دیا جائے۔ خلا کو چھوڑ دینا پکڑنا نہیں ہے، اور یہ ایسی نقل چھوڑتا ہے جس کا ڈیٹا خاموشی سے نامکمل ہے۔ کھڑکی کی منصوبہ بندی متوقع رکاوٹ کی مدت کو ماخذ پر بائنری لاگ کی حفاظت اور تبدیلی کی شرح سے موازنہ کر کے کریں، کیونکہ وہی تین اعداد طے کرتے ہیں کہ رکاوٹ بالکل بحال ہو سکتی ہے یا نہیں۔
اشارے کا رنگ نہیں، پکڑا جانا تصدیق کریں
راستہ بحال کریں، جس میں نام کا حل اور نقل و حمل کی حفاظت شامل ہے، پھر دیکھیں کہ موجودہ چینل اپنی پالیسی کے مطابق دوبارہ جڑتا ہے یا نہیں۔ مداخلت سے پہلے اسے مقررہ وقفہ دیں، اور اس وقفے کے دونوں سروں پر وصولی اور اطلاق کی پیش رفت درج کریں۔ دوبارہ شروع ہونے والا چینل اور تازہ چینل الگ نتائج ہیں۔
تصدیق کریں کہ لاگو کنندہ ماخذ کی موجودہ پوزیشن تک پہنچ گیا ہے، صرف پرانے بیک لاگ کے آخر تک نہیں۔ جانچیں کہ لاگو کنندہ میں کوئی خرابی منتظر نہیں، کیونکہ ایک ناکام واقعہ پیش رفت روک دیتا ہے جبکہ وصول کنندہ جڑے ہونے کی اطلاع دیتا رہتا ہے۔ پھر شواہد درج کریں: چینل کا نام، دونوں مرحلوں کی حالت، چلائی گئی پوزیشن اور وقت۔ سبز اشارہ ایک دعویٰ ہے؛ پوزیشن ایک حقیقت ہے۔