东莞网站提升排名,自适应型网站建设哪家便宜,网站建立使用方法,asp网站怎么做301定向目录
一、MHA高可用方案
1、MHA的组成
2、MHA的工作原理
3、部署MHA架构
第一部分#xff1a;一主两从数据库架构部署
1、全部更改主机名、初始化操作、开启mysql服务、设置主机名管理、时间同步
2、MySQL服务器做主从复制
3、测试主从效果
第二部分#xff1a;MHA架…目录
一、MHA高可用方案
1、MHA的组成
2、MHA的工作原理
3、部署MHA架构
第一部分一主两从数据库架构部署
1、全部更改主机名、初始化操作、开启mysql服务、设置主机名管理、时间同步
2、MySQL服务器做主从复制
3、测试主从效果
第二部分MHA架构部署
1、安装依赖包
2、安装node组件
3、安装manager组件
4、在所有服务器上配置无密码认证
5、manager节点配置MHA
6、创建MHA软件目录并拷贝配置文件.
8、检查mha运行状态
9、在manager节点上启动MHA
第三部分模拟故障 二、MMM高可用方案
第一部分部署主主复制和主从复制 1、全部更改主机名、初始化操作、开启mysql服务、设置主机名管理、时间同步
2、修改master01配置文件并同步给其他数据库
3、配置主主复制两台主服务器相互复制
4、配置主从复制在两台从服务器上做
5、测试主主、主从 同步情况
第二部分部署MMM
1、所有服务器上安装 MySQL-MMM
2、 master01 上对 MySQL-MMM 进行配置
3、修改所有数据库代理配置文件
4、在 monitor 监控服务器上修改监控配置文件 mmm_mon.conf
5、所有数据库为代理进程和监控进程授权启动代理进程
6、monitor 服务器上启动数据库监控进程
第三部分monitor 服务器上模拟故障 测试群集 传统的mysql主从架构可能会出现单点故障的问题所以我们需要学习一些高可用方案。 常见的MySQL高可用方案有 keepalived主备、MHA、MMM、MySQL Ccluster此方法需要至少6台主机少有人用、PXC。如果使用keepalived实现主从复制架构中的主库的高可用还需要另外考虑到从库对接到备用主库的步骤。今天主要介绍MHA和MMM的高可用方案。
一、MHA高可用方案 MHA是采用perl语言编写的脚本管理工具目前主要支持一主多从架构要搭建MHA要求一个复制群集至少有3台数据库服务器一主二从。
1、MHA的组成
mha_manage节点可以单独部署在任何从库上。
mha_node节点要求部署在每个MySQL节点。给manage提供健康反馈实际做切换的组件。
2、MHA的工作原理 mha_manage节点服务器会定期通过心跳消息对主库做健康检查判断其有没有故障如果故障则mha_manage会自动找到具有最新数据的从库节点升级该从库为新的主库同时VIP地址也会自动漂移到新的主库其他从库也会自动对接新的主库做主从复制。
3、部署MHA架构
我的服务器IP说明master数据库192.168.170.200安装mysql5.7、MHA node 组件slave1数据库192.168.170.101安装mysql5.7、MHA node 组件slave2数据库192.168.170.120安装mysql5.7、MHA node 组件manager节点192.168.170.20安装MHA node 和 manager 组件并作为数据库服务器的本地始终源 部署步骤 1在所有MySQL服务器都做主从复制授权还要给 MHA manager 访问数据库的授权 2做时间同步和主从复制配置并设置从服务器为只读模式 3所有MySQL服务器和 manager 服务器都安装 mha node 组件manager 服务器还要安装 mha manager 组件 4所有MySQL服务器都要相互设置SSH免交互登录 5在 manager 服务器准备好 VIP故障切换脚本 和 MHA 配置文件 6在 master主库 服务器上创建 VIP 7在 manager 服务器用 masterha_check_ssh 和 masterha_check_repl 做 MHA 启动前检测再使用 masterha_manager 启动 MHA 进程 8做master故障转移测试VIP会漂移到新master节点上其它的从库会自动指向新的主库做主从复制故障转移完成后MHA进程也会自动退出MHA配置文件会自动删除原master的配置信息 第一部分一主两从数据库架构部署
1、全部更改主机名、初始化操作、开启mysql服务、设置主机名管理、时间同步
所有服务器
更改主机名、刷新生效
hostname master/slave
bash初始化设置
setenforce 0
systemctl disable --now firewalldmanager服务器
chrony同步阿里云时间
安装开启chrony程序
yum install -y chrony
systemctl start chronyd
修改chrony配置文件
vim /etc/chrony.conf
3 #server 0.centos.pool.ntp.org iburst4 #server 1.centos.pool.ntp.org iburst5 #server 2.centos.pool.ntp.org iburst6 #server 3.centos.pool.ntp.org iburst7 server ntp.aliyun.com iburst重启检查是否同步成功210 Number of sources 1表示同步成功
systemctl restart chronyd
chronyc sources 所有数据库服务器
mysql安装部分
yum remove -y mariadb-libs.x86_64
到opt目录中并解压解压后的包重命名并移动到/usr/local目录中
cd /opt/
rm -rf *
rz -E
tar xf mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.39-linux-glibc2.12-x86_64 /usr/local/mysql创建程序用户管理并修改mysql目录和配置文件的权限
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql
修改配置文件
vim /etc/my.cnf[client]
port 3306
socket/usr/local/mysql/mysql.sock[mysqld]
user mysql
basedir/usr/local/mysql
datadir/usr/local/mysql/data
port 3306
character-set-serverutf8
pid-file /usr/local/mysql/mysqld.pid
socket/usr/local/mysql/mysql.sock
bind-address 0.0.0.0
skip-name-resolve
max_connections2048
default-storage-engineINNODB
max_allowed_packet16M
server-id 1
sql_mode STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONchown mysql:mysql /etc/my.cnf
设置环境变量申明/宣告mysql命令便于系统识别并初始化数据库
echo PATH$PATH:/usr/local/mysql/bin /etc/profile
source /etc/profile
cd /usr/local/mysql/bin
./mysqld --initialize-insecure --usermysql --basedir/usr/local/mysql --datadir/usr/local/mysql/data设置系统识别进行操作
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod x /etc/init.d/mysqld
systemctl daemon-reload
systemctl restart mysqld
初始化数据库密码
mysqladmin -u root -p password 123456登录数据库
mysql -u root -p123456
创建用户并设置密码
CREATE USER root% IDENTIFIED BY 123456;
赋予远程连接的权限
GRANT ALL PRIVILEGES ON *.* TO root%;
刷新生效
flush privileges;
修改加密方式可以进行远程连接
ALTER USER root% IDENTIFIED WITH mysql_native_password BY 123456;chrony同步manager节点时间
systemctl start chronyd
修改chrony配置文件
vim /etc/chrony.conf
3 #server 0.centos.pool.ntp.org iburst4 #server 1.centos.pool.ntp.org iburst5 #server 2.centos.pool.ntp.org iburst6 #server 3.centos.pool.ntp.org iburst7 server 192.168.170.20 iburstsystemctl restart chronyd
chronyc sources
检查是否同步
timedatectl 在hosts配置文件里添加四个主机名和IP
vim /etc/hosts
192.168.170.200 master
192.168.170.101 slave1
192.168.170.120 slave2
192.168.170.20 manager 如果mysql的root密码忘了不要慌 停止mysql服务修改配置文件/etc/my.cnf中的[mysqld]中添加skip-grant-tables重启mysql直接使用mysql登录数据库然后使用update更新密码重启mysql。最后不要忘记把配置还原哦 update mysql.user set authentication_stringpassword(123456) where userroot;root and hostlocalhost;
flush privileges; 2、MySQL服务器做主从复制
所有数据库服务器
修改配置文件id不能相同
vim /etc/my.cnf
[mysqld]
server-id 1 #id唯一注意区别开
log_bin mysql-bin #开启二进制日志
binlog_format mixed #二进制日志格式
log-slave-updates 1 #主从复制数据也写到二进制日志里
relay-log relay-log-bin #开启中继日志
relay-log-index slave-relay-bin.index 重启mysqld服务
systemctl restart mysqld创建两个软链接
ln -s /usr/local/mysql/bin/mysql /usr/sbin/
ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/4、配置 mysql 一主两从
1登录数据库
mysql -uroot -p密码
2所有数据库节点进行 mysql 授权
create user myslave192.168.170.% identified by myslave123;
grant replication slave on *.* to myslave192.168.170.% identified by myslave123;
3所有节点创建manager节点用户并授权
create user manager192.168.170.% identified by manager123;
grant all on *.* to manager192.168.170.% identified by manager123;
4刷新
flush privileges; 主库master配置
在 Master 节点查看二进制文件和同步点
show master status;从库slave配置
从库配置同步主库注意 master_log_file 和 master_log_pos 的值要与主库上查询的一致
change master to master_host192.168.170.200,master_port3306,master_usermyslave,master_passwordmyslave123,master_log_filemysql-bin.000003,master_log_pos1419;
开启同步
start slave;
show slave status\G
两个从库设置成只读模式
set global read_only1; 3、测试主从效果 第二部分MHA架构部署
1、安装依赖包
manager服务器
vim /etc/yum.conf
----
cachedir/opt/yumcache
keepcache1
----
cd /opt
mkdir /opt/yumcache
cd /etc/yum.repos.d
mv repo.bak/* ./
mv local.repo repo.bak
cd /opt/yumcache
yum install -y epel-release ----安装依赖包
yum install -y perl-DBD-MySQL \
perl-Config-Tiny \
perl-Log-Dispatch \
perl-Parallel-ForkManager \
perl-ExtUtils-CBuilder \
perl-ExtUtils-MakeMaker \
perl-CPAN
----打包依赖包发送给其他服务器
mkdir mha
find ./ -name *.rpm -exec mv {} ./mha/ \; #将依赖包挪入该目录
scp -r mha/ 192.168.170.200:/opt #将包复制到主服务器
scp -r mha/ 192.168.170.101:/opt #将包复制到从服务器
scp -r mha/ 192.168.170.120:/opt #将包复制到从服务器 所有数据库服务器
cd /opt
createrepo mha/ #自动生成yum数据库依赖关系
cd mha
----修改目录
vim /etc/yum.repos.d/local.repo
baseurlfile:///opt/mha
-----
----本地源安装依赖包
yum install -y perl-DBD-MySQL \
perl-Config-Tiny \
perl-Log-Dispatch \
perl-Parallel-ForkManager \
perl-ExtUtils-CBuilder \
perl-ExtUtils-MakeMaker \
perl-CPAN
---- 补充这里我按上面操作主库成功安装依赖包两个从库无法安装又把local.repo配置改回去了之后才安装上依赖包。重做的时候可以验证一下 2、安装node组件
所有服务器
cd /opt
rz -E
#mha4mysql-node-0.57.tar.gz
tar xf mha4mysql-node-0.57.tar.gz
cd mha4mysql-node-0.57/
perl Makefile.PL
make make install 3、安装manager组件
manager服务器
cd /opt
rz -E
#mha4mysql-manager-0.57.tar.gz
tar xf mha4mysql-manager-0.57.tar.gz
cd mha4mysql-manager-0.57
perl Makefile.PL
make make install 4、在所有服务器上配置无密码认证
manager服务器
在 manager 节点上配置到所有数据库节点的无密码认证
ssh-keygen -t rsa #一路按回车键
ssh-copy-id 192.168.170.200
ssh-copy-id 192.168.170.101
ssh-copy-id 192.168.170.120 主库master配置
在 master 上配置到数据库节点 slave1 和 slave2 的无密码认证
ssh-keygen -t rsa #一路回车
ssh-copy-id 192.168.170.101
ssh-copy-id 192.168.170.120 从库slave配置
在 slave1 上配置到数据库节点 master 和 slave2 的无密码认证
ssh-keygen -t rsa #一路回车
ssh-copy-id 192.168.170.200
ssh-copy-id 192.168.170.120在 slave2 上配置到数据库节点 master 和 slave1 的无密码认证
ssh-keygen -t rsa #一路回车
ssh-copy-id 192.168.170.200
ssh-copy-id 192.168.170.101 5、manager节点配置MHA
manager服务器
cd /opt/mha4mysql-manager-0.57/samples
cp -a scripts/ /usr/local/bin
cd /usr/local/bin
cp scripts/master_ip_failover /usr/local/bin
echo master_ip_failover
vim master_ip_failover 注意Windows的脚本不能直接用到Linux里脚本内容要通过复制创建新的脚本。
清空原先master_ip_failover的内容添加以下配置#!/usr/bin/env perl
use strict;
use warnings FATAL all;use Getopt::Long;my ($command, $orig_master_host, $orig_master_ip,$ssh_user,$orig_master_port, $new_master_host, $new_master_ip,$new_master_port,$orig_master_ssh_port,$new_master_ssh_port,$new_master_user,$new_master_password
);# 这里定义的虚拟IP配置要注意这个ip必须要与你自己的集群在同一个网段否则无效
my $vip 192.168.170.111/24;
my $key 1;
# 这里的网卡名称 “ens33” 需要根据你机器的网卡名称进行修改
# 如果多台机器直接的网卡名称不统一有两种方式一个是改脚本二是把网卡名称修改成统一
# 我这边实际情况是修改成统一的网卡名称
my $ssh_start_vip sudo /sbin/ifconfig ens33:$key $vip;
my $ssh_stop_vip sudo /sbin/ifconfig ens33:$key down;
my $ssh_Bcast_arp sudo /sbin/arping -I ens33 -c 3 -A $vip;GetOptions(commands \$command,ssh_users \$ssh_user,orig_master_hosts \$orig_master_host,orig_master_ips \$orig_master_ip,orig_master_porti \$orig_master_port,orig_master_ssh_porti \$orig_master_ssh_port,new_master_hosts \$new_master_host,new_master_ips \$new_master_ip,new_master_porti \$new_master_port,new_master_ssh_port \$new_master_ssh_port,new_master_user \$new_master_user,new_master_password \$new_master_password);exit main();sub main {$ssh_user defined $ssh_user ? $ssh_user : root;print \n\nIN SCRIPT TEST$ssh_user|$ssh_stop_vip$ssh_user|$ssh_start_vip\n\n;if ( $command eq stop || $command eq stopssh ) {my $exit_code 1;eval {print Disabling the VIP on old master: $orig_master_host \n;stop_vip();$exit_code 0;};if ($) {warn Got Error: $\n;exit $exit_code;}exit $exit_code;}elsif ( $command eq start ) {my $exit_code 10;eval {print Enabling the VIP - $vip on the new master - $new_master_host \n;start_vip();start_arp();$exit_code 0;};if ($) {warn $;exit $exit_code;}exit $exit_code;}elsif ( $command eq status ) {print Checking the Status of the script.. OK \n;exit 0;}else {usage();exit 1;}
}sub start_vip() {ssh $ssh_user\$new_master_host \ $ssh_start_vip \;
}
sub stop_vip() {ssh $ssh_user\$orig_master_host \ $ssh_stop_vip \;
}sub start_arp() {ssh $ssh_user\$new_master_host \ $ssh_Bcast_arp \;
}
sub usage {printUsage: master_ip_failover --commandstart|stop|stopssh|status --ssh_useruser --orig_master_hosthost --orig_master_ipip --orig_master_portport --new_master_hosthost --new_master_ipip --new_master_portport\n;
} 6、创建MHA软件目录并拷贝配置文件.
manager节点添加故障切换脚本以及VIP故障切换脚本
manager服务器
cd /usr/local/bin/scripts
cp master_ip_online_change power_manager /usr/local/bin/
cd /usr/local/bin/
chmod x master_ip_failovercd /opt
mkdir /opt/mysql-mha
cd mysql-mha
mkdir mha-manager
mkdir mha-node vim /opt/mysql-mha/mysql_mha.cnf
[server default]
manager_log/opt/mysql-mha/manager.log
manager_workdir/opt/mysql-mha/mha-manager
master_binlog_dir/usr/local/mysql/data
master_ip_failover_script/usr/local/bin/master_ip_failover
master_ip_online_change_script/usr/local/bin/master_ip_online_change
usermanager
passwordmanager123
port3306
ping_interval1
remote_workdir/opt/mysql-mha/mha-node
repl_usermyslave
repl_passwordmyslave123
secondary_check_script/usr/local/bin/masterha_secondary_check -s 192.168.170.101 -s 192.168.170.120
shutdown_script
ssh_userroot[server1]
hostname192.168.170.200
port3306[server2]
hostname192.168.170.101
port3306[server3]
hostname192.168.170.120
port3306主库master配置
第一次配置需要在 Master 节点上手动开启虚拟IP
ifconfig ens33:1 192.168.170.111/24 8、检查mha运行状态
manager服务器
masterha_check_ssh -conf/opt/mysql-mha/mysql_mha.cnf
masterha_check_repl -conf/opt/mysql-mha/mysql_mha.cnf #测试mysql主从连接情况 9、在manager节点上启动MHA
启动mha
nohup masterha_manager \
--conf/opt/mysql-mha/mysql_mha.cnf \
--remove_dead_master_conf \
--ignore_last_failover /dev/null /var/log/mha_manager.log 21 查看mha运行状态
masterha_check_status -conf/opt/mysql-mha/mysql_mha.cnfremove_dead_master_conf该参数代表当发生主从切换后老的主库的 ip 将会从配置文件中移除。 --ignore_last_failover在缺省情况下如果 MHA 检测到连续发生宕机且两次宕机间隔不足 8 小时的话则不会进行 Failover 之所以这样限制是为了避免 ping-pong 效应。该参数代表忽略上次 MHA 触发切换产生的文件默认情况下MHA 发生切换后会在 app1.failover.complete 日志文件中记录下次再次切换的时候如果发现该目录下存在该文件将不允许触发切换 除非在第一次切换后删除该文件为了方便这里设置为--ignore_last_failover。 ●使用后台运行程序结果会输出到终端使用CtrlC发送SIGINT信号程序免疫关闭session发送SIGHUP信号程序关闭。 ●使用nohup运行程序结果默认会输出到nohup.out使用CtrlC发送SIGINT信号程序关闭关闭session发送SIGHUP信号程序免疫。 ●使用nohup和配合来启动程序nohup ./test 同时免疫SIGINT和SIGHUP信号。 第三部分模拟故障
主库宕机了追踪manager节点服务器mha目录中的日志能够看到主库由了原来的从库接替且VIP也漂移到了新的主库上。 从库也实现自动对接到新的主库上 mha在故障切换后会自动退出进程且配置文件中原本的server1的配置也被自动删除了 当原主库服务器恢复后怎么让其再次成为主库接着对外提供服务呢
systemctl restart mysqlmysql -u root -p123456
change master to master_host192.168.170.101,master_port3306,master_usermyslave,master_passwordmyslave123,master_log_filemysql-bin.000001,master_log_pos2065;
start slave;
show slave status\G manager服务器
修改mha配置文件
vim mysql_mha.cnf
启动
nohup masterha_manager --conf/opt/mysql-mha/mysql_mha.cnf --remove_dead_master_conf --ignore_last_failover /dev/null /var/log/mha_manager.log 21
查看状态
masterha_check_status -conf/opt/mysql-mha/mysql_mha.cnf 二、MMM高可用方案 MMM是双主只有一个主对外提供工作。主主复制时两个主之间互相做主从复制实现主主复制从节点也会对接主的master。monitor节点会检测master的状态当发现主挂了就会vip切换到备的msater上从库节点会重现找新的master做对接。
我的服务器IP地址说明master1192.168.170.200安装 mysql5.7、mysql-mmmmaster2192.168.170.100安装 mysql5.7、mysql-mmmslave1192.168.170.101安装 mysql5.7、mysql-mmmslave2192.168.170.120安装 mysql5.7、mysql-mmmmonitor节点服务器192.168.170.20安装 mysql-mmm
第一部分部署主主复制和主从复制 1、全部更改主机名、初始化操作、开启mysql服务、设置主机名管理、时间同步
所有服务器
更改主机名、刷新生效
hostname 主机名
bash初始化设置
setenforce 0
systemctl disable --now firewalld
vim /etc/seliux/cnfmanager服务器
chrony同步阿里云时间
安装开启chrony程序
yum install -y chrony
systemctl start chronyd
修改chrony配置文件
vim /etc/chrony.conf
3 #server 0.centos.pool.ntp.org iburst4 #server 1.centos.pool.ntp.org iburst5 #server 2.centos.pool.ntp.org iburst6 #server 3.centos.pool.ntp.org iburst7 server ntp.aliyun.com iburst重启检查是否同步成功210 Number of sources 1表示同步成功
systemctl restart chronyd
chronyc sources
2、修改master01配置文件并同步给其他数据库
vim /etc/my.cnf
......
[mysqld]
user mysql
basedir /usr/local/mysql
datadir /usr/local/mysql/data
port 3306
character_set_serverutf8
pid-file /usr/local/mysql/mysqld.pid
socket /usr/local/mysql/mysql.sock
server-id 1 #每台 Mysql 主机的 server-id 不能相同
log-error/usr/local/mysql/data/mysql_error.log #错误日志
general_logON #通用查询日志
general_log_file/usr/local/mysql/data/mysql_general.log
slow_query_logON #慢查询日志
slow_query_log_filemysql_slow_query.log
long_query_time5
binlog-ignore-dbmysql,information_schema #不需要同步的库名
log_binmysql_bin #开启二进制日志用于主从数据复制
log_slave_updatestrue #允许slave从master复制数据时可以写入到自己的二进制日志
sync_binlog1 #双1设置MySQL 在每写一次二进制日志时都会同步到磁盘中去
innodb_flush_log_at_trx_commit1 #双1设置每次事务提交时MySQL都会把缓存的数据写入日志文件并且刷到磁盘中去
auto_increment_increment2 #自增字段一次递增多少
auto_increment_offset1 #自增字段的起始值 把配置文件复制到其它 3 台数据库服务器上并启动服务器注意配置文件中的 server_id 要修改
scp /etc/my.cnf root192.168.170.100:/etc/
scp /etc/my.cnf root192.168.170.101:/etc/
scp /etc/my.cnf root192.168.170.120:/etc/ 其他数据库需要修改id重启服务
vim /etc/my.cnf
systemctl restart mysqld 3、配置主主复制两台主服务器相互复制
master1和master2
登录数据库
mysql -u root -p123456
#在两台主服务器上都执行授予从的权限从服务器上不需要执行
grant replication slave on *.* to replication192.168.170.% identified by 123456;
#在两台主服务器上查看记录日志文件名称和同步点
show master status; master1 上配置同步
change master to master_host192.168.170.100,master_userreplication,master_password123456,master_log_filemysql_bin.000001,master_log_pos461;start slave;
show slave status\G master2 上配置同步根据实际情况填写我这里文件名和位置都是一样的
change master to master_host192.168.170.100,master_userreplication,master_password123456,master_log_filemysql_bin.000001,master_log_pos461;start slave;
show slave status\G 4、配置主从复制在两台从服务器上做
mysql -uroot -p123456
create user myslave192.168.170.% identified by myslave123;
grant replication slave on *.* to myslave192.168.170.% identified by myslave123;
flush privileges;
change master to master_host192.168.170.200,master_userreplication,master_password123456,master_log_filemysql_bin.000001,master_log_pos461;
start slave;
show slave status\G 5、测试主主、主从 同步情况 第二部分部署MMM
1、所有服务器上安装 MySQL-MMM
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release
yum -y install mysql-mmm* 2、 master01 上对 MySQL-MMM 进行配置
cd /etc/mysql-mmm/
vim mmm_common.conf
---------------------------------------------------------------------
……
host defaultcluster_interface ens33……replication_user replicationreplication_password 123456agent_user mmm_agentagent_password 123456host db1ip 192.168.170.200mode masterpeer db2
/hosthost db2ip 192.168.170.100mode masterpeer db1
/hosthost db3ip 192.168.170.101mode slave
/hosthost db4ip 192.168.170.102mode slave
/hostrole writerhosts db1, db2ips 192.168.80.188mode exclusive #只有一个 host 可以进行写操作模式
/rolerole readerhosts db3, db4ips 192.168.80.198, 192.168.80.199mode balanced #多个 slave 主机可以进行读操作模式
/role
---------------------------------------------------------------------把配置文件复制到其它 4 台主机所有主机该配置文件内容都是一样的
scp mmm_common.conf root192.168.170.100:/etc/mysql-mmm/
scp mmm_common.conf root192.168.170.101:/etc/mysql-mmm/
scp mmm_common.conf root192.168.170.120:/etc/mysql-mmm/
scp mmm_common.conf root192.168.170.20:/etc/mysql-mmm/ 3、修改所有数据库代理配置文件
vim /etc/mysql-mmm/mmm_agent.conf
include mmm_common.conf
this db1 #根据不同的主机分别修改为 db1,db2,db3,db4 4、在 monitor 监控服务器上修改监控配置文件 mmm_mon.conf
vim /etc/mysql-mmm/mmm_mon.conf
include mmm_common.conf
monitor
.....ping_ips 192.168.170.200,192.168.170.100,192.168.170.101,192.168.170.120 #指定所有数据库服务器的 IPauto_set_online 10 #指定自动上线时间
/monitorhost defaultmonitor_user mmm_monitor #指定 mmm_monitor 的用户名monitor_password 123456 #指定 mmm_monitor 的密码
/host 5、所有数据库为代理进程和监控进程授权启动代理进程
在所有数据库上为 mmm_agent代理进程授权
grant super, replication client, process on *.* to mmm_agent192.168.170.% identified by 123456;
//在所有数据库上为 mmm_moniter监控进程授权
grant replication client on *.* to mmm_monitor192.168.170.% identified by 123456;flush privileges; 在所有数据库服务器上启动代理进程
systemctl start mysql-mmm-agent.service
systemctl enable mysql-mmm-agent.service 6、monitor 服务器上启动数据库监控进程
systemctl start mysql-mmm-monitor.service 第三部分monitor 服务器上模拟故障 测试群集
#查看各节点的情况
mmm_control showdb1(192.168.80.20) master/ONLINE. Roles: writer(192.168.170.188)db2(192.168.80.30) master/ONLINE. Roles: db3(192.168.80.13) slave/ONLINE. Roles: reader(192.168.170.198)db4(192.168.80.14) slave/ONLINE. Roles: reader(192.168.170.199)#检测监控功能是否都完善需要各种OK
mmm_control checks all#指定绑定 VIP 的主机
mmm_control move_role writer db2 #故障测试前还原绑定 VIP 的主机
mmm_control move_role writer db1 故障测试
#停止master1后在monitor服务器上确认VIP是否移动到master2上。注意master1 主服务器恢复服务后不会抢占。
mmm_control show #从服务器随便停一台后在monitor服务器上查看另一台将接管两个虚拟IP以保证业务不停止
mmm_control show #在 master01 服务器上为 monitor 服务器地址授权登录同网段主机授权后都可以使用 vip登录
grant all on *.* to testdba192.168.170.20 identified by 123456;
flush privileges; #在 monitor 服务器上使用 VIP 登录
yum install -y mariadb-server mariadb
systemctl start mariadb.service
mysql -utestdba -p -h 192.168.170.200#创建数据测试同步情况
create database testdba;