Linux에서 고가용성 데이터베이스 클러스터를 구성하는 방법
현대 인터넷 애플리케이션에서 데이터베이스는 매우 중요한 역할을 합니다. 데이터 신뢰성과 고가용성을 보장하기 위해 많은 회사에서는 고가용성 데이터베이스 클러스터를 구성합니다. 이 기사에서는 Linux에서 고가용성 데이터베이스 클러스터를 구성하여 데이터베이스에 장애가 발생하면 신속하게 대기 데이터베이스로 전환하여 애플리케이션의 지속적인 작동을 보장하는 방법을 소개합니다.
MySQL을 샘플 데이터베이스로 사용하여 Linux에서 고가용성 MySQL 데이터베이스 클러스터를 구성하는 방법을 보여 드리겠습니다.
먼저 Linux에 MySQL을 설치해야 합니다. 다음 명령을 사용할 수 있습니다.
sudo apt-get install mysql-server
고가용성 데이터베이스 클러스터에서 마스터-슬레이브 복제는 일반적으로 데이터 동기화를 달성하는 데 사용됩니다. 이 모드에서는 하나의 데이터베이스 서버가 데이터 쓰기 및 업데이트를 담당하는 마스터 서버 역할을 하고, 다른 데이터베이스 서버는 마스터 서버의 데이터를 실시간으로 읽고 동기화하는 슬레이브 서버 역할을 합니다.
먼저 메인 서버에서 구성해야 합니다. MySQL 구성 파일 my.cnf
를 편집하고 다음 구성을 찾아 수정합니다. 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服务。
现在,主从服务器已经成功配置好了,接下来需要设置主从同步。在主服务器上,使用以下命令创建一个用于同步的用户:
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_Running
和Slave_SQL_Running
都为Yes
,表示主从同步已成功设置。
当主服务器出现故障时,需要手动切换到备用数据库。为了方便切换,可以使用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그런 다음 MySQL 서비스를 다시 시작합니다. 다음으로 슬레이브 서버를 구성합니다. 마찬가지로 MySQL 구성 파일
my.cnf
를 편집하고 다음 구성을 찾아 수정해야 합니다. sudo service keepalived restart sudo service haproxy restart그런 다음 MySQL 서비스를 다시 시작합니다.
Slave_IO_Running
및 Slave_SQL_Running
이 표시됩니다. 둘 다 Yes
이며 마스터-슬레이브 동기화가 성공적으로 설정되었음을 나타냅니다. 🎜/etc/keepalived/keepalived.conf
를 편집하고 다음 구성을 수정합니다. 🎜rrreee🎜파일을 저장하고 닫습니다. 🎜🎜다음으로 HAProxy 구성 파일 /etc/haproxy/haproxy.cfg
를 편집하고 다음 구성을 추가합니다. 🎜rrreee🎜파일을 저장하고 닫습니다. 🎜🎜마지막으로 Keepalived 및 HAProxy 서비스를 다시 시작합니다. 🎜rrreee🎜 이제 기본 서버에 장애가 발생하면 Keepalived는 가상 IP 주소를 대기 데이터베이스로 전환하고 트래픽을 HAProxy로 전달합니다. 🎜🎜위 단계를 통해 Linux에서 고가용성 데이터베이스 클러스터를 성공적으로 구성했습니다. 데이터베이스 장애 시 시스템은 자동으로 대기 데이터베이스로 전환되어 데이터 신뢰성과 고가용성을 보장합니다. 이 기사가 고가용성 데이터베이스 클러스터를 구성하는 데 도움이 되기를 바랍니다. 🎜위 내용은 Linux에서 고가용성 데이터베이스 클러스터를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!