Berikut cara mengatur replikasi antara dua MySQL 5. 7 server berjalan di Ubuntu 16. 04 LTS. Replikasi biasanya digunakan untuk meningkatkan ketersediaan atau memiliki node tambahan untuk menjalankan kueri dan laporan analitik. Kami juga menunjukkan bagaimana Anda dapat dengan mudah menggunakan OpsDash untuk memantau status replikasi Show
Ubuntu 16. Repositori 04 LTS hadir dengan versi 5. 7 dari MySQL, jadi menginstalnya hanya masalah
Posting selanjutnya menganggap Anda telah menyiapkan dua node identik yang menjalankan MySQL, yang dapat berbicara satu sama lain melalui jaringan pribadi, dan bahwa node tersebut memiliki IP. _Penyiapan utamaPertama mari kita atur masternya. Proses ini perlu mengambil snapshot database yang konsisten, yang melibatkan penempatan kunci baca global. Ini berarti database akan bersifat hanya-baca dan semua penulisan akan diblokir selama penguncian berlangsung. Anda harus merencanakan waktu henti ini 1) Perbarui konfigurasiDi dalam file /etc/mysql/mysql. conf. d/mysqld. cnf batalkan komentar atau atur yang berikut ini
Ini membuat master mendengarkan IP pribadi, menyetelnya 9 (yang harus unik untuk setiap node di antara kumpulan node master dan slave yang terhubung) ke 1, dan mengaktifkan logging biner2) Mulai ulang layanan MySQL agar perubahan diterapkan _3) Buat pengguna untuk replikasiKami akan menyiapkan budak untuk terhubung ke master melalui akun khusus. Akun membutuhkan 0 hak istimewa. Di sini kami menggunakan nama pengguna 1
4) Kunci masternyaSelanjutnya kita perlu mengunci master untuk mendapatkan snapshot yang konsisten untuk mem-bootstrap budak _Perhatikan bahwa kunci ini dilepaskan saat Anda keluar dari klien mysql CLI, atau saat Anda mengeluarkan 2. Kunci harus tetap di tempatnya sampai 3 pada langkah 6 di bawah selesai5) Catat posisi log replikasi master
Informasi ini akan diperlukan untuk menginisialisasi budak di langkah berikutnya 6) Buang master db
Catatan. Anda juga dapat menghentikan mysqld dan mentransfer file db. Halaman ini memiliki detail lebih lanjut 7) Buka kunci database masterAnda dapat melakukannya dengan keluar dari shell mysql CLI Anda, atau dengan menjalankan
8) Salin file ke budakTransfer file dump dengan aman ke slave, misalnya. g. , menggunakan _4
Pengaturan budak1) Perbarui konfigurasiDalam file /etc/mysql/mysql. conf. d/mysqld. cnf, batalkan komentar atau atur yang berikut ini _0Seperti untuk master di atas, ini membuat budak mendengarkan IP pribadi, menyetelnya 9 (kali ini ke 2), dan mengaktifkan logging biner. Meskipun logging biner tidak sepenuhnya diperlukan, masuk akal untuk menjaga konfigurasi budak sedekat mungkin dengan master, jika budak dipromosikan menjadi master. Itu juga memungkinkan budak ini bertindak sebagai master untuk budak lain2) Mulai ulang layanan MySQL agar perubahan diterapkan _13) Impor dump dbImpor file dump yang Anda buat di master dan salin ke budak ini _24) Siapkan budak untuk berbicara dengan master _3Pada titik ini, budak sinkron dengan master dan siap menerima dan memutar ulang perubahan yang dilakukan pada master. Nilai _6 dan 7 berasal dari output 8 yang Anda jalankan sebelumnyaUji apakah replikasi berfungsiDan Anda selesai. Jika Anda sampai sejauh ini tanpa kesalahan, buat tabel/baris baru di master. Perubahan harus disebarkan kurang lebih secara instan ke budak. Periksa apakah perubahan muncul pada budak Pengaturan PemantauanOpsDash adalah server yang dihosting sendiri dan solusi pemantauan layanan, yang dapat memantau instance MySQL. Ini gratis untuk digunakan hingga 5 server dan layanan. Mari kita lihat cara menyiapkannya untuk kasus ini 1) Instal server OpsDashUnduh dan instal server OpsDash di mesin apa pun yang dapat terhubung ke server MySQL _4OpsDash harus aktif dan berjalan setelah perintah ini. Anda dapat menelusuri 9 untuk melihat UI OpsDash, di mana 0 adalah IP server tempat Anda menginstal OpsDash. Ingatlah untuk membuka port di firewall Anda jika perlu2) Buat pengguna MySQLOpsDash perlu terhubung ke server MySQL dan mengumpulkan metrik. Mari buat pengguna baru untuk ini _5Hak istimewa 1 dan 2 memungkinkan OpsDash untuk menanyakan status replikasi. Anda juga dapat mengganti 3 dengan IP server OpsDash yang sebenarnya3) Beri tahu OpsDash tentang server MySQLDari UI OpsDash, mari tambahkan entri untuk setiap instance MySQL. Dari halaman Pengaturan Sistem -> Layanan, tambahkan layanan MySQL, berikan IP, nama pengguna ("opsdash") dan kata sandi ("opsdashpass") 4) Lihat dasborDasbor untuk master (Sumber -> "master") menunjukkan berbagai metrik kesehatan dan kinerja, termasuk jumlah budak aktif (yang seharusnya 1). Anda dapat mengeklik grafik dan menyetel peringatan saat turun di bawah 1. OpsDash dapat memberi tahu Anda melalui email, Slack, HipChat, PagerDuty, atau Pushbullet saat peringatan terjadi Dasbor budak menyertakan kelambatan replikasi (dalam detik), serta jumlah utas budak (harus ada 1 utas I/O budak dan 1 utas SQL budak yang berjalan dalam jalur normal) Kegagalan ManualTerakhir, mari kita lihat bagaimana slave MySQL dapat dipromosikan menjadi master secara manual. Perhatikan bahwa ini tidak mencakup failover yang tidak direncanakan/otomatis, hanya kasus ketika failover telah direncanakan dan dijalankan secara manual – seperti untuk peningkatan versi atau peningkatan perangkat keras 1) Hentikan modifikasi pada masterKoneksi ke master harus dihentikan terlebih dahulu, agar tidak ada lagi perubahan yang terjadi pada master 2) Tunggu hingga replikasi selesaiSemua perubahan harus direplikasi ke budak, dan budak harus menyelesaikan penerapannya. Anda dapat memeriksanya dengan menjalankan "SHOW PROCESSLIST" pada master _6Negara harus membaca “Tuan telah mengirim semua binlog ke budak; . Ini berarti master telah menyelesaikan bagian dari replikasi Pada budak, menjalankan "SHOW SLAVE STATUS\G" memberikan status budak _7Kolom Slave_SQL_Running_State harus bertuliskan “Slave telah membaca semua log relai; 3) Promosikan budakSekarang Anda dapat mempromosikan budak dengan perintah _8Setelah perintah ini, node slave tidak lagi berbicara dengan master 4) Konfigurasi ulang aplikasiSemua aplikasi dan pekerjaan harus dikonfigurasi untuk berbicara dengan master baru. Ini melengkapi failover Bacaan lebih lanjutManual Referensi MySQL memiliki bab tentang replikasi, yang mendokumentasikan semua ini dan lebih banyak lagi. Anda juga dapat membaca tentang pengaturan lain seperti replikasi multi-master dan replikasi semisinkron, dan teknik seperti replikasi tertunda dan mengambil cadangan dari budak Utilitas MySQL berisi alat yang dapat digunakan untuk mengotomatiskan langkah-langkah penyiapan replikasi dan kegagalan Anda dapat mengetahui lebih lanjut tentang OpsDash di sini. OpsDash adalah server yang dihosting sendiri dan solusi pemantauan layanan dengan dukungan terintegrasi untuk pemantauan replikasi MySQL Bagaimana cara memulai dan menghentikan replikasi di MySQL?Untuk menghentikan pemrosesan log biner dari sumber, gunakan STOP REPLICA. . mysql> BERHENTI BUDAK; . 0. . mysql> BERHENTI BUDAK IO_THREAD; . 0. . mysql> MULAI BUDAK; . 0. . mysql> MULAI BUDAK IO_THREAD; . 0 Bagaimana cara memulai replikasi?Sambungkan ke Publisher di Management Studio, lalu perluas node server dan folder Replikasi. Luaskan folder Publikasi Lokal, lalu klik kanan sebuah publikasi. Klik Lihat Status Agen Snapshot atau Lihat Status Agen Pembaca Log. Klik Mulai atau Berhenti
Bagaimana cara kerja replikasi MySQL?Replikasi memungkinkan data dari satu server database MySQL (dikenal sebagai sumber) untuk disalin ke satu atau lebih server database MySQL (dikenal sebagai replika). Replication is asynchronous by default; replicas do not need to be connected permanently to receive updates from a source.
Bagaimana cara mengkonfigurasi replikasi di server MySQL?Langkah 1. Instal MySQL di Server Master dan Slave. Kami akan memulai dengan menginstal database MySQL di server master dan slave. . Langkah 2. Amankan MySQL di Server Master dan Slave. . Langkah 3. Konfigurasi Node Master (Server). Langkah 4. Konfigurasikan Node Budak (Server). Langkah 4. Menguji Replikasi Master-Slave MySQL |