Rumah pangkalan data tutorial mysql mysql半同步复制的实现_MySQL

mysql半同步复制的实现_MySQL

Jun 01, 2016 pm 01:08 PM

bitsCN.com

mysql半同步复制和异步复制的差别如上述架构图所示:在mysql异步复制的情况下,Mysql Master Server将自己的Binary Log通过复制线程传输出去以后,Mysql Master Sever就自动返回数据给客户端,而不管slave上是否接受到了这个二进制日志。在半同步复制的架构下,当master在将自己binlog发给slave上的时候,要确保slave已经接受到了这个二进制日志以后,才会返回数据给客户端。对比两种架构:异步复制对于用户来说,可以确保得到快速的响应结构,但是不能确保二进制日志确实到达了slave上;半同步复制对于客户的请求响应稍微慢点,但是他可以保证二进制日志的完整性。

下面来配置一个半同步复制实现的主从架构:

192.168.1.141为mysql的主服务器

192.168.1.142为mysql的从服务器

1.为mysql主服务器提供配置

编辑/etc/my.cnf,提供以下的配置

log_bin=index

server_id=1

在主服务器上授权

# mysql> grant replication slave,replication client on user@'192.168.1.142' identified by "123456";

# mysql> flush privileges;

2.为mysql从服务提供配置

编辑/etc/my.cnf,提供以下的配置

server_id=10

relay_log=relay

read_only=on

skip-slave-start=1

进入mysql命令行接口

# mysql > change master to MASTER_HOST="192.168.1.141",MASTER_USER="user",MASTER_PASSWORD="123456",MASTER_LOG_FILE="index.000004",MASTER_LOG_POS=429;

# mysql > start slave;

如果能够看到Slave_IO_Running: Yes和Slave_SQL_Running:Yes两行信息的话,证明主从配置已经成功。

要使用mysql的半同步复制功能需要为mysql装插件,mysql默认支持的插件在/usr/local/mysql/lib/plugin/,里面有两个semisync_master.so和semisync_slave.so的共享库是我们实现mysql半同步复制的关键

3.设置半同步复制

在mysql主服务器的命令行接口下执行如下代码:

# mysql > install plugin rpl_semi_sync_master SONAME 'semisync_master.so';

# mysql > show variables like "%semi%";(如果看到新增的semi变量的话证明安装模块成功)

| rpl_semi_sync_master_enabled       | OFF   | 是否启动半同步复制,默认关闭

| rpl_semi_sync_master_timeout        | 10000 | 等待从服务器告诉接受到的超时时间,如果时间到了,还没接受到,自动降级为异步

| rpl_semi_sync_master_trace_level   | 32    | 运行级别

| rpl_semi_sync_master_wait_no_slave | ON    | 没有slave的时候是否也需要等待,默认为也需要等待

# mysql > set global rpl_semi_sync_master_enabled = 1;

# mysql > set global rpl_semi_sync_master_timeout = 1000;

在mysql从服务器的命令行接口下执行如下代码:

# mysql > install plugin rpl_semi_sync_slave SONAME 'semisync_slave.so';

# mysql > show variables like "%semi%";(如果看到新增的semi变量的话证明安装模块成功)

# mysql > set global rpl_semi_sync_slave_enabled = 1;

# stop slave;

# start slave;

最后把常用的配置参数写如配置文件中:

192.168.1.141:

[mysqld]

rpl_semi_sync_master_enabled=1

rpl_semi_sync_master_timeout=1000

192.168.1.142:

[mysqld]

rpl_semi_sync_slave_enabled=1

4.查看半同步复制的状况信息

在192.168.1.141执行如下命令:

mysql> show status like "%semi%";

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

| Variable_name                                                                | Value |

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

| Rpl_semi_sync_master_clients                                    | 1     |   半同步复制客户端的个数

| Rpl_semi_sync_master_net_avg_wait_time              | 555   |   平均等待时间(默认毫秒)

| Rpl_semi_sync_master_net_wait_time                      | 1665  |   总共等待时间

| Rpl_semi_sync_master_net_waits                              | 3     |   等待次数

| Rpl_semi_sync_master_no_times                              | 0     |   关闭半同步复制的次数

| Rpl_semi_sync_master_no_tx                                      | 0     |   表示没有成功接收slave提交的次数

| Rpl_semi_sync_master_status                                   | ON    |   表示当前是异步模式还是半同步模式,on为半同步

| Rpl_semi_sync_master_timefunc_failures               | 0     |   调用时间函数失败的次数

| Rpl_semi_sync_master_tx_avg_wait_time              | 575   |   事物的平均传输时间

| Rpl_semi_sync_master_tx_wait_time                      | 1725  |   事物的总共传输时间

| Rpl_semi_sync_master_tx_waits                                | 3     |   事物等待次数

| Rpl_semi_sync_master_wait_pos_backtraverse    | 0     |  

| Rpl_semi_sync_master_wait_sessions                    | 0     |   当前有多少个session因为slave的回复而造成等待

| Rpl_semi_sync_master_yes_tx                                   | 3     |   成功接受到slave事物回复的次数

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

5.取消半同步复制的插件

192.168.1.141上:

# mysql > uninstall plugin rpl_semi_sync_master;

# mysql > show status like "%semi%"

192.168.1.142上:

# mysql > uninstall plugin rpl_semi_sync_slave;

# mysql > show status like "%semi%"

bitsCN.com
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Terangkan keupayaan carian teks penuh InnoDB. Terangkan keupayaan carian teks penuh InnoDB. Apr 02, 2025 pm 06:09 PM

Keupayaan carian teks penuh InnoDB sangat kuat, yang dapat meningkatkan kecekapan pertanyaan pangkalan data dan keupayaan untuk memproses sejumlah besar data teks. 1) InnoDB melaksanakan carian teks penuh melalui pengindeksan terbalik, menyokong pertanyaan carian asas dan maju. 2) Gunakan perlawanan dan terhadap kata kunci untuk mencari, menyokong mod boolean dan carian frasa. 3) Kaedah pengoptimuman termasuk menggunakan teknologi segmentasi perkataan, membina semula indeks dan menyesuaikan saiz cache untuk meningkatkan prestasi dan ketepatan.

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Mar 19, 2025 pm 03:51 PM

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Bolehkah saya memasang mysql pada windows 7 Bolehkah saya memasang mysql pada windows 7 Apr 08, 2025 pm 03:21 PM

Ya, MySQL boleh dipasang pada Windows 7, dan walaupun Microsoft telah berhenti menyokong Windows 7, MySQL masih serasi dengannya. Walau bagaimanapun, perkara berikut harus diperhatikan semasa proses pemasangan: Muat turun pemasang MySQL untuk Windows. Pilih versi MySQL yang sesuai (komuniti atau perusahaan). Pilih direktori pemasangan yang sesuai dan set aksara semasa proses pemasangan. Tetapkan kata laluan pengguna root dan simpan dengan betul. Sambung ke pangkalan data untuk ujian. Perhatikan isu keserasian dan keselamatan pada Windows 7, dan disyorkan untuk menaik taraf ke sistem operasi yang disokong.

Bilakah imbasan jadual penuh lebih cepat daripada menggunakan indeks di MySQL? Bilakah imbasan jadual penuh lebih cepat daripada menggunakan indeks di MySQL? Apr 09, 2025 am 12:05 AM

Pengimbasan jadual penuh mungkin lebih cepat dalam MySQL daripada menggunakan indeks. Kes -kes tertentu termasuk: 1) jumlah data adalah kecil; 2) apabila pertanyaan mengembalikan sejumlah besar data; 3) Apabila lajur indeks tidak selektif; 4) Apabila pertanyaan kompleks. Dengan menganalisis rancangan pertanyaan, mengoptimumkan indeks, mengelakkan lebih banyak indeks dan tetap mengekalkan jadual, anda boleh membuat pilihan terbaik dalam aplikasi praktikal.

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Mar 18, 2025 pm 12:01 PM

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Mar 21, 2025 pm 06:28 PM

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]

Perbezaan antara indeks kluster dan indeks bukan clustered (indeks sekunder) di InnoDB. Perbezaan antara indeks kluster dan indeks bukan clustered (indeks sekunder) di InnoDB. Apr 02, 2025 pm 06:25 PM

Perbezaan antara indeks clustered dan indeks bukan cluster adalah: 1. Klustered Index menyimpan baris data dalam struktur indeks, yang sesuai untuk pertanyaan oleh kunci dan julat utama. 2. Indeks Indeks yang tidak berkumpul indeks nilai utama dan penunjuk kepada baris data, dan sesuai untuk pertanyaan lajur utama bukan utama.

Bagaimana anda mengendalikan dataset besar di MySQL? Bagaimana anda mengendalikan dataset besar di MySQL? Mar 21, 2025 pm 12:15 PM

Artikel membincangkan strategi untuk mengendalikan dataset besar di MySQL, termasuk pembahagian, sharding, pengindeksan, dan pengoptimuman pertanyaan.

See all articles