MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan Dalam aplikasi praktikal, kami sering menghadapi senario yang memerlukan replikasi data. Replikasi data boleh dibahagikan kepada dua bentuk: replikasi segerak dan replikasi tak segerak. Replikasi segerak bermaksud bahawa data mesti disalin ke pangkalan data hamba sejurus selepas pangkalan data induk menulis data, manakala replikasi tak segerak bermaksud data boleh ditangguhkan untuk tempoh masa tertentu selepas pangkalan data induk menulis data sebelum menyalin. Artikel ini akan memberi tumpuan kepada cara melaksanakan replikasi tak segerak dan replikasi data tertunda dalam MySQL.
Pertama, untuk melaksanakan replikasi tak segerak dan replikasi tertunda, kita perlu menetapkan format binlog dalam fail konfigurasi MySQL kepada mod ROW. Buka fail konfigurasi MySQL (biasanya my.cnf) dan tambahkan konfigurasi berikut:
[mysqld] binlog_format=ROW
Seterusnya, kita perlu mencipta persekitaran replikasi tuan-hamba. Mula-mula, mulakan perkhidmatan MySQL pangkalan data utama, buat akaun untuk replikasi, dan berikan kebenaran yang sesuai:
CREATE USER 'replication'@'%' IDENTIFIED BY 'password'; GRANT replication slave ON *.* TO 'replication'@'%'; FLUSH PRIVILEGES;
Kemudian, edit fail konfigurasi MySQL dan tambahkan konfigurasi berikut ke pangkalan data utama:
[mysqld] server-id=1 log-bin=master
Kemudian, mulakan semula MySQL di bahagian utama pangkalan data Servis.
Kemudian, mulakan perkhidmatan MySQL dalam perpustakaan hamba, dan juga buat akaun untuk replikasi dan berikan kebenaran yang sesuai:
CREATE USER 'replication'@'%' IDENTIFIED BY 'password'; GRANT replication slave ON *.* TO 'replication'@'%'; FLUSH PRIVILEGES;
Edit fail konfigurasi MySQL dalam perpustakaan hamba dan tambah konfigurasi berikut:
[mysqld] server-id=2 relay-log=slave
Mulakan semula perpustakaan hamba perkhidmatan MySQL.
Laksanakan arahan berikut dalam perpustakaan utama untuk mendapatkan maklumat status perpustakaan utama semasa:
SHOW MASTER STATUS;
Rekod nilai Fail dan Kedudukan, yang akan digunakan untuk mengkonfigurasi replikasi dalam perpustakaan hamba.
Seterusnya, laksanakan arahan berikut dalam perpustakaan hamba untuk mengkonfigurasi replikasi:
CHANGE MASTER TO MASTER_HOST='主库IP地址', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='主库的File值', MASTER_LOG_POS=主库的Position值;
Kemudian, mulakan proses replikasi:
START SLAVE;
Dalam perpustakaan hamba, anda boleh menggunakan arahan berikut untuk melihat status replikasi:
SHOW SLAVE STATUSG;
Seterusnya , kami akan Menerangkan cara melaksanakan replikasi tertunda. Dalam MySQL 5.6.6 dan ke atas, MySQL menyediakan parameter untuk mengawal kelewatan replikasi - slave_pending_jobs_size. Parameter ini digunakan untuk mengawal bilangan transaksi yang menunggu untuk direplikasi daripada pangkalan data. Kita boleh melaksanakan replikasi tertunda dengan menetapkan nilai parameter ini dengan sewajarnya.
Laksanakan arahan berikut dalam pustaka hamba untuk menetapkan kelewatan replikasi kepada 30 saat:
SET GLOBAL slave_pending_jobs_size=100000;
Akhir sekali, mari sahkan sama ada replikasi dan replikasi tertunda berjaya. Kami memasukkan sekeping data dalam pustaka utama, dan kemudian semak sama ada salinan itu berjaya dalam pustaka hamba:
Jalankan arahan berikut dalam pustaka utama untuk memasukkan sekeping data:
USE 数据库名; INSERT INTO 表名 (字段1, 字段2) VALUES ('value1', 'value2');
Kemudian, laksanakan arahan berikut dalam perpustakaan hamba untuk menyemak sama ada salinan berjaya :
USE 数据库名; SELECT * FROM 表名;
Jika data yang dimasukkan berjaya disoal dari perpustakaan, ini bermakna kedua-dua replikasi dan replikasi tertunda telah berjaya dilaksanakan.
Ringkasnya, artikel ini memperkenalkan cara melaksanakan replikasi tak segerak dan replikasi data tertunda dalam MySQL. Replikasi data tak segerak boleh dicapai dengan menetapkan format binlog dalam fail konfigurasi MySQL kepada mod ROW dan mengkonfigurasi parameter dan kebenaran yang sepadan dalam pangkalan data tuan-hamba. Replikasi tertunda data boleh dicapai dengan menetapkan nilai parameter kelewatan replikasi slave_pending_jobs_size. Fungsi ini boleh membantu kami mengurus dan menggunakan pangkalan data MySQL dengan lebih baik.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan replikasi tak segerak dan replikasi data tertunda dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!