本文共 3561 字,大约阅读时间需要 11 分钟。
MySQL 主从复制是一种简单且高效的数据库复制机制,基于半同步复制进行数据同步。其优点包括架构简单、资源需求少、故障恢复便捷等特点。
架构简单:基于原生半同步复制进行数据同步,无需额外依赖。
无单点故障:主节点故障时,直接切换到从节点,无需选主。
资源占用低:双节点架构,资源需求少,部署简单。
缺点:
依赖半同步复制:若半同步复制出现问题,数据一致性可能无法保证。
需配置keepalived:确保高可用性。
firewall-cmd --add-port=123/udpfirewall-cmd --add-port=3306/tcp
# /etc/my.cnf[mysqld]log-bin = master-binserver-id = 1binlog_do_db = db1binlog_ignore_db = db2
mysql> GRANT REPLICATION SLAVE ON *.* TO root@'192.168.10.%' IDENTIFIED BY '123456';
mysql> SHOW MASTER STATUS\G
mysqldump -u root -p --all-databases > /path/master.sql
mysql -u root -p < /path/master.sql
###Slave 配置
ntpdate 192.168.10.1
# /etc/my.cnf[mysqld]log-bin = slave-binserver-id = 2replicate-do-db = db1replicate-ignore-db = db2
mysql -u root -p < /path/master.sql
mysql> CHANGE MASTER TO MASTER_HOST='192.168.10.1', MASTER_USER='root', MASTER_PASSWORD='123456', MASTER_LOG_FILE='master-bin.000003', MASTER_LOG_POS=1234;mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G
rpm -qa | grep mysql | xargs rpm -e --nodeps
vim /etc/yum.repos.d/galera.repo
[galley]baseurl=http://yum.mariadb.org/10.0/centos7-amd64gpgcheck=0enabled=1
yum install MariaDB-Galera-server -y
vim /etc/my.cnf.d/server.cnf
[galera]wsrep_provider=/usr/lib64/galera/libgalera_smm.sowsrep_cluster_address="gcomm://192.168.10.1,192.168.10.2"binlog_format=row
/usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/localhost.pid --wsrep-new-cluster
# 安装相关rpm包rpm -ivh http://mirrors.ustc.edu.cn/percona/tools/yum/release/7/RPMS/x86_64/percona-xtrabackup-24-2.4.22-1.el7.x86_64.rpmrpm -ivh http://mirrors.ustc.edu.cn/percona/pxc-57/yum/release/7/RPMS/x86_64/Percona-XtraDB-Cluster-shared-57-5.7.33-31.49.1.el7.x86_64.rpm
vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
wsrep_cluster_address=gcomm://192.168.10.1,192.168.10.2wsrep_node_address=192.168.10.3wsrep_sst_auth="sstuser:sstpass"
systemctl start mysql@bootstrap.service
tar -xzvf keepalived-2.2.2.tar.gzcd.keepalived-2.2.2/./configure && make
vim ./keepalived/etc/keepalived/keepalived.conf
global_defs { notification_email { sysadmin@fire.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_164 vrrp_skip_check_adv_addr vrrp_strict}vrrp_instance VI_1 { state BACKUP interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.10.37 }}virtual_server 192.168.10.37 3306 { lb_algo rr lb_kind NAT persistence_timeout 50 protocol TCP real_server 192.168.10.164 3306 { weight 1 notify_down /path/shutdown.sh tcp_check { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 3306 } }}
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --destination 224.0.0.18 --protocol vrrp -j ACCEPTfirewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --destination 224.0.0.18 --protocol vrrp -j ACCEPTfirewall-cmd --reload
上述文档详细介绍了MySQL主从复制相关配置方法以及基于Galera协议的高可用集群解决方案,涵盖了从单节点复制到Galera集群的多种部署方式,并提供了keepalived作为高可用解决方案的配置示例。
转载地址:http://hscmz.baihongyu.com/