Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk mengkonfigurasi kluster pangkalan data yang sangat tersedia di Linux

Bagaimana untuk mengkonfigurasi kluster pangkalan data yang sangat tersedia di Linux

WBOY
WBOYasal
2023-07-05 08:10:461015semak imbas

Cara mengkonfigurasi kluster pangkalan data yang sangat tersedia di Linux

Dalam aplikasi Internet moden, pangkalan data memainkan peranan yang sangat penting. Untuk memastikan kebolehpercayaan data dan ketersediaan tinggi, banyak syarikat mengkonfigurasi kelompok pangkalan data yang sangat tersedia. Artikel ini akan memperkenalkan cara untuk mengkonfigurasi kluster pangkalan data yang tersedia pada Linux untuk memastikan bahawa apabila pangkalan data gagal, ia boleh bertukar dengan cepat kepada pangkalan data siap sedia untuk memastikan operasi berterusan aplikasi.

Kami akan menggunakan MySQL sebagai pangkalan data sampel untuk menunjukkan cara mengkonfigurasi kluster pangkalan data MySQL yang tersedia di Linux.

  1. Pasang MySQL

Mula-mula, anda perlu memasang MySQL pada Linux. Anda boleh menggunakan arahan berikut:

sudo apt-get install mysql-server
  1. Konfigurasikan replikasi tuan-hamba

Dalam kluster pangkalan data ketersediaan tinggi, replikasi tuan-hamba biasanya digunakan untuk mencapai penyegerakan data. Dalam mod ini, satu pelayan pangkalan data berfungsi sebagai pelayan induk, bertanggungjawab untuk menulis dan mengemas kini data, dan pelayan pangkalan data lain berfungsi sebagai pelayan hamba, bertanggungjawab untuk membaca data dan menyegerakkan data pelayan induk dalam masa nyata.

Pertama, anda perlu mengkonfigurasinya pada pelayan utama. Edit fail konfigurasi MySQL my.cnf, cari dan ubah suai konfigurasi berikut: my.cnf,找到并修改以下配置:

server-id=1
log_bin=mysql-bin
binlog_format=row

然后,重启MySQL服务。

接下来,在从服务器上进行配置。同样,需要编辑MySQL的配置文件my.cnf,找到并修改以下配置:

server-id=2
relay-log=mysql-relay-bin
log_slave_updates=1
read_only=1

然后,重启MySQL服务。

  1. 设置主从同步

现在,主从服务器已经成功配置好了,接下来需要设置主从同步。在主服务器上,使用以下命令创建一个用于同步的用户:

CREATE USER 'replication'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
FLUSH PRIVILEGES;

然后,执行以下命令获取主服务器的二进制日志文件和位置:

SHOW MASTER STATUS;

得到的结果类似于:

+---------------+----------+--------------+------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin.0001| 107       | test         |                  |
+---------------+----------+--------------+------------------+

接下来,在从服务器上执行以下命令开始进行主从同步:

CHANGE MASTER TO MASTER_HOST='master_server_ip', MASTER_USER='replication', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.0001', MASTER_LOG_POS=107;
START SLAVE;

在从服务器上执行以下命令查看主从同步状态:

SHOW SLAVE STATUSG

如果显示Slave_IO_RunningSlave_SQL_Running都为Yes,表示主从同步已成功设置。

  1. 配置主从切换

当主服务器出现故障时,需要手动切换到备用数据库。为了方便切换,可以使用Keepalived和HAProxy来实现自动切换。

首先,需要安装Keepalived和HAProxy。可以使用以下命令:

sudo apt-get install keepalived haproxy

然后,编辑Keepalived的配置文件/etc/keepalived/keepalived.conf,修改以下配置:

vrrp_script chk_mysql {
    script "killall -0 mysqld"
    interval 2
    weight -2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass your_password
    }
    track_script {
        chk_mysql
    }
    virtual_ipaddress {
        192.168.1.100/24
    }
}

保存并关闭文件。

接下来,编辑HAProxy的配置文件/etc/haproxy/haproxy.cfg

listen mysql-cluster
    bind 192.168.1.100:3306
    mode tcp
    option mysql-check user haproxy_check
    balance roundrobin
    server mysql1 192.168.1.101:3306 check
    server mysql2 192.168.1.102:3306 check backup

Kemudian, mulakan semula perkhidmatan MySQL.

Seterusnya, konfigurasikan pada pelayan hamba. Begitu juga, anda perlu mengedit fail konfigurasi MySQL my.cnf, cari dan ubah suai konfigurasi berikut:

sudo service keepalived restart
sudo service haproxy restart

Kemudian, mulakan semula perkhidmatan MySQL.

    Sediakan penyegerakan tuan-hamba

    🎜Sekarang pelayan tuan-hamba telah berjaya dikonfigurasikan, anda perlu menyediakan penyegerakan tuan-hamba. Pada pelayan induk, gunakan arahan berikut untuk mencipta pengguna untuk penyegerakan: 🎜rrreee🎜 Kemudian, laksanakan arahan berikut untuk mendapatkan fail log binari dan lokasi pelayan induk: 🎜rrreee🎜Hasil yang anda perolehi adalah serupa dengan: 🎜 rrreee🎜 Seterusnya, dalam Laksanakan arahan berikut pada pelayan untuk memulakan penyegerakan tuan-hamba: 🎜rrreee🎜Laksanakan arahan berikut pada pelayan hamba untuk melihat status penyegerakan tuan-hamba: 🎜rrreee🎜Jika Slave_IO_Running dan Slave_SQL_Running dipaparkan Kedua-duanya adalah Ya, menunjukkan bahawa penyegerakan induk-hamba telah berjaya disediakan. 🎜
      🎜Konfigurasikan pensuisan tuan-hamba🎜🎜🎜Apabila pelayan utama gagal, anda perlu menukar pangkalan data siap sedia secara manual. Untuk memudahkan penukaran, Keepalived dan HAProxy boleh digunakan untuk melaksanakan pensuisan automatik. 🎜🎜Pertama, Keepalived dan HAProxy perlu dipasang. Anda boleh menggunakan arahan berikut: 🎜rrreee🎜 Kemudian, edit fail konfigurasi Keepalived /etc/keepalived/keepalived.conf dan ubah suai konfigurasi berikut: 🎜rrreee🎜Simpan dan tutup fail. 🎜🎜Seterusnya, edit fail konfigurasi HAProxy /etc/haproxy/haproxy.cfg dan tambah konfigurasi berikut: 🎜rrreee🎜Simpan dan tutup fail. 🎜🎜Akhir sekali, mulakan semula perkhidmatan Keepalived dan HAProxy: 🎜rrreee🎜 Sekarang, apabila pelayan utama gagal, Keepalived akan menukar alamat IP maya kepada pangkalan data siap sedia dan memajukan trafik ke HAProxy. 🎜🎜Melalui langkah di atas, kami berjaya mengkonfigurasi kluster pangkalan data yang sangat tersedia di Linux. Apabila pangkalan data gagal, sistem secara automatik beralih ke pangkalan data siap sedia, memastikan kebolehpercayaan data dan ketersediaan tinggi. Saya harap artikel ini dapat membantu anda mengkonfigurasi kluster pangkalan data yang sangat tersedia. 🎜

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi kluster pangkalan data yang sangat tersedia di Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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