mariadb-10实现半同步复制及SSL安全复制
温馨提示关于主从复制的原理及其实现请参阅mysql主从复制大纲关于复制的相关问题半同步的实现过程半同步的总结主从复制的注意细节一、关于复制的相关问题1、异步
温馨提示
关于主从复制的原理及其实现请参阅mysql主从复制
大纲
一、关于复制的相关问题
1、异步复制解决了那些问题
复制解决的基本问题是让一台服务器的数据和另外的服务器保持同步,可以位于不同的网络拓扑中,对整台服务器的特定的数据库,甚至特定的表进行复制。
复制方案有两种:
第一种、基于语句复制和基于行复制,都是通过记录主服务器的二进制日志,并在从服务器上进行重放(replay)完成复制,它们都是异步进行的。
mariadb或mysql复制大部分都是向后兼容的。这意味着版本较新的服务器可以是版本老的服务器的从服务器。复制通常不会大幅增加服务器的开销,它需要主服务器启用二进制日志。复制对扩展读取有好处,可以将读指向到到从服务器上.
2、有了异步为什么还要用半同步复制
MySQL5.5之前版本的MySQL Replication都是异步(asynchronous)的,主库在执行完一些事务后,是不会管备库的进度的。如果备库不幸落后,而更不幸的是主库此时又出现Crash(例如宕机),这时备库中的数据就是不完整的。简而言之,在主库发生故障的时候,我们无法使用备库来继续提供数据一致的服务了。Semisynchronous Replication则一定程度上保证提交的事务已经传给了至少一个备库。
3. 为什么不是完全同步
Semi_synchronous中,仅仅保证事务的已经传递到备库上,但是并不确保已经在备库上执行完成了。
此外,还有一种情况会导致主备数据不一致。在某个session中,主库上提交一个事务后,会等待事务传递给至少一个备库,如果在这个等待过程中主库Crash,那么也可能备库和主库不一致,这是很致命的。(在主库恢复后,可以通过参数Rpl_semi_sync_master_no_tx观察)
4. 如果主备之间连接出现故障,主库是否会一直等待?
如果主备网络故障或者备库挂了,主库在事务提交后等待10秒(rpl_semi_sync_master_timeout的默认值)后,就会继续。这时,,主库就会变回原来的异步状态
二、半同步的实现过程
注:
1、之前的博文己经说过如何安装mariadb(与msyql编译或二进制通用格式安装方法一样),这里就直接上配置了。
2、如果要想实现半同步复制,先得配置主从复制。
================正式开始===========================
系统版本:centos6.5
数据库:mariadb-10(通用二进制格式安装)
系统资源分配
master 端:
ip地址: 192.168.1.114
slave 端:
ip地址:192.168.1.109
半同步插件是由谷歌提供,具体位置/usr/local/mysql/lib/plugin/下,一个是master用的semisync_master.so,一个是slave用的semisync_slave.so
在master端上执行如下命令:
MariaDB [(none)]> install plugin rpl_semi_sync_master soname 'semisync_master.so';还要在/etc/my.cnf中打开semi_sync,将以下两条语句写入[mysqld]段中
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000
或在数据库中直接执行如下命令
MariaDB [(none)]> set global rpl_semi_sync_master_enabled=1重新启动服务
[root@bogon ~]# service mysqld restart MySQL server PID file could not be found! [FAILED] Starting MySQL [ OK ]在slave端执行如下命令:
MariaDB [(none)]> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';在/etc/my.cnf配置文件[mysqld]段中添加如下一条语句
rpl_semi_sync_slave_enabled=1
或在数据库中直接执行下面的语句
MariaDB [(none)]>set global rpl_semi_sync_slave_enabled=1重新启动服务器
[root@bogon data]# service mysqld restart Shutting down MySQL.. [ OK ] Starting MySQL... [ OK ]在master查看一下状态
MariaDB [(none)]> SHOW GLOBAL STATUS LIKE 'rpl_semi%'; +--------------------------------------------+-------+ | Variable_name | Value | +--------------------------------------------+-------+ | Rpl_semi_sync_master_clients | 1 | | Rpl_semi_sync_master_net_avg_wait_time | 0 | | Rpl_semi_sync_master_net_wait_time | 0 | | Rpl_semi_sync_master_net_waits | 0 | | Rpl_semi_sync_master_no_times | 0 | | Rpl_semi_sync_master_no_tx | 0 | | Rpl_semi_sync_master_status | ON | | Rpl_semi_sync_master_timefunc_failures | 0 | | Rpl_semi_sync_master_tx_avg_wait_time | 0 | | Rpl_semi_sync_master_tx_wait_time | 0 | | Rpl_semi_sync_master_tx_waits | 0 | | Rpl_semi_sync_master_wait_pos_backtraverse | 0 | | Rpl_semi_sync_master_wait_sessions | 0 | | Rpl_semi_sync_master_yes_tx | 0 | +--------------------------------------------+-------+ 14 rows in set (0.00 sec)注解:
Rpl_semi_sync_master_clients
记录支持半同步的slave的个数。
Rpl_semi_sync_master_net_avg_wait_time
master 等待slave 回复的平均等待时间。 单位毫秒.
Rpl_semi_sync_master_net_wait_time
master 总的等待时间。
Rpl_semi_sync_master_net_waits
master 等待slave 回复的的总的等待次数。
Rpl_semi_sync_master_no_times
master 关闭半同步复制的次数。
Rpl_semi_sync_master_no_tx
master 没有收到slave的回复而提交的次数,(应该可以理解为master 等待超时的次
数)
Rpl_semi_sync_master_status
标记master现在是否是半同步复制状态。
Rpl_semi_sync_master_tx_avg_wait_time
master 花在每个事务上的平均等待时间。
Rpl_semi_sync_master_tx_wait_time
master 总的等待次数。
Rpl_semi_sync_master_wait_sessions
当前有多少个session 因为slave 的回复而造成等待。
Rpl_semi_sync_master_yes_tx
master 成功接收到slave的回复的次数。
Rpl_semi_sync_slave_status
标记slave 是否在半同步状态。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Bahasa Go ialah bahasa pengaturcaraan yang cekap, ringkas dan mudah dipelajari Ia digemari oleh pembangun kerana kelebihannya dalam pengaturcaraan serentak dan pengaturcaraan rangkaian. Dalam pembangunan sebenar, operasi pangkalan data adalah bahagian yang sangat diperlukan Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk melaksanakan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan pangkalan data. Dalam bahasa Go, kami biasanya menggunakan perpustakaan pihak ketiga untuk mengendalikan pangkalan data, seperti pakej sql yang biasa digunakan, gorm, dsb. Di sini kami mengambil pakej sql sebagai contoh untuk memperkenalkan cara melaksanakan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan pangkalan data. Andaikan kami menggunakan pangkalan data MySQL.

Pemetaan polimorfik hibernate boleh memetakan kelas yang diwarisi ke pangkalan data dan menyediakan jenis pemetaan berikut: subkelas bercantum: Cipta jadual berasingan untuk subkelas, termasuk semua lajur kelas induk. table-per-class: Cipta jadual berasingan untuk subkelas, yang mengandungi hanya lajur khusus subkelas. union-subclass: serupa dengan joined-subclass, tetapi jadual kelas induk menggabungkan semua lajur subclass.

Keluaran terbaharu Apple bagi sistem iOS18, iPadOS18 dan macOS Sequoia telah menambah ciri penting pada aplikasi Photos, yang direka untuk membantu pengguna memulihkan foto dan video yang hilang atau rosak dengan mudah disebabkan pelbagai sebab. Ciri baharu ini memperkenalkan album yang dipanggil "Dipulihkan" dalam bahagian Alat pada apl Foto yang akan muncul secara automatik apabila pengguna mempunyai gambar atau video pada peranti mereka yang bukan sebahagian daripada pustaka foto mereka. Kemunculan album "Dipulihkan" menyediakan penyelesaian untuk foto dan video yang hilang akibat kerosakan pangkalan data, aplikasi kamera tidak disimpan ke pustaka foto dengan betul, atau aplikasi pihak ketiga yang menguruskan pustaka foto. Pengguna hanya memerlukan beberapa langkah mudah

Bagaimana untuk memasang sambungan PHPFFmpeg pada pelayan? Memasang sambungan PHPFFmpeg pada pelayan boleh membantu kami memproses fail audio dan video dalam projek PHP dan melaksanakan fungsi seperti pengekodan, penyahkodan, penyuntingan dan pemprosesan fail audio dan video. Artikel ini akan memperkenalkan cara memasang sambungan PHPFFmpeg pada pelayan, serta contoh kod tertentu. Pertama, kita perlu memastikan bahawa PHP dan FFmpeg dipasang pada pelayan. Jika FFmpeg tidak dipasang, anda boleh mengikuti langkah di bawah untuk memasang FFmpe

Cara menggunakan MySQLi untuk mewujudkan sambungan pangkalan data dalam PHP: Sertakan sambungan MySQLi (require_once) Cipta fungsi sambungan (functionconnect_to_db) Fungsi sambungan panggilan ($conn=connect_to_db()) Laksanakan pertanyaan ($result=$conn->query()) Tutup sambungan ( $conn->close())

HTML tidak boleh membaca pangkalan data secara langsung, tetapi ia boleh dicapai melalui JavaScript dan AJAX. Langkah-langkah termasuk mewujudkan sambungan pangkalan data, menghantar pertanyaan, memproses respons dan mengemas kini halaman. Artikel ini menyediakan contoh praktikal menggunakan JavaScript, AJAX dan PHP untuk membaca data daripada pangkalan data MySQL, menunjukkan cara untuk memaparkan hasil pertanyaan secara dinamik dalam halaman HTML. Contoh ini menggunakan XMLHttpRequest untuk mewujudkan sambungan pangkalan data, menghantar pertanyaan dan memproses respons, dengan itu mengisi data ke dalam elemen halaman dan merealisasikan fungsi HTML membaca pangkalan data.

Untuk mengendalikan ralat sambungan pangkalan data dalam PHP, anda boleh menggunakan langkah berikut: Gunakan mysqli_connect_errno() untuk mendapatkan kod ralat. Gunakan mysqli_connect_error() untuk mendapatkan mesej ralat. Dengan menangkap dan mengelog mesej ralat ini, isu sambungan pangkalan data boleh dikenal pasti dan diselesaikan dengan mudah, memastikan kelancaran aplikasi anda.

Menurut berita dari laman web ini pada 23 Julai, ASUS telah melancarkan pelbagai produk peringkat pelayan dan stesen kerja yang dikuasakan oleh pemproses siri AMD EPYC 4004. Nota dari tapak ini: AMD melancarkan platform AM5 dan pemproses siri EPYC 4004 seni bina Zen4 pada bulan Mei, menawarkan sehingga spesifikasi 3DV-Cache 16-teras. Pelayan ASUSProER100AB6 ASUSProER100AB6 ialah produk pelayan yang dipasang di rak 1U yang dilengkapi dengan pemproses siri EPYC Xiaolong 4004, sesuai untuk keperluan IDC dan perusahaan kecil dan sederhana. Stesen kerja ASUSExpertCenterProET500AB6 ASUSExpertCenterProET500AB6 ialah
