Bagaimana untuk melaksanakan replikasi tak segerak dan replikasi data tertunda dalam MySQL?

王林
Lepaskan: 2023-07-31 12:58:49
asal
1487 orang telah melayarinya

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
Salin selepas log masuk

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;
Salin selepas log masuk
Salin selepas log masuk

Kemudian, edit fail konfigurasi MySQL dan tambahkan konfigurasi berikut ke pangkalan data utama:

[mysqld]
server-id=1
log-bin=master
Salin selepas log masuk

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;
Salin selepas log masuk
Salin selepas log masuk

Edit fail konfigurasi MySQL dalam perpustakaan hamba dan tambah konfigurasi berikut:

[mysqld]
server-id=2
relay-log=slave
Salin selepas log masuk

Mulakan semula perpustakaan hamba perkhidmatan MySQL.

Laksanakan arahan berikut dalam perpustakaan utama untuk mendapatkan maklumat status perpustakaan utama semasa:

SHOW MASTER STATUS;
Salin selepas log masuk

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值;
Salin selepas log masuk

Kemudian, mulakan proses replikasi:

START SLAVE;
Salin selepas log masuk

Dalam perpustakaan hamba, anda boleh menggunakan arahan berikut untuk melihat status replikasi:

SHOW SLAVE STATUSG;
Salin selepas log masuk

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;
Salin selepas log masuk

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');
Salin selepas log masuk

Kemudian, laksanakan arahan berikut dalam perpustakaan hamba untuk menyemak sama ada salinan berjaya :

USE 数据库名;
SELECT * FROM 表名;
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan