GA黄金甲

怎样在Linux上设置高可用的数据库主从复制监控

怎样在linux上设置高可用的数据库主从复制监控

小序:

在现代的手艺情形中,数据库是一个要害组件,许多应用程序依赖于它们 。出于可用性和数据;さ乃剂,数据库的高可用性和主从复制都是很是主要的功效 。本文将先容怎样在linux上设置高可用的数据库主从复制监控,通过示例代码来演示操作办法 。

主从复制的事情原理:

主从复制是一种常见的数据库复制要领,其中一个数据库效劳器作为主效劳器(Master),而其他效劳器则作为从效劳器(Slave) 。主效劳器吸收到的写操作将被复制到从效劳器 。这种架构提供了数据冗余、读写疏散和故障恢复的利益 。

设置主效劳器:

首先,我们需要装置数据库效劳器 。本文以MySQL为例 。

装置MySQL效劳器:

sudo apt update
sudo apt install mysql-server

登录后复制 登录后复制

设置主效劳器:

编辑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

登录后复制

重启MySQL效劳:

sudo systemctl restart mysql

登录后复制 登录后复制

设置从效劳器:

装置MySQL效劳器:

sudo apt update
sudo apt install mysql-server

登录后复制 登录后复制

设置从效劳器:

编辑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

登录后复制

重启MySQL效劳:

sudo systemctl restart mysql

登录后复制 登录后复制

设置主从关系:

在主效劳器上建设一个用于复制的用户:

mysql -u root -p
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT;

登录后复制

在从效劳器上设置主效劳器信息:

mysql -u root -p
CHANGE MASTER TO MASTER_HOST='主效劳器的IP地点', MASTER_USER='replication_user', MASTER_PASSWORD='password';
START SLAVE;
EXIT;

登录后复制

验证主从复制是否正常事情:

在主效劳器上建设一个数据库和表,并插入一些数据 。然后,在从效劳器上验证是否能够看到响应的数据 。

设置监控:

为了确保数据库主从复制的高可用性,我们需要监控其状态,并实时发明和处置惩罚故障 。下面是一个使用Python编写的简朴监控剧本 。

装置所需的Python包:

sudo apt update
sudo apt install python3-pip
pip3 install mysql-connector-python
pip3 install smtplib

登录后复制

建设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()

登录后复制

修改monitor.py中的设置信息,包括发件人和收件人的邮箱地点,以及发件人的邮箱密码 。

运行monitor.py剧本,可以将其加入准时使命中,以按期监控数据库主从复制的状态 。

结论:

通过以上办法,我们可以在Linux上设置高可用的数据库主从复制监控 。一连监控数据库的状态关于故障恢复和可用性是至关主要的 。使用示例代码,我们可以实时发明并处置惩罚数据库主从复制的问题,从而确保营业的平稳运行 。

以上就是怎样在Linux上设置高可用的数据库主从复制监控的详细内容,更多请关注本网内其它相关文章!

免责说明:以上展示内容泉源于相助媒体、企业机构、网友提供或网络网络整理,版权争议与本站无关,文章涉及看法与看法不代表GA黄金甲滤油机网官方态度,请读者仅做参考 。本文接待转载,转载请说明来由 。若您以为本文侵占了您的版权信息,或您发明该内容有任何涉及有违公德、冒犯执法等违法信息,请您连忙联系GA黄金甲实时修正或删除 。

相关新闻

联系GA黄金甲

18523999891

可微信在线咨询

事情时间:周一至周五,9:30-18:30,节沐日休息

QR code
【网站地图】【sitemap】