Replikasi mysql 5.7 ke 8

Dalam dunia Database, salah satu nilai terpenting yang ingin kita capai adalah Ketersediaan Tinggi. Tidak kehilangan data berharga kami atau jika satu server gagal untuk selalu memiliki yang lain untuk masuk dan mengambil kendali

Jadi, sangat penting untuk memiliki database utama kami, contoh identik lainnya, replika

Pada postingan blog ini, kita akan melihat cara paling terkenal untuk menyiapkan replikasi kita

MySQL menawarkan berbagai opsi untuk mencapai pengaturan replikasi. Di sini kita akan mengulas cara membuat replika berdasarkan replikasi GTID dengan menggunakan salah satu metode berikut

  • mysqldump
  • rsync
  • Pencadangan MySQL Enterprise (MEB)
  • Plugin klon

MySQL Shell, menggunakan utilitas, adalah metode lain. Silakan lihat artikel ini

Sebelum memulai proses apa pun, kami perlu memastikan bahwa pada my. cnf, primer & replika, telah menetapkan parameter berikut

1

2

3

4

5

server-id

log-bin

binlog_format

gtid-mode=AKTIF

berlaku-gtid-konsistensi

Metode Replikasi Pertama – mysqldump

Jadi, dimulai dengan opsi mysqldump kita perlu memastikan bahwa kita telah mengaktifkan gtid-purged

1

mysqldump -u dumpUser -p --routines --events --triggers --single-transaction --set-gtid-purged=ON --all-databases > backup.sql

Setelah ini selesai, jika kita melakukannya

1

grep DIBERSIHKAN cadangan. sql

Kami akan menerima gtid yang sesuai yang diperlukan untuk menyiapkan replika kami. Cadangan. sql file harus dipindahkan ke replika, scp sederhana harus dilakukan

Pindah ke replika, kami melakukan perintah berikut

1

mysql -u root -p -e "source path/backup.sql"

Setelah impor ini selesai, kita hanya perlu menjalankan yang berikut ini

1

2

GANTI MASTER UNTUK MASTER_HOST='primary_IP' ,MASTER_USER='user_to_connect',MASTER_PASSWORD='******', MASTER_AUTO_POSITION=1;

mulai budak;

Jika kedua perintah di atas dijalankan tanpa masalah, lakukan show slave status\G untuk memverifikasi bahwa Slave_IO_Running dan Slave_SQL_Running diatur ke ya

Metode Replikasi ke-2 – rsync

Saat menggunakan opsi rsync, database pada replika tidak boleh berjalan. Dan pada db utama kita perlu memiliki kunci pada tabel. Segera setelah tabel dikunci, kami dapat melanjutkan dengan menyinkronkan data

Jadi

1

2

FLUSH MEJA DENGAN BACA KUNCI;

rsync -axvz /datadir/* root@replica:/datadir

Setelah salinan selesai, kami harus menghapus otomatis. cnf (karena ini akan memberikan UUID yang sama dan kami tidak akan dapat mengatur replika kami) dan kami juga akan menghapus mysql. kaus kaki

Langkah selanjutnya adalah memulai database kita dan menyiapkannya sebagai replika

1

2

3

4

systemctl mulai mysqld

mysql -uroot -p

GANTI MASTER UNTUK MASTER_HOST='primary_IP' ,MASTER_USER='user_to_connect',MASTER_PASSWORD='******',    MASTER_AUTO_POSITION=1;

mulai budak;

Dan tentunya jangan lupa untuk membalikkan perintah lock pada primary

1

buka tabel;

Metode Replikasi ke-3 – MEB

MEB, MySQL Enterprise Backup, adalah utilitas pencadangan berlisensi komersial untuk database MySQL. Salah satu cara tercepat dan termudah untuk menyiapkan replikasi Anda saat db utama aktif dan berjalan

Harap perhatikan bahwa db pada replika tidak boleh berjalan dan jalur terkait harus kosong, karena ini dapat menyebabkan kebingungan. Misalnya, bayangkan Anda lupa file binlog dan binlog_index untuk mencoba membaca dari binlog yang salah. Ini akan menyebabkan replikasi rusak

Jadi, untuk mysqlback & restore bisa kita lakukan

1

2

mysqlbackup -u backupUser -p --backup-dir=/tmp --backup-image=- --compress backup-to-image | ssh mysql@replika_host "/bin/mysqlbackup --backup-dir=/tmp --datadir=path_of_data --log-bin=binlog_path --relay-log=relay_log_path --uncompress --backup-image=- copy-back-and-apply-log"

 

Dalam satu perintah kami mengirimkan data kami ke replika juga

Setelah selesai, kita masuk ke folder /tmp di node utama dan di dalam folder meta, kita perhatikan perintah di dalam backup_gtid_purged. .sql. Ini diperlukan untuk menyiapkan replika kami

1

2

3

4

5

setel ulang budak;

setel ulang master;

setel global. gtid_purged=@@ ( . this is the command inside the backup_gtid_purged.sql)

GANTI MASTER UNTUK MASTER_HOST='primary_IP' ,MASTER_USER='user_to_connect',MASTER_PASSWORD='******', MASTER_AUTO_POSITION=1;

mulai budak;

Replika kami aktif dan berjalan tanpa masalah

Metode Replikasi ke-4 – plugin klon

Last but not least kami memiliki metode clone. Klon dimulai pada 8. 0. 17 versi dan itu adalah alat yang sangat berguna

Hal pertama yang perlu kita lakukan adalah menginstal plugin klon pada replika utama dan wannabe serta pengguna dengan hibah yang sesuai

1

2

3

INSTAL PLUGIN klon SONAME 'mysql_clone. jadi';

BUAT PENGGUNA clone_user@'%' IDENTIFIED BY 'xxxxxx';

GRANT BACKUP_ADMIN, CLONE_ADMIN AKTIF *.* kepada clone_user@';

Verifikasi bahwa plugin memang aktif

1

2

3

4

5

6

7

PILIH PLUGIN_NAME, PLUGIN_STATUS DARI information_schema.PLUGIN DI MANA PLUGIN_NAME = ';

+-------------+---------------+

. PLUGIN_NAME . PLUGIN_STATUS .

+-------------+---------------+

. kloning       . AKTIF        .

+-------------+---------------+

 

Dan kami juga akan memasang donatur kami di replika tersebut

1

SET GLOBAL clone_valid_donor_list = 'Primary_Host_IP. pelabuhan';

Sekarang kita perlu masuk ke replika dengan clone_user yang kita buat pada langkah-langkah yang disebutkan di atas dan jalankan perintah berikut

1

CLONE INSTANCE FROM 'clone_user'@'Primary_host_IP':port DIIDENTIFIKASI OLEH 'xxxxxx';

Setelah ini selesai, kami keluar dari clone_user dan masuk dengan root dan menyiapkan replika kami

1

2

GANTI MASTER UNTUK MASTER_HOST='primary_IP' ,MASTER_USER='user_to_connect',MASTER_PASSWORD='******', MASTER_AUTO_POSITION=1;

mulai budak;

Harap perhatikan bahwa master_user yang digunakan untuk menyiapkan replika kami di semua metode harus memiliki akses ke replika kami dan memiliki hak istimewa replication_slave

Kesimpulan

Singkatnya, MySQL menawarkan berbagai cara untuk mengatur replikasi tur, apa yang akan Anda pilih tergantung pada kebutuhan Anda akan kecepatan, kinerja, dan waktu henti

Referensi

  • Cadangan Perusahaan MySQL
    • https. //dev. mysql. com/doc/mysql-enterprise-backup/8. 0/en/mysqlbackup. html
  • mysqldump
    • https. //dev. mysql. com/doc/refman/8. 0/en/mysqldump. html
  • Plugin Klon
    • https. //dev. mysql. com/doc/refman/8. 0/en/clone-plugin. html
  • Menyiapkan Replikasi Menggunakan GTID
    • https. //dev. mysql. com/doc/refman/8. 0/en/replication-gtids-howto. html

Replikasi mysql 5.7 ke 8
Replikasi mysql 5.7 ke 8

Anastasia Papachristopoulou

Bergairah tentang Database. Suka mempelajari teknologi baru dan mencobanya. Saya menikmati tidak lebih dari memeriksa tren teknologi baru dan menganalisis efisiensinya

Terkait

Diarsipkan di bawah
Cadangkan / Pulihkan, MySQL oleh Anastasia Papachristopoulou

6 Responses to “Menyiapkan Replikasi dengan Berbagai Metode untuk MySQL 8”

  1. lefred

    Anda bisa melupakan mysqldump dan fokus juga pada utilitas MySQL Shell Dump & Load 😉

  2. Replikasi mysql 5.7 ke 8
    Replikasi mysql 5.7 ke 8

    Olivier DASINI

    Anastasia memberi kami umpan balik tentang alat yang dia gunakan sejauh ini
    Tapi saya setuju, utilitas MySQL Shell Dump & Load akan menjadi standar baru 🙂

  3. Replikasi mysql 5.7 ke 8
    Replikasi mysql 5.7 ke 8

    Anastasia Papachristopoulou

    Anda berdua benar sekali 🙂 Kita harus menyiapkan demo dengan MySQL Shell. Terima kasih atas idenya

  4. ADAM MULLA

    Saya ingin menghapus keraguan saya di MySQL 8. 0+ tidak mengizinkan replika untuk menjatuhkan database sistem MySQL saat memulihkan sql dump yang diambil melalui —semua-database. blog Anda adalah berapa banyak jenis replikasi yang dapat kami atur

  5. Replikasi mysql 5.7 ke 8
    Replikasi mysql 5.7 ke 8

    Anastasia Papachristopoulou

    Hei, database sistem MySQL memang tidak bisa dihapus di MySQL 8+. Itu sebabnya opsi – database harus digunakan daripada database add-drop. Jika db sistem MySQL perlu dihapus karena korupsi, maka ini harus dilakukan dari sistem operasi dan kemudian Anda perlu menginisialisasi MySQL sekali lagi. Opsi –semua-database juga tidak membuang database, ia memiliki perintah "BUAT DATABASE JIKA TIDAK ADA". Saya harap ini membantu menjelaskan, jika tidak, jangan ragu untuk menghubungi sekali lagi

  6. MySQL SHELL. dasini. net - Journal d'experts MySQL

    […] salah satu artikel kami sebelumnya – Menyiapkan Replikasi dengan berbagai metode untuk MySQL 8 – kami meninjau cara membuat replika dengan banyak alat. Kini saatnya melakukan […]

    Cara memigrasikan MySQL 5. 7 sampai 8?

    Upgrade INPLACE melibatkan mematikan MySQL 5. 7 server, menggantikan binari lama dengan MySQL 8. 0 binari dan kemudian memulai MySQL 8. 0 server pada direktori data lama. .
    Penggunaan objek db dengan. .
    Penggunaan charset utf8mb3. .
    Penggunaan penggunaan ZEROFILL/display. .
    Masalah yang dilaporkan oleh 'periksa tabel x untuk pemutakhiran'

    Apa perbedaan antara MySQL 5. 7 dan MySQL 8?

    MySQL 8. 0 menjadikan UTF8MB4 set karakter default . Kinerja SQL – seperti menyortir string UTF8MB4 – telah ditingkatkan dengan faktor 20 dalam 8. 0 dibandingkan dengan 5. 7. UTF8MB4 adalah pengkodean karakter yang mendominasi untuk web, dan langkah ini akan membuat hidup lebih mudah bagi sebagian besar pengguna MySQL.

    Apakah MySQL5. 7 masih didukung?

    MySQL 5. 7 – Akhir hayat komunitas direncanakan hingga Oktober 2023 . Amazon RDS untuk MySQL akan terus mendukung hingga tanggal EOL komunitas. MySQL8. 0 – Akhir kehidupan komunitas direncanakan hingga April 2026.

    Mengapa MySQL melompat ke versi 8?

    " Karena banyaknya fitur baru dan penting yang kami perkenalkan dalam versi MySQL ini, kami memutuskan untuk memulai seri baru yang segar . Karena nomor seri 6 dan 7 sebenarnya telah digunakan sebelumnya oleh MySQL, kami beralih ke nomor 8. 0. "