Seni bina tuan-hamba biasa:
Satu tuan dan seorang hamba: Satu Tuan, seorang Hamba
Satu tuan dan berbilang hamba: Satu Tuan, berbilang Hamba
Untuk butiran, sila rujuk rajah di bawah:
Apakah butiran pelaksanaan asas MySQL semasa penyegerakan induk-hamba? Untuk menganalisis sebab kelewatan tuan-hamba dan rancangan pengoptimuman kemudian, buat persediaan teori.
Ringkasnya, replikasi tuan-hamba MySQL: Asynchronous single-threaded.
Master
1 SebelumnyaIO线程
, bertanggungjawab untuk menghantar kepada Hamba binary log
(binlog
)
Hamba 2 Benang: IO 线程
dan 执行SQL的线程
, antaranya:
IO线程
: Tambahkan maklumat log yang diperoleh pada log geganti; 🎜>
", 执行SQL的线程
Keperluan:Selesaikan proses replikasi tuan-hamba antara Tuan & Hamba:
多线程
主从复制
一个数据库
一个线程
多个数据库
Tambah hamba多个线程
Pada masa ini terdapat pusat pangkalan data pada tuan saya, dan saya perlu menambah hamba kepadanya (pada masa ini terdapat satu hamba)
Analisis:Saya mempunyai sandaran pangkalan data pada pukul 4:00 sehari sebelumnya.
Ada budak ucenter sedia ada
Inti utamanya ialah mencari titik masa binlog
replicate-do-db = ucenter #同步的数据库名字 slave-skip-errors=all #同步是忽略错误 server-id = 1112 #和master与其他slave保持不通
2 Cari sandaran pangkalan data sehari sebelumnya, salin ke mesin hamba baharu dan import pangkalan data
[root@ucenter_slave /data]# mysql ucenter < ucenter_20171102.sql[root@ucenter_slave /data]# du -sh ucenter_20171102.sql 24G ucenter_20171102.sql
Cari binlog pada induk
[root@Ucenter /data/mysqldata]# ll -t *bin* -rw-rw---- 1 mysql mysql 30709744 Nov 2 21:32 mysql-bin.000268 -rw-rw---- 1 mysql mysql 171 Nov 2 19:41 mysql-bin.index -rw-rw---- 1 mysql mysql 1021101094 Nov 2 19:41 mysql-bin.000267 -rw-rw---- 1 mysql mysql 1073742415 Oct 30 06:07 mysql-bin.000266 -rw-rw---- 1 mysql mysql 1073742062 Oct 26 12:03 mysql-bin.000265 -rw-rw---- 1 mysql mysql 1073742636 Oct 22 19:21 mysql-bin.000264 -rw-rw---- 1 mysql mysql 1073741961 Oct 18 22:49 mysql-bin.000263 -rw-rw---- 1 mysql mysql 1073742141 Oct 15 12:47 mysql-bin.000262 -rw-rw---- 1 mysql mysql 1073742284 Oct 11 10:18 mysql-bin.000261 -rw-rw---- 1 mysql mysql 1073742184 Oct 7 09:49 mysql-bin.000260
Masa sandaran saya bermula pada 4:00 pada hari ke-2, jadi saya harus mencari untuk 2 dalam mysql-bin.000267 POS sebelum pukul 4, mulakan kedudukan
[root@Ucenter /data/mysqldata]# /usr/local/mysql/bin/mysqlbinlog mysql-bin.000267 |grep '3:59:' |grep -v '13:59:' #171102 3:59:58 server id 21323 end_log_pos 824385760 Query thread_id=3023086382 exec_time=0 error_code=0 #171102 3:59:58 server id 21323 end_log_pos 824386335 Query thread_id=3023086386 exec_time=0 error_code=0 #171102 3:59:58 server id 21323 end_log_pos 824386363 Intvar #171102 3:59:58 server id 21323 end_log_pos 824386698 Query thread_id=3023086386 exec_time=0 error_code=0 #171102 3:59:58 server id 21323 end_log_pos 824387706 Query thread_id=3023086388 exec_time=0 error_code=0 #171102 3:59:58 server id 21323 end_log_pos 824387734 Intvar #171102 3:59:58 server id 21323 end_log_pos 824388209 Query thread_id=3023086388 exec_time=0 error_code=0 #171102 3:59:58 server id 21323 end_log_pos 824388534 Query thread_id=3023086398 exec_time=0 error_code=0
, jadi kedudukan ke hujung end_log_pos 824388534
4[root@LeduPass02/data/mysqldata]# cat master.info 15 mysql-bin.000268 11367810 192.168.100.70 omsync om@123 3306 60 0 0 0
[root@ucenter_slave /data]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.1.51-Community-Server-log Source Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql (none)>change master to master_host='192.168.100.70',master_port=3306,master_user='omsync',master_password='om@123',master_log_file='mysql-bin.000267',master_log_pos=824388534;
Dayakan hamba
mysql (none)>start slave;
Atas ialah kandungan terperinci Apakah kaedah untuk menambah pangkalan data hamba dalam MYSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!