目录
- 注意事项
- 红色标题为可选命令,不需要执行,只有出现问题或者需要时执行
- 配置服务器
- 主节点 mainNode 192.168.36.141
- 从节点 slaveNode 192.168.36.142
- mysql-vip 192.168.36.143
- redis-vip 192.168.36.144
- minio-vip 192.168.36.145
- 关闭防火墙
systemctl stop firewalld systemctl disable firewalld |
-
- 关闭selinux
临时关闭 setenforce 0 查询状态是否为Permissive getenforce 永久关闭: vi /etc/sysconfig/selinux SELINUX=disabled |
mkdir /data useradd -d /data/mysql mysql |
-
- 修改两个服务器mysql用户密码为123456
passwd mysql |
-
- 修改/etc/my.cnf配置文件为my.cnf主和my.cnf从
- mainNode的my.cnf
# ## my.cnf for 8.0版本 ## author: yejr(yejinrong@zhishutang.com, http://imysql.com, QQ: 4700963) ## ## 叶金荣(yejr) ## 国内知名MySQL专家,MySQL布道师,Oracle MySQL ACE Director,腾讯云TVP成员。 ## 微信公众:老叶茶馆(imysql_wx), 博客:https://imysql.com ## QQ群: 125572178 ## 注意:个别建议可能需要根据实际情况作调整,请自行判断或联系我,本人不对这些建议结果负相应责任 ## 本配置文件主要适用于MySQL 8.0版本 # [client] port = 3306 socket = /data/mysql/data/mysql.sock [mysql] prompt = "\u@mysqldb \R:\m:\s [\d]> " no_auto_rehash [mysqld] user = mysql port = 3306 #大小写不敏感 lower_case_table_names=1 #主从复制或MGR集群中,server_id记得要不同 #另外,实例启动时会生成 auto.cnf,里面的 server_uuid 值也要不同 #server_uuid的值还可以自己手动指定,只要符合uuid的格式标准就可以 server_id = 3306 basedir = /data/mysql/mysql datadir = /data/mysql/data socket = /data/mysql/data/mysql.sock pid_file = mysqldb.pid character_set_server = UTF8MB4 skip_name_resolve = 1 #若你的MySQL数据库主要运行在境外,请务必根据实际情况调整本参数 default_time_zone = "+8:00" #启用admin_port,连接数爆满等紧急情况下给管理员留个后门 admin_address = '127.0.0.1' admin_port = 33062 #performance setttings lock_wait_timeout = 3600 open_files_limit = 65535 back_log = 1024 max_connections = 512 max_connect_errors = 1000000 table_open_cache = 1024 table_definition_cache = 1024 thread_stack = 512K sort_buffer_size = 16M join_buffer_size = 16M read_buffer_size = 8M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 64M thread_cache_size = 768 interactive_timeout = 600 wait_timeout = 600 tmp_table_size = 96M max_heap_table_size = 96M #log settings log_timestamps = SYSTEM log_error = /data/mysql/data/error.log log_error_verbosity = 3 slow_query_log = 1 log_slow_extra = 1 slow_query_log_file = /data/mysql/data/slow.log long_query_time = 0.1 log_queries_not_using_indexes = 1 log_throttle_queries_not_using_indexes = 60 min_examined_row_limit = 100 log_slow_admin_statements = 1 log_slow_slave_statements = 1 log_bin = /data/mysql/data/mybinlog binlog_format = ROW sync_binlog = 1 #MGR环境中由其他节点提供容错性,可不设置双1以提高本地节点性能 binlog_cache_size = 4M max_binlog_cache_size = 2G max_binlog_size = 1G binlog_rows_query_log_events = 1 binlog_expire_logs_seconds = 604800 #MySQL 8.0.22前,想启用MGR的话,需要设置binlog_checksum=NONE才行 binlog_checksum = CRC32 gtid_mode = ON enforce_gtid_consistency = TRUE #myisam settings key_buffer_size = 32M myisam_sort_buffer_size = 128M #replication settings relay_log_recovery = 1 slave_parallel_type = LOGICAL_CLOCK slave_parallel_workers = 64 #可以设置为逻辑CPU数量的2倍 binlog_transaction_dependency_tracking = WRITESET slave_preserve_commit_order = 1 slave_checkpoint_period = 2 # async replication settings skip_slave_start #innodb settings transaction_isolation = REPEATABLE-READ innodb_buffer_pool_size = 14336M innodb_buffer_pool_instances = 4 innodb_data_file_path = ibdata1:12M:autoextend innodb_flush_log_at_trx_commit = 1 #MGR环境中由其他节点提供容错性,可不设置双1以提高本地节点性能 innodb_log_buffer_size = 32M innodb_log_file_size = 1G #如果线上环境的TPS较高,建议加大至1G以上,如果压力不大可以调小 innodb_log_files_in_group = 3 innodb_max_undo_log_size = 4G # 根据您的服务器IOPS能力适当调整 # 一般配普通SSD盘的话,可以调整到 10000 - 20000 # 配置高端PCIe SSD卡的话,则可以调整的更高,比如 50000 - 80000 innodb_io_capacity = 4000 innodb_io_capacity_max = 8000 innodb_open_files = 65535 innodb_flush_method = O_DIRECT innodb_lru_scan_depth = 4000 innodb_lock_wait_timeout = 10 innodb_rollback_on_timeout = 1 innodb_print_all_deadlocks = 1 innodb_online_alter_log_max_size = 4G innodb_print_ddl_logs = 1 innodb_status_file = 1 #注意: 开启 innodb_status_output & innodb_status_output_locks 后, 可能会导致log_error文件增长较快 innodb_status_output = 0 innodb_status_output_locks = 1 innodb_sort_buffer_size = 67108864 innodb_adaptive_hash_index = OFF #innodb monitor settings innodb_monitor_enable = "module_innodb" innodb_monitor_enable = "module_server" innodb_monitor_enable = "module_dml" innodb_monitor_enable = "module_ddl" innodb_monitor_enable = "module_trx" innodb_monitor_enable = "module_os" innodb_monitor_enable = "module_purge" innodb_monitor_enable = "module_log" innodb_monitor_enable = "module_lock" innodb_monitor_enable = "module_buffer" innodb_monitor_enable = "module_index" innodb_monitor_enable = "module_ibuf_system" innodb_monitor_enable = "module_buffer_page" #innodb_monitor_enable = "module_adaptive_hash" #pfs settings performance_schema = 1 #performance_schema_instrument = '%memory%=on' performance_schema_instrument = '%lock%=on' [mysqldump] quick |
-
- slaveNode的my.cnf
# ## my.cnf for 8.0版本 ## author: yejr(yejinrong@zhishutang.com, http://imysql.com, QQ: 4700963) ## ## 叶金荣(yejr) ## 国内知名MySQL专家,MySQL布道师,Oracle MySQL ACE Director,腾讯云TVP成员。 ## 微信公众:老叶茶馆(imysql_wx), 博客:https://imysql.com ## QQ群: 125572178 ## 注意:个别建议可能需要根据实际情况作调整,请自行判断或联系我,本人不对这些建议结果负相应责任 ## 本配置文件主要适用于MySQL 8.0版本 # [client] port = 3306 socket = /data/mysql/data/mysql.sock [mysql] prompt = "\u@mysqldb \R:\m:\s [\d]> " no_auto_rehash [mysqld] user = mysql port = 3306 #大小写不敏感 lower_case_table_names=1 #主从复制或MGR集群中,server_id记得要不同 #另外,实例启动时会生成 auto.cnf,里面的 server_uuid 值也要不同 #server_uuid的值还可以自己手动指定,只要符合uuid的格式标准就可以 server_id = 3307 basedir = /data/mysql/mysql datadir = /data/mysql/data socket = /data/mysql/data/mysql.sock pid_file = mysqldb.pid character_set_server = UTF8MB4 skip_name_resolve = 1 #若你的MySQL数据库主要运行在境外,请务必根据实际情况调整本参数 default_time_zone = "+8:00" #启用admin_port,连接数爆满等紧急情况下给管理员留个后门 admin_address = '127.0.0.1' admin_port = 33062 #performance setttings lock_wait_timeout = 3600 open_files_limit = 65535 back_log = 1024 max_connections = 512 max_connect_errors = 1000000 table_open_cache = 1024 table_definition_cache = 1024 thread_stack = 512K sort_buffer_size = 16M join_buffer_size = 16M read_buffer_size = 8M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 64M thread_cache_size = 768 interactive_timeout = 600 wait_timeout = 600 tmp_table_size = 96M max_heap_table_size = 96M #log settings log_timestamps = SYSTEM log_error = /data/mysql/data/error.log log_error_verbosity = 3 slow_query_log = 1 log_slow_extra = 1 slow_query_log_file = /data/mysql/data/slow.log long_query_time = 0.1 log_queries_not_using_indexes = 1 log_throttle_queries_not_using_indexes = 60 min_examined_row_limit = 100 log_slow_admin_statements = 1 log_slow_slave_statements = 1 log_bin = /data/mysql/data/mybinlog binlog_format = ROW sync_binlog = 1 #MGR环境中由其他节点提供容错性,可不设置双1以提高本地节点性能 binlog_cache_size = 4M max_binlog_cache_size = 2G max_binlog_size = 1G binlog_rows_query_log_events = 1 binlog_expire_logs_seconds = 604800 #MySQL 8.0.22前,想启用MGR的话,需要设置binlog_checksum=NONE才行 binlog_checksum = CRC32 gtid_mode = ON enforce_gtid_consistency = TRUE #myisam settings key_buffer_size = 32M myisam_sort_buffer_size = 128M #replication settings relay_log_recovery = 1 slave_parallel_type = LOGICAL_CLOCK slave_parallel_workers = 64 #可以设置为逻辑CPU数量的2倍 binlog_transaction_dependency_tracking = WRITESET slave_preserve_commit_order = 1 slave_checkpoint_period = 2 # async replication settings skip_slave_start #innodb settings transaction_isolation = REPEATABLE-READ innodb_buffer_pool_size = 4301M innodb_buffer_pool_instances = 4 innodb_data_file_path = ibdata1:12M:autoextend innodb_flush_log_at_trx_commit = 1 #MGR环境中由其他节点提供容错性,可不设置双1以提高本地节点性能 innodb_log_buffer_size = 32M innodb_log_file_size = 1G #如果线上环境的TPS较高,建议加大至1G以上,如果压力不大可以调小 innodb_log_files_in_group = 3 innodb_max_undo_log_size = 4G # 根据您的服务器IOPS能力适当调整 # 一般配普通SSD盘的话,可以调整到 10000 - 20000 # 配置高端PCIe SSD卡的话,则可以调整的更高,比如 50000 - 80000 innodb_io_capacity = 4000 innodb_io_capacity_max = 8000 innodb_open_files = 65535 innodb_flush_method = O_DIRECT innodb_lru_scan_depth = 4000 innodb_lock_wait_timeout = 10 innodb_rollback_on_timeout = 1 innodb_print_all_deadlocks = 1 innodb_online_alter_log_max_size = 4G innodb_print_ddl_logs = 1 innodb_status_file = 1 #注意: 开启 innodb_status_output & innodb_status_output_locks 后, 可能会导致log_error文件增长较快 innodb_status_output = 0 innodb_status_output_locks = 1 innodb_sort_buffer_size = 67108864 innodb_adaptive_hash_index = OFF #innodb monitor settings innodb_monitor_enable = "module_innodb" innodb_monitor_enable = "module_server" innodb_monitor_enable = "module_dml" innodb_monitor_enable = "module_ddl" innodb_monitor_enable = "module_trx" innodb_monitor_enable = "module_os" innodb_monitor_enable = "module_purge" innodb_monitor_enable = "module_log" innodb_monitor_enable = "module_lock" innodb_monitor_enable = "module_buffer" innodb_monitor_enable = "module_index" innodb_monitor_enable = "module_ibuf_system" innodb_monitor_enable = "module_buffer_page" #innodb_monitor_enable = "module_adaptive_hash" #pfs settings performance_schema = 1 #performance_schema_instrument = '%memory%=on' performance_schema_instrument = '%lock%=on' [mysqldump] quick |
-
- 上传文件mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz到/data/mysql
- 使用mysql用户在两台服务器解压
tar -xxvf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz |
-
- 修改两个服务器路径
mv mysql-8.0.28-linux-glibc2.12-x86_64 mysql |
-
- 删除安装包
rm mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz |
-
- 配置两台环境变量
echo "export PATH=/data/mysql/mysql/bin:\$PATH">>.bash_profile source .bash_profile |
-
- 在mainNode 服务器初始化数据库
mysqld --initialize --user=mysql |
-
- 启动数据库
/data/mysql/mysql/support-files/mysql.server start |
-
- 在配置/data/mysql/data/error.log中找到随机密码eVnKUUkk+8iA 使用密码登录
mysql -uroot -p |
-
- 重置root密码为123456 并创建root%
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; CREATE USER 'root'@'%' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; GRANT GRANT OPTION ON *.* TO 'root'@'%'; FLUSH PRIVILEGES; |
-
- 创建复制用户
CREATE USER 'repl'@'%' IDENTIFIED BY '123456'; grant replication slave on *.* to 'repl'@'%'; ALTER USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES; |
-
- 停止数据库,并打包data文件夹到从库
/data/mysql/mysql/support-files/mysql.server stop tar -zcvf data.tar.gz data |
-
- 在从库/data/mysql解压data.tar.gz,并修改/data/mysql/data/auto.cnf中的uuid,不能和主库相同
tar -zxvf data.tar.gz vi /data/mysql/data/auto.cnf |
-
- 删除data.tar.gz
rm -rf data.tar.gz |
-
- 启动mainNode
/data/mysql/mysql/support-files/mysql.server start |
-
- 启动slaveNode
/data/mysql/mysql/support-files/mysql.server start |
-
- 登录mainNode查看状态
show master status; |
-
- 根据mainNode状态编写下面语句在slaveNode配置mainNode
change master to master_host='192.168.36.141', master_port=3306, master_user='repl', master_password='123456', master_log_file='mybinlog.000003', master_log_pos=197 ; |
-
- 启动slaveNode上的主从
start slave; |
-
- 登录slaveNode查询状态
show master status; |
-
- 根据slaveNode状态编写下面语句在mainNode配置mainNode
change master to master_host='192.168.36.142', master_port=3306, master_user='repl', master_password='123456', master_log_file='mybinlog.000003', master_log_pos=197 ; |
-
- 启动mainNode上的主从
start slave; |
-
- 在mainNode查询主备状态
show slave status\G; |
-
- 在slaveNode查询主备状态
show slave status\G; |
-
- 如果主备状态都为下面则正常
Slave_IO_Running: Yes Slave_SQL_Running: Yes |
-
- 在两边创建库和表测试
- 可以通过查询主备状态中的Last_IO_Error查找错误信息
mkdir /data useradd -d /data/redis redis passwd redis |
-
- 上传安装包redis-6.2.6-bin.tar.gz 并解压
tar -zxvf redis-6.2.6-bin.tar.gz |
-
- 设置mainNode
- 修改redis.conf中ip为0.0.0.0
- 设置mainNode
bind 0.0.0.0 |
-
-
- 修改redis.conf密码为123456
-
requirepass 123456 |
-
-
- 修改redis.conf关闭保护模式
-
protected-mode no |
-
-
- 修改redis.conf中连接主库的密码
-
masterauth 123456 |
-
-
- 修改redis.conf打开守护进程
-
daemonize yes |
-
- 设置slaveNode
- 修改redis.conf中ip为0.0.0.0
- 设置slaveNode
bind 0.0.0.0 |
-
-
- 修改redis.config密码为123456
-
requirepass 123456 |
-
-
- 修改redis.conf关闭保护模式
-
protected-mode no |
-
-
- 修改redis.conf打开守护进程
-
daemonize yes |
-
-
- 修改redis.conf中连接主库的密码
-
masterauth 123456 |
-
-
- 修改redis.conf设置主节点地址
-
slaveof 192.168.36.141 6379 |
-
- 依次启动mainNode、slaveNode的服务端
./redis-server ./redis.conf 1>>../log/redis.log 2>&1 & |
-
- 停止主服务器服务器
APPPATH=$(cd `dirname $0`;pwd) cd $APPPATH ./redis-cli -a 123456 shutdown 或者 ps -ef |grep redis-server |awk '{print $2}'|xargs kill -9 |
-
- 将从库设置为主库
slaveof no one |
-
- 当主库停止后,重启原来的主库,通话下面命令连接到新主库、设置主节点、同步主节点数据
slaveof 192.168.36.142 6379 replicaof 192.168.36.142 6379 |
-
- 查询主备配置
info replication |
-
- 查询所有配置
info all |
mkdir /data useradd -d /data/minio minio passwd minio |
-
- 进入minio用户,创建目录/data/minio/miniodata
su - minio mkdir miniodata |
-
- 上传minio_v20220226.tar.gz到/data/minio目录
- 解压minio_v20220226.tar.gz
tar -zxvf minio_v20220226.tar.gz |
-
- 配置启动命令startMinio.sh
vi startMinio.sh MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=minioadmin ./minio server /data/minio/miniodata --console-address ":9001" 1>>./logs/System.out 2>&1 & |
-
- 添加执行权限
chmod +x startMinio.sh |
-
- 创建日志目录
mkdir logs |
-
- 启动两个服务器的minio
./startMinio.sh |
-
- 登录页面创建桶:record、upload
- 在mainNode创建两个服务器的别名
./mc alias set xswhminio1 http://192.168.36.141:9000 minioadmin minioadmin ./mc alias set xswhminio2 http://192.168.36.142:9000 minioadmin minioadmin |
-
- 在mainNode编辑同步脚本sync.sh,配置单向同步,只会从xswhminio1同步到xswhminio2
vi sync.sh chmod +x sync.sh ./mc mirror --remove --overwrite --watch xswhminio1 xswhminio2 1>>./logs/sync.out 2>&1 & |
-
- 在mainNode启动同步脚本
./sync.sh |
-
- 在slaveNode创建两个服务器的别名【此同步不要开启,当主库崩溃后才可以处理,具体参考主节点崩溃后如何恢复】
./mc alias set xswhminio1 http://192.168.36.141:9000 minioadmin minioadmin ./mc alias set xswhminio2 http://192.168.36.142:9000 minioadmin minioadmin |
-
- 在slaveNode编辑同步脚本sync.sh,配置单向同步,只会从xswhminio1同步到xswhminio2【此同步不要开启,当主库崩溃后才可以处理,具体参考主节点崩溃后如何恢复】
vi sync.sh chmod +x sync.sh ./mc mirror --remove --overwrite --watch xswhminio1 xswhminio2 1>>./logs/sync.out 2>&1 & |
-
- 在slaveNode启动同步脚本【此同步不要开启,当主库崩溃后才可以处理,具体参考主节点崩溃后如何恢复】
./sync.sh |
yum -y install keepalived |
-
- 开启自启动
systemctl start keepalived systemctl enable keepalived |
-
- redis的mainNode配置,需要切换vip和主备脚本
-
-
- 不同的脚本
-
vi /root/check_redis.sh #!/bin/bash portSize=`netstat -ntlp|grep 6379| wc -l` echo "端口出现的次数$portSize" if [ $portSize -gt 0 ] then echo "redis状态正常" exit 0 else echo "redis状态异常" exit 1 fi |
vi /root/redis_master.sh #!/bin/bash source /data/redis/.bash_profile /data/redis/redis/bin/redis-cli -p 6379 -a 123456 <<EOF slaveof no one exit EOF |
vi /root/redis_backup.sh #!/bin/bash source /data/redis/.bash_profile /data/redis/redis/bin/redis-cli -p 6379 -a 123456 <<EOF slaveof 192.168.36.142 6379 replicaof 192.168.36.142 6379 EOF |
-
- redis的salveNode的配置
-
-
- 不同的脚本
-
vi /root/check_redis.sh #!/bin/bash portSize=`netstat -ntlp|grep 6379| wc -l` echo "端口出现的次数$portSize" if [ $portSize -gt 0 ] then echo "redis状态正常" exit 0 else echo "redis状态异常" exit 1 fi |
vi /root/redis_master.sh #!/bin/bash source /data/redis/.bash_profile /data/redis/redis/bin/redis-cli -p 6379 -a 123456 <<EOF slaveof no one exit EOF |
vi /root/redis_backup.sh #!/bin/bash source /data/redis/.bash_profile /data/redis/redis/bin/redis-cli -p 6379 -a 123456 <<EOF slaveof 192.168.36.141 6379 replicaof 192.168.36.141 6379 EOF |
-
- minio的mainNode配置,只需要切换vip,不需要主备脚本
-
-
- 不同的脚本
-
vi /root/check_minio.sh #!/bin/bash portSize=`netstat -ntlp|grep 9000| wc -l` echo "端口出现的次数$portSize" if [ $portSize -gt 0 ] then echo "minio状态正常" exit 0 else echo "minio状态异常" exit 1 fi |
-
- minio的slaveNode配置
-
-
- 不同的脚本
-
vi /root/check_minio.sh #!/bin/bash portSize=`netstat -ntlp|grep 9000| wc -l` echo "端口出现的次数$portSize" if [ $portSize -gt 0 ] then echo "minio状态正常" exit 0 else echo "minio状态异常" exit 1 fi |
-
- mysql的mainNode配置,只需要切换vip,不需要主备脚本
-
-
- 不同的脚本
-
vi /root/check_mysql.sh #!/bin/bash portSize=`netstat -ntlp|grep 3306| wc -l` echo "端口出现的次数$portSize" if [ $portSize -gt 0 ] then echo "mysql状态正常" exit 0 else echo "mysql状态异常" exit 1 fi |
-
- mysql的slaveNode配置
-
-
- 不同的脚本
-
vi /root/check_mysql.sh #!/bin/bash portSize=`netstat -ntlp|grep 3306| wc -l` echo "端口出现的次数$portSize" if [ $portSize -gt 0 ] then echo "mysql状态正常" exit 0 else echo "mysql状态异常" exit 1 fi |
-
-
- 设置执行权限
-
cd /root/ chmod 700 *.sh |
-
- mainNode的keepalived.conf配置
! Configuration File for keepalived global_defs { router_id xswhHA #同一个网段不同的高可用不一样,同一个高可用要一样 script_user root #默认执行用户 enable_script_security } #检查redis状态 vrrp_script check_redis { script "/root/check_redis.sh" interval 1 weight -20 } #redis主从切换 vrrp_instance vi_redis { state MASTER #从机要配置为BACKUP interface ens33 virtual_router_id 101 #同一个网段不同的高可用不一样,同一个高可用要一样 priority 100 #从机配置成90 advert_int 1 nopreempt authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.36.144 } track_script { check_redis } notify_master "/root/redis_master.sh" notify_backup "/root/redis_backup.sh" notify_fault "/root/redis_backup.sh" notify_stop "/root/redis_backup.sh" } #minio状态检查 vrrp_script check_minio { script "/root/check_minio.sh" interval 1 weight -20 } #minio主从切换 vrrp_instance vi_minio { state MASTER #从机要配置为BACKUP interface ens33 virtual_router_id 102 #同一个网段不同的高可用不一样,同一个高可用要一样 priority 100 #从机配置成90 advert_int 1 nopreempt authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.36.145 } track_script { check_minio } } #mysql状态检查 vrrp_script check_mysql { script "/root/check_mysql.sh" interval 1 weight -20 } #mysql主从切换 vrrp_instance vi_mysql { state MASTER #从机要配置为BACKUP interface ens33 virtual_router_id 103 #同一个网段不同的高可用不一样,同一个高可用要一样 priority 100 #从机配置成90 advert_int 1 nopreempt authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.36.143 } track_script { check_mysql } } |
-
- slaveNode的keepalived.conf配置
! Configuration File for keepalived global_defs { router_id xswhHA #同一个网段不同的高可用不一样,同一个高可用要一样 script_user root #默认执行用户 enable_script_security } #检查redis状态 vrrp_script check_redis { script "/root/check_redis.sh" interval 1 weight -20 } #redis主从切换 vrrp_instance vi_redis { state BACKUP #从机要配置为BACKUP interface ens33 virtual_router_id 101 #同一个网段不同的高可用不一样,同一个高可用要一样 priority 90 #从机配置成90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.36.144 } track_script { check_redis } notify_master "/root/redis_master.sh" notify_backup "/root/redis_backup.sh" notify_fault "/root/redis_backup.sh" notify_stop "/root/redis_backup.sh" } #minio状态检查 vrrp_script check_minio { script "/root/check_minio.sh" interval 1 weight -20 } #minio主从切换 vrrp_instance vi_minio { state BACKUP #从机要配置为BACKUP interface ens33 virtual_router_id 102 #同一个网段不同的高可用不一样,同一个高可用要一样 priority 90 #从机配置成90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.36.145 } track_script { check_minio } } #mysql状态检查 vrrp_script check_mysql { script "/root/check_mysql.sh" interval 1 weight -20 } #mysql主从切换 vrrp_instance vi_mysql { state BACKUP #从机要配置为BACKUP interface ens33 virtual_router_id 103 #同一个网段不同的高可用不一样,同一个高可用要一样 priority 90 #从机配置成90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.36.143 } track_script { check_mysql } } |
-
- 重新重启mainNode的keepalived并查询日志
systemctl restart keepalived tail -f /var/log/messages |
-
- 重启mainNode的keepalived并查询日志
systemctl restart keepalived tail -f /var/log/messages |
-
- redis主节点崩溃
- 启动主节点redis应用
- redis主节点崩溃
./startRedis.sh |
-
-
- 登录redis服务器
-
/data/redis/redis/bin/redis-cli -p 6379 -a 123456 |
-
-
- 将崩溃的主库设置为从库
-
slaveof 192.168.36.142 6379 replicaof 192.168.36.142 6379 |
-
-
- 查询主备配置
-
info replication |
-
- minio主节点崩溃
- 关闭mainNode同步程序,千万不要开启这个,否则数据会出错
- minio主节点崩溃
ps -ef|grep mc ./mc mirror --remove --overwrite --watch xswhminio1 xswhminio2 kill -9 |
-
-
- 启动mainNode上面的minio
-
./startMinio.sh |
-
-
- 启动slaveNode上面的同步程序【主从正常的情况下不要启动从库的同步程序】
-
./sync.sh |
-
- mysql主节点崩溃
- 重新启动主节点程序
- mysql主节点崩溃
/data/mysql/mysql/support-files/mysql.server start |
-
-
- 启动mainNode上的主从
-
mysql -uroot -p start slave; |
-
-
- mainNode查询主备状态
-
show slave status\G; |
-
-
- 在slaveNode查询主备状态
-
show slave status\G; |
-
-
- 如果主备状态都为下面则正常
-
Slave_IO_Running: Yes Slave_SQL_Running: Yes |