Kami menggunakan ptosc pada pangkalan data Percona MySQL 5.7 dan pada penghujung proses kami mengalami kependaman replikasi yang besar selama 2-3 minit pada semua replika.
Kami menggunakan arahan berikut dan ia menjeda penyalinan data apabila kelewatan replikasi ditemui, tetapi menjelang akhir proses, mungkin apabila jadual dinamakan semula, kami mengalami kelewatan replikasi yang besar.
Ini ialah arahan yang kami gunakan:
pt-online-schema-change -u 'username' -p 'password' --selang maks 5 --max-load Threads_running=30 --critical-load Threads_running=200 --pause-file /tmp/pt-pause-file --alter-foreign-keys-cara drop_swap --ubah "TAMBAH COLUMN ujian TINYINT(1) LALAI '0' BUKAN NULL" --berulang 1 D=db,t=jadual
Kami mungkin telah menemui masalahnya. Kami menggunakan kaedah
drop_swap
untuk kunci asing.Walaupun proses menamakan semula sangat pantas, ia memerlukan menunggu jadual dipadamkan, yang boleh mengambil sedikit masa di atas meja besar. Jadi keseluruhan proses "penukaran" mengambil masa yang lebih lama.
Penyelesaian untuk kami adalah menjauhi FK dan mengambil kira masa henti semasa memindahkannya.