gh-ost
adalah solusi migrasi skema online yang tidak memicu untuk MySQL. Ini dapat diuji dan memberikan jeda, kontrol dinamis/konfigurasi ulang, audit, dan banyak fasilitas operasional.
gh-ost
menghasilkan beban kerja yang ringan pada master sepanjang migrasi, dipisahkan dari beban kerja yang ada di atas meja yang dimigrasi.
Ini telah dirancang berdasarkan pengalaman bertahun -tahun dengan solusi yang ada, dan mengubah paradigma migrasi tabel.
Semua alat perubahan skema online yang ada beroperasi dengan cara yang sama: mereka membuat tabel hantu dalam kemiripan tabel asli Anda, memigrasi tabel itu sambil mengosongkan, secara perlahan dan secara bertahap menyalin data dari tabel asli Anda ke tabel Ghost , sementara itu menyebarkan perubahan berkelanjutan yang sedang berlangsung ( INSERT
, DELETE
, UPDATE
yang diterapkan ke tabel Anda) ke meja hantu . Akhirnya, pada waktu yang tepat, mereka mengganti meja asli Anda dengan meja hantu .
gh-ost
menggunakan pola yang sama. Namun itu berbeda dari semua alat yang ada dengan tidak menggunakan pemicu. Kami telah mengakui pemicu sebagai sumber dari banyak keterbatasan dan risiko.
Sebaliknya, gh-ost
menggunakan aliran log biner untuk menangkap perubahan tabel, dan secara asinkron menerapkannya ke meja hantu . gh-ost
mengambil sendiri beberapa tugas yang dilakukan alat lain untuk dilakukan. Akibatnya, gh-ost
memiliki kontrol yang lebih besar atas proses migrasi; benar -benar dapat menangguhkannya; Dapat benar -benar memisahkan beban penulisan migrasi dari beban kerja master.
Selain itu, ia menawarkan banyak fasilitas operasional yang membuatnya lebih aman, dapat dipercaya, dan menyenangkan untuk digunakan.
gh-ost
dengan mengujinya di replika. gh-ost
akan mengeluarkan aliran yang sama seperti pada master, untuk memigrasi tabel pada replika, tanpa benar-benar mengganti tabel asli, meninggalkan replika dengan dua tabel yang kemudian dapat Anda bandingkan dan memuaskan diri sendiri bahwa alat tersebut beroperasi dengan benar. Beginilah cara kami terus menguji gh-ost
dalam produksi.gh-ost
, itu benar-benar berhenti menulis di Master: Tidak ada salinan baris dan tidak ada pemrosesan acara yang sedang berlangsung. Dengan membatasi, Anda mengembalikan master Anda ke beban kerja aslinyagh-ost
secara interaktif, bahkan ketika migrasi masih berjalan. Anda dapat secara paksa memulai pelambatan.gh-ost
untuk status. gh-ost
mendengarkan soket UNIX atau TCP.gh-ost
dapat diinstruksikan untuk menunda apa yang mungkin merupakan langkah paling kritis: pertukaran tabel, sampai Anda tersedia dengan nyaman. Tidak perlu khawatir ETA berada di luar jam kantor.gh-ost
dengan lingkungan khusus Anda.Silakan merujuk ke dokumen untuk informasi lebih lanjut. Tidak, sungguh, baca dokumen.
Lembar cheat memiliki semuanya. Anda mungkin tertarik untuk memohon gh-ost
dalam berbagai mode:
gh-ost
memperkirakan identitas server yang terlibat. Mode yang diperlukan jika master Anda menggunakan replikasi berdasarkan pernyataan)gh-ost
lebih suka yang sebelumnya)gh-ost
.Tips kami:
--test-on-replica
beberapa kali pertama. Lebih baik lagi, buatlah terus menerus. Kami memiliki beberapa replika di mana kami mengulangi seluruh armada tabel produksi kami, memigrasi mereka satu per satu, memeriksa hasilnya, memverifikasi migrasi itu baik.--execute
.Lebih Banyak Tips:
--exact-rowcount
untuk indikasi kemajuan yang akurat--postpone-cut-over-flag-file
untuk mendapatkan kendali atas waktu cut-overJuga lihat:
gh-ost
di AWS RDSgh-ost
pada database Azure untuk MySQL Awalnya ini bernama gh-osc
: Perubahan Skema Online GitHub, dalam Perubahan Skema Online Facebook dan PT-online-Schema-Change.
Tapi kemudian mutasi genetik yang jarang terjadi, dan c
berubah menjadi t
. Dan itu mengirim kami ke jalur mencoba mencari akronim baru. gh-ost
(ucapkan: hantu ), singkatan dari Github's Online Schema Transmogrifier/Translator/Transformer/Transfigurator
gh-ost
dilisensikan di bawah lisensi MIT
gh-ost
menggunakan perpustakaan pihak ke-3, masing-masing dengan lisensi mereka sendiri. Ini ditemukan di sini.
gh-ost
dilepaskan pada keadaan yang stabil, tetapi dengan jarak tempuh untuk pergi. Kami terbuka untuk menarik permintaan. Pertama -tama diskusikan niat Anda melalui masalah.
Kami mengembangkan gh-ost
di GitHub dan untuk komunitas. Kami mungkin memiliki prioritas yang berbeda dari yang lain. Dari waktu ke waktu, kami dapat menyarankan kontribusi yang tidak ada di peta jalan langsung kami tetapi yang mungkin menarik bagi orang lain.
Silakan lihat pengkodean GH-OST untuk panduan untuk memulai berkembang dengan GH-ost.
gh-ost
sekarang GA dan stabil.
gh-ost
tersedia dalam format biner untuk Linux dan Mac OS/X
Unduh rilis terbaru di sini
gh-ost
adalah proyek GO; Dibangun dengan Go 1.15
ke atas. Untuk membangun sendiri, gunakan juga:
./bin/gh-ost
biner.tar.gz
in /tmp/gh-ost-release
Secara umum, cabang master
stabil, tetapi hanya rilis yang harus digunakan dalam produksi.
gh-ost
dirancang, ditulis, ditinjau dan diuji oleh tim infrastruktur basis data di GitHub: