首頁 > 運維 > linux運維 > 主體

如何在Linux上配置高可用的資料庫集群

WBOY
發布: 2023-07-05 08:10:46
原創
1013 人瀏覽過

如何在Linux上配置高可用的資料庫叢集

在現代的網路應用中,資料庫扮演著非常重要的角色。為了確保資料的可靠性和高可用性,許多公司都會配置高可用的資料庫叢集。本文將介紹在Linux上如何配置高可用的資料庫集群,以確保在資料庫發生故障時,可以快速切換到備用資料庫,從而保證應用程式的連續運作。

我們將使用MySQL作為範例資料庫,以示範如何在Linux上配置高可用的MySQL資料庫叢集。

  1. 安裝MySQL

首先,需要在Linux上安裝MySQL。可以使用以下命令:

sudo apt-get install mysql-server
登入後複製
  1. 配置主從複製

在高可用的資料庫叢集中,通常會使用主從複製的方式來實現資料的同步。在這種模式下,一個資料庫伺服器作為主伺服器,負責寫入和更新數據,其他資料庫伺服器作為從伺服器,負責讀取數據,並即時同步主伺服器的數據。

首先,需要在主伺服器上進行設定。編輯MySQL的設定檔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
登入後複製

儲存並關閉檔案。

最後,重啟Keepalived和HAProxy服務:

sudo service keepalived restart
sudo service haproxy restart
登入後複製

現在,當主伺服器發生故障時,Keepalived會將虛擬IP位址切換到備用資料庫,並將流量轉送到HAProxy上。

透過上述步驟,我們成功在Linux上配置了一個高可用的資料庫叢集。當資料庫發生故障時,系統會自動切換到備用資料庫,確保了資料的可靠性和高可用性。希望本文能對你在配置高可用的資料庫叢集上有所幫助。

以上是如何在Linux上配置高可用的資料庫集群的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!