VPN тасарсны дараах MySQL репликаци: эхлээд хоёр үе шатыг уншаарай
Тасарсан зам нь алдагдсан транзакц биш. Хүлээн авагч ба хэрэглэгчийг тус тусад нь уншаад, эх сурвалж юу хадгалж байгааг шалгаарай.
VPN унах үед репликацийн хяналт улаан болж, эхний зөн совин нь байрлалыг дахин тохируулах байдаг. Яг энэ зөн совин сүлжээний тасалдлыг өгөгдлийн асуудал болгоно. Унасан зам реплика юу хүлээн авсан, юу хэрэгжүүлсэн тухай юу ч хэлэхгүй бөгөөд эдгээр нь хоёр төлөвтэй хоёр үе шат юм. Ямар нэг зүйлийг өөрчлөхөөс өмнө тэдгээрийг тусад нь уншаарай.
Хоёр үе шат, хоёр тусдаа хариулт
Энгийн асинхрон реплика хоёр ажил хийдэг. Хүлээн авагч эх сурвалжтай холбогдож, үйл явдлуудыг татаж аваад локал дамжуулалтын бүртгэлд бичдэг. Хэрэглэгч тэр бүртгэлийг уншиж, үйл явдлуудыг реплика дээр гүйцэтгэдэг. Зам тасрах үед хүлээн авагч тэр даруй зогсдог бол хэрэглэгч диск дээр аль хэдийн байгаа хуримтлалыг үргэлжлүүлэн боловсруулдаг. Тиймээс нэг тасалдал хоёр өөр асуулт үүсгэдэг: холболт буцаж ирсэн үү, хуримтлагдсан ажил хэрэгжсэн үү? Тэдгээрийг нэг асуулт гэж үзвэл хоёр төлөв дундчилж, төөрөгдүүлсэн хариулт болно.
Хүлээн авагчийн сэргэлт нь зам ажиллаж байгааг хэлнэ. Энэ нь хэрэглэгч хэр хол хоцорсон, эсвэл салсан үед алдаатай тулгарсан эсэхийг хэлэхгүй.
Сувгийг зөв мэдэгдэлээр уншаарай
MySQL 8.4-д SHOW REPLICA STATUS тохируулсан суваг бүрт нэг мөр буцаадаг тул жагсаалтын эхний мөрийг биш, таны санаж байгаа сувгийн мөрийг уншаарай. Replica_IO_Running холбогдсон хүлээн авагчийг холбогдож байгаа эсвэл зогссон хүлээн авагчаас ялгаж, Replica_SQL_Running хэрэглэгчийг тодорхойлно. Тэдний хажууд байгаа алдааны баганыг ч уншаарай, учир нь дахин холбогдоод шууд бүтэлгүйтдэг хүлээн авагч ямар ч төлөвийн туг харуулахгүй мессеж үлдээдэг. Хуучин хувилбарууд өөр баганын нэр ашигладаг тул хуучин жорыг зөвхөн командын нэрийг өөрчлөх замаар орчуулж болохгүй.
Эх сурвалжийн таних тэмдэг болон тохируулсан шүүлтүүрийг ч шалгаарай. Буруу эх сурвалж руу чиглэсэн, эсвэл таны бодсоноос илүү нарийн шүүсэн реплика эрүүл гэж мэдээлэхдээ таны хүлээж байгаагаас өөр зүйлийг репликаци хийдэг.
Тэг хоцролтын тоо яагаад худал хэлж болох вэ
Хоцролтын утга нь хамгийн сүүлд хэрэгжсэн үйл явдлын цагийн тэмдэглэгээг одоогийн цагтай харьцуулдаг. Хүлээн авагч нэг цаг зогссон бол хэрэглэгч хуримтлалыг боловсруулж, хүлээн авсны төгсгөлд хүрч болох бөгөөд тэр үед реплика эх сурвалжаас нэг цаг хоцорч байсан ч тоо тэг рүү унана. Энэ хэмжүүр нь хэрэглэгчийн дарааллыг хэмждэг, репликийн шинэчлэгдсэн байдлыг биш.
Үүний оронд гүйцэтгэсэн транзакцуудыг эх сурвалжид байгаа зүйлтэй харьцуулаарай. Тэр харьцуулалт зогссон хүлээн авагчийг ч даваад гардаг.
Бодит сэргээх цонхыг хадгалалт тодорхойлно
Гүйцэхийн тулд эх сурвалж репликад хэрэгтэй транзакцуудыг одоо ч хадгалж байх ёстой. Тэдгээрийг цэвэрлэсний дараа реплика тэдгээрийг авч чадахгүй бөгөөд хэдэн ч удаа дахин холбогдсон ч энэ нь өөрчлөгдөхгүй.
GTID автомат байрлалтай үед алдаа нь тодорхой: реплика эх сурвалжид байхгүй болсон түүхийг шаардаж, үргэлжлүүлэхээс татгалздаг. Тэгвэл сонголтууд нь дутуу үйл явдлуудыг одоо ч агуулж байгаа эх сурвалжаас авах, эсвэл нөөц хуулбараас дахин бүтээж, гүйцэхийг зөвшөөрөх юм. Завсрыг алгасах нь гүйцэх биш бөгөөд энэ нь өгөгдөл нь чимээгүйгээр дутуу реплика үлдээдэг. Хүлээгдэж буй тасалдлын үргэлжлэх хугацааг эх сурвалж дээрх хоёртын бүртгэлийн хадгалалт болон өөрчлөлтийн хурдтай харьцуулж цонхыг төлөвлөөрэй, учир нь энэ гурван тоо нь тасалдал ерөөсөө сэргээгдэх эсэхийг шийддэг.
Гүйцсэн байдлыг шалгаарай, заагчийн өнгийг биш
Замыг сэргээж, үүнд нэрийн шийдвэрлэлт болон тээврийн аюулгүй байдал багтана, дараа нь одоо байгаа суваг өөрийн бодлогоор дахин холбогдож байгаа эсэхийг ажиглаарай. Хөндлөнгөөс оролцохоос өмнө түүнд тодорхой интервал өгч, тэр интервалын хоёр төгсгөлд хүлээн авалт ба хэрэглээний явцыг бүртгээрэй. Дахин эхэлсэн суваг ба шинэчлэгдсэн суваг нь өөр дүгнэлтүүд юм.
Хэрэглэгч эх сурвалжийн одоогийн байрлалд хүрсэн гэдгийг баталгаажуулаарай, зөвхөн хуучин хуримтлалын төгсгөлд биш. Хэрэглэгчид алдаа хүлээж байгаа эсэхийг шалгаарай, учир нь нэг бүтэлгүйтсэн үйл явдал явцыг зогсоодог бол хүлээн авагч холбогдсон гэж мэдээлсээр байдаг. Дараа нь нотолгоог бүртгээрэй: сувгийн нэр, хоёр үе шатын төлөв, гүйцэтгэсэн байрлал ба цаг. Ногоон заагч бол мэдэгдэл; байрлал бол баримт.