>  기사  >  운영 및 유지보수  >  Linux에서 고가용성 데이터베이스 마스터-슬레이브 복제 모니터링을 구성하는 방법

Linux에서 고가용성 데이터베이스 마스터-슬레이브 복제 모니터링을 구성하는 방법

王林
王林원래의
2023-07-05 09:15:07725검색

Linux에서 고가용성 데이터베이스 마스터-슬레이브 복제 모니터링을 구성하는 방법

소개:
현대 기술 환경에서 데이터베이스는 핵심 구성 요소이며 많은 애플리케이션이 이에 의존합니다. 가용성 및 데이터 보호를 고려할 때 데이터베이스 고가용성 및 마스터-슬레이브 복제는 매우 중요한 기능입니다. 이 문서에서는 Linux에서 고가용성 데이터베이스 마스터-슬레이브 복제 모니터링을 구성하는 방법을 소개하고 샘플 코드를 통해 단계를 보여줍니다.

마스터-슬레이브 복제 작동 방식:
마스터-슬레이브 복제는 하나의 데이터베이스 서버가 마스터 서버(마스터) 역할을 하고 다른 서버는 슬레이브 서버(슬레이브) 역할을 하는 일반적인 데이터베이스 복제 방법입니다. 마스터 서버에서 받은 쓰기 작업은 슬레이브 서버에 복사됩니다. 이 아키텍처는 데이터 중복성, 읽기-쓰기 분리 및 오류 복구의 이점을 제공합니다.

메인 서버 구성:
먼저 데이터베이스 서버를 설치해야 합니다. 이 문서에서는 MySQL을 예로 들어 설명합니다.

  1. MySQL 서버 설치:

    sudo apt update
    sudo apt install mysql-server
  2. 마스터 서버 구성:
    MySQL 구성 파일 편집:

    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

    파일에서 다음 줄을 찾아 수정합니다.

    bind-address            = 0.0.0.0
    server-id               = 1
    log_bin                 = /var/log/mysql/mysql-bin.log
  3. MySQL 서비스를 다시 시작합니다.

    sudo systemctl restart mysql

슬레이브 서버 구성:

  1. MySQL 서버 설치:

    sudo apt update
    sudo apt install mysql-server
  2. 슬레이브 서버 구성:
    MySQL 구성 파일 편집:

    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

    파일에서 다음 줄을 찾아 수정합니다.

    bind-address            = 0.0.0.0
    server-id               = 2
    log_bin                 = /var/log/mysql/mysql-bin.log
    relay_log               = /var/log/mysql/mysql-relay-bin.log
  3. MySQL 서비스 다시 시작:

    sudo systemctl restart mysql

마스터-슬레이브 관계 설정:

  1. 마스터 서버에서 복제할 사용자 만들기:

    mysql -u root -p
    GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%' IDENTIFIED BY 'password';
    FLUSH PRIVILEGES;
    EXIT;
  2. 슬레이브 서버에서 마스터 서버 정보 구성 :

    mysql -u root -p
    CHANGE MASTER TO MASTER_HOST='主服务器的IP地址', MASTER_USER='replication_user', MASTER_PASSWORD='password';
    START SLAVE;
    EXIT;
  3. 마스터-슬레이브 복제가 제대로 작동하는지 확인하세요.
    메인 서버에 데이터베이스와 테이블을 생성하고 일부 데이터를 삽입하세요. 그런 다음 슬레이브 서버에서 해당 데이터를 볼 수 있는지 확인하십시오.

구성 모니터링:
데이터베이스 마스터-슬레이브 복제의 고가용성을 보장하려면 상태를 모니터링하고 적시에 오류를 감지 및 처리해야 합니다. 아래는 Python으로 작성된 간단한 모니터링 스크립트입니다.

  1. 필요한 Python 패키지 설치:

    sudo apt update
    sudo apt install python3-pip
    pip3 install mysql-connector-python
    pip3 install smtplib
  2. monitor.py 파일을 생성하고 다음 코드를 파일에 복사합니다.

    import smtplib
    import mysql.connector
    from email.mime.text import MIMEText
    
    def send_email(message):
     sender = "your_email@gmail.com"
     receiver = "recipient_email@gmail.com"
     subject = "Database Replication Alert"
     msg = MIMEText(message)
     msg['Subject'] = subject
     msg['From'] = sender
     msg['To'] = receiver
    
     try:
         with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
             smtp.login(sender, "your_password")
             smtp.sendmail(sender, receiver, msg.as_string())
             print("Email sent successfully!")
     except Exception as e:
         print("Email failed to send: " + str(e))
    
    def monitor_replication():
     try:
         connection = mysql.connector.connect(host="localhost", user="replication_user", password="password", database="test")
         cursor = connection.cursor()
         cursor.execute("SELECT COUNT(*) FROM my_table")
         result = cursor.fetchone()
         cursor.close()
         connection.close()
         print("Replication is working fine, number of records: " + str(result[0]))
     except mysql.connector.Error as error:
         message = "Replication failed: " + str(error)
         print(message)
         send_email(message)
    
    if __name__ == "__main__":
     monitor_replication()
  3. 발신자와 수신자를 포함하여 monitor.py의 구성 정보를 수정합니다. 발신자의 이메일 주소, 보내는 사람의 이메일 비밀번호.
  4. 예약된 작업에 추가할 수 있는 monitor.py 스크립트를 실행하여 데이터베이스 마스터-슬레이브 복제 상태를 정기적으로 모니터링하세요.

결론:
위 단계를 통해 Linux에서 고가용성 데이터베이스 마스터-슬레이브 복제 모니터링을 구성할 수 있습니다. 오류 복구 및 가용성을 위해서는 데이터베이스 상태를 지속적으로 모니터링하는 것이 중요합니다. 샘플 코드를 사용하면 데이터베이스 마스터-슬레이브 복제 문제를 적시에 감지하고 처리하여 원활한 비즈니스 운영을 보장할 수 있습니다.

위 내용은 Linux에서 고가용성 데이터베이스 마스터-슬레이브 복제 모니터링을 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.