(进阶篇)Redis6.2.0 集群 哨兵模式_故障转移_03
生活随笔
收集整理的這篇文章主要介紹了
(进阶篇)Redis6.2.0 集群 哨兵模式_故障转移_03
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 一、前置準(zhǔn)備
- 啟動(dòng)redis服務(wù)
- 啟動(dòng)sentinel服務(wù)
- 查看sentiel啟動(dòng)日志
- 二、實(shí)戰(zhàn)故障轉(zhuǎn)移
- 2.1. 主節(jié)點(diǎn)停止
- 2.2. Sentienl監(jiān)控日志
- 2.3. 節(jié)點(diǎn)信息監(jiān)控
- 2.4. 故障轉(zhuǎn)移后變化
- 2.5. 重新啟動(dòng)
- 2.6. sentine日志
- 2.7. 節(jié)點(diǎn)信息監(jiān)控
- 2.8. 配置文件變化
- 2.9. 讀寫驗(yàn)證
一、前置準(zhǔn)備
啟動(dòng)redis服務(wù)
# 查看redis進(jìn)程 ps -ef |grep redis# 啟動(dòng)redis服務(wù) /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf#查看主從節(jié)點(diǎn)信息 /usr/local/redis/bin/redis-cli -a 123456 info replication啟動(dòng)sentinel服務(wù)
聲明:在啟動(dòng)3個(gè)redis服務(wù)的前提下,再依次啟動(dòng)3個(gè)sentinel服務(wù)
/usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/sentiel.conf查看sentiel啟動(dòng)日志
tail -f /usr/local/redis/log/sentinel.log二、實(shí)戰(zhàn)故障轉(zhuǎn)移
2.1. 主節(jié)點(diǎn)停止
[root@bigdata01 redis-6.2.0]# /usr/local/redis/bin/redis-cli -a 123456 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 127.0.0.1:6379> info replcation 127.0.0.1:6379> info replication # Replication role:master connected_slaves:2 slave0:ip=xxx.xxx.92.101,port=6379,state=online,offset=3xxx,lag=1 slave1:ip=xxx.xxx.92.102,port=6379,state=online,offset=3xxx,lag=1 master_failover_state:no-failover master_replid:4f07bacde969998356194ad698c6dd7e2f6f7da2 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:3xxx second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1391 repl_backlog_histlen:1778 127.0.0.1:6379> SHUTDOWN not connected>2.2. Sentienl監(jiān)控日志
mymaster 主節(jié)點(diǎn) xxx.xxx.92.100 6379 被添加主觀下線標(biāo)記,其他的sentinel每秒一次和xxx.xxx.92.100 6379的通信 # +sdown master mymaster xxx.xxx.92.100 6379 啟動(dòng)一個(gè)新選舉流程,記錄當(dāng)前選舉的次數(shù) # +new-epoch 1 投票選舉一個(gè)sentinel去做故障轉(zhuǎn)移這件事 # +vote-for-leader a20913bfcbeb3a5d8d58ce1bd372cc40455xxx10 1 客觀下線:當(dāng)前環(huán)境內(nèi)多個(gè)sentinel節(jié)點(diǎn)對(duì)我們的某一個(gè)服務(wù)器標(biāo)記為主觀下線,滿足quorum 仲裁的選項(xiàng)值之后,標(biāo)記為客觀下線 # +odown master mymaster xxx.xxx.92.100 6379 #quorum 3/2 # Next failover delay: I will not start a failover before Sun Jul 4 22:39:56 2021 # +config-update-from sentinel a20913bfcbeb3a5d8d58ce1bd372cc40455xxx10 xxx.xxx.92.1026379 # +switch-master mymaster xxx.xxx.92.100 6379 xxx.xxx.92.101 6379 * +slave slave xxx.xxx.92.102:6379 xxx.xxx.92.102 6379 @ mymaster xxx.xxx.92.101 6379 * +slave slave xxx.xxx.92.100:6379 xxx.xxx.92.100 6379 @ mymaster xxx.xxx.92.101 6379 # +sdown slave xxx.xxx.92.100:6379 xxx.xxx.92.100 6379 @ mymaster xxx.xxx.92.101 63792.3. 節(jié)點(diǎn)信息監(jiān)控
查看故障轉(zhuǎn)移后的節(jié)點(diǎn)信息
01節(jié)點(diǎn)信息
02節(jié)點(diǎn)信息
[root@bigdata03 ~]# /usr/local/redis/bin/redis-cli -a 123456 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 127.0.0.1:6379> info replication # Replication role:slave master_host:xxx.xxx.92.100 master_port:6379 master_link_status:up master_last_io_seconds_ago:4 master_sync_in_progress:0 slave_repl_offset:3210 slave_priority:100 slave_read_only:1 connected_slaves:0 master_failover_state:no-failover master_replid:4f07bacde969998356194ad698c6dd7e2f6f7da2 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:3210 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1433 repl_backlog_histlen:1778# 故障轉(zhuǎn)移后 ------------------------------------------------------------------- 127.0.0.1:6379> info replication # Replication role:slave master_host:xxx.xxx.92.101 master_port:6379 master_link_status:up master_last_io_seconds_ago:0 master_sync_in_progress:0 slave_repl_offset:381546 slave_priority:100 slave_read_only:1 connected_slaves:0 master_failover_state:no-failover master_replid:424069affa171e62af3e2c65a2ee1cb27ecb6c2f master_replid2:4f07bacde969998356194ad698c6dd7e2f6f7da2 master_repl_offset:381546 second_repl_offset:156702 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1433 repl_backlog_histlen:380114 127.0.0.1:6379>2.4. 故障轉(zhuǎn)移后變化
01節(jié)點(diǎn)由slave節(jié)點(diǎn)變成了master節(jié)點(diǎn),02仍然后slave節(jié)點(diǎn)
2.5. 重新啟動(dòng)
故障的 100節(jié)點(diǎn)(原主節(jié)點(diǎn))重新啟動(dòng)
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf2.6. sentine日志
* +convert-to-slave slave xxx.xxx.92.100:6379 xxx.xxx.92.100 6379 @ mymaster xxx.xxx.92.101 63792.7. 節(jié)點(diǎn)信息監(jiān)控
[root@bigdata01 redis-6.2.0]# /usr/local/redis/bin/redis-cli -a 123456 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 127.0.0.1:6379> info replication # Replication role:slave master_host:xxx.xxx.92.101 master_port:6379 master_link_status:up master_last_io_seconds_ago:0 master_sync_in_progress:0 slave_repl_offset:528510 slave_priority:100 slave_read_only:1 connected_slaves:0 master_failover_state:no-failover master_replid:424069affa171e62af3e2c65a2ee1cb27ecb6c2f master_replid2:0000000000000000000000000000000000000000 master_repl_offset:528510 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:518136 repl_backlog_histlen:10375 127.0.0.1:6379>01節(jié)點(diǎn)信息
[root@bigdata02 ~]# /usr/local/redis/bin/redis-cli -a 123456 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 127.0.0.1:6379> info replication # Replication role:slave master_host:xxx.xxx.92.100 master_port:6379 master_link_status:up master_last_io_seconds_ago:6 master_sync_in_progress:0 slave_repl_offset:3196 slave_priority:100 slave_read_only:1 connected_slaves:0 master_failover_state:no-failover master_replid:4f07bacde969998356194ad698c6dd7e2f6f7da2 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:3196 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1391 repl_backlog_histlen:1806# 故障轉(zhuǎn)移后 ------------------------------------------------------------------- 127.0.0.1:6379> info replication # Replication role:master connected_slaves:1 slave0:ip=xxx.xxx.92.102,port=6379,state=online,offset=380674,lag=1 master_failover_state:no-failover master_replid:424069affa171e62af3e2c65a2ee1cb27ecb6c2f master_replid2:4f07bacde969998356194ad698c6dd7e2f6f7da2 master_repl_offset:380674 second_repl_offset:156702 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1391 repl_backlog_histlen:379284#原主節(jié)點(diǎn)重新啟動(dòng)后 ------------------------------------------------------------------- 127.0.0.1:6379> info replication # Replication role:master connected_slaves:2 slave0:ip=xxx.xxx.92.102,port=6379,state=online,offset=537589,lag=1 slave1:ip=xxx.xxx.92.100,port=6379,state=online,offset=537732,lag=0 master_failover_state:no-failover master_replid:424069affa171e62af3e2c65a2ee1cb27ecb6c2f master_replid2:4f07bacde969998356194ad698c6dd7e2f6f7da2 master_repl_offset:537875 second_repl_offset:156702 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1391 repl_backlog_histlen:536485 127.0.0.1:6379>02節(jié)點(diǎn)信息
[root@bigdata03 ~]# /usr/local/redis/bin/redis-cli -a 123456 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 127.0.0.1:6379> info replication # Replication role:slave master_host:xxx.xxx.92.100 master_port:6379 master_link_status:up master_last_io_seconds_ago:4 master_sync_in_progress:0 slave_repl_offset:3210 slave_priority:100 slave_read_only:1 connected_slaves:0 master_failover_state:no-failover master_replid:4f07bacde969998356194ad698c6dd7e2f6f7da2 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:3210 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1433 repl_backlog_histlen:1778# 故障轉(zhuǎn)移后 ------------------------------------------------------------------- 127.0.0.1:6379> info replication # Replication role:slave master_host:xxx.xxx.92.101 master_port:6379 master_link_status:up master_last_io_seconds_ago:0 master_sync_in_progress:0 slave_repl_offset:381546 slave_priority:100 slave_read_only:1 connected_slaves:0 master_failover_state:no-failover master_replid:424069affa171e62af3e2c65a2ee1cb27ecb6c2f master_replid2:4f07bacde969998356194ad698c6dd7e2f6f7da2 master_repl_offset:381546 second_repl_offset:156702 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1433 repl_backlog_histlen:380114#原主節(jié)點(diǎn)重新啟動(dòng)后 ------------------------------------------------------------------- 127.0.0.1:6379> info replication # Replication role:slave master_host:xxx.xxx.92.101 master_port:6379 master_link_status:up master_last_io_seconds_ago:0 master_sync_in_progress:0 slave_repl_offset:556005 slave_priority:100 slave_read_only:1 connected_slaves:0 master_failover_state:no-failover master_replid:424069affa171e62af3e2c65a2ee1cb27ecb6c2f master_replid2:4f07bacde969998356194ad698c6dd7e2f6f7da2 master_repl_offset:556005 second_repl_offset:156702 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1433 repl_backlog_histlen:554573 127.0.0.1:6379>2.8. 配置文件變化
原100主節(jié)點(diǎn)
# 放行訪問IP的限制 多個(gè)用空格隔開 # 0.0.0.0 代表無限制 bind 0.0.0.0# 后臺(tái)啟動(dòng)開啟 daemonize yes# 日志存儲(chǔ)目錄以及日志文件名 logfile "/usr/local/redis/log/redis.log"# rdb數(shù)據(jù)文件名 dbfilename "dump.rdb"# aof模式開啟 appendonly no# aof數(shù)據(jù)文件名 appendfilename "appendonly.aof"#rdb數(shù)據(jù)文件和aof數(shù)據(jù)文件存儲(chǔ)目錄 dir "/usr/local/redis/data"# 設(shè)置密碼 requirepass 123456# 從節(jié)點(diǎn)訪問主節(jié)點(diǎn)的密碼(必須和requirepass 一致) masterauth "123456"#從節(jié)點(diǎn)只讀模式 replica-read-only yes # Generated by CONFIG REWRITE pidfile "/var/run/redis.pid" save 3600 1 save 300 100 save 60 10000 user default on #8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 ~* &* +@all replicaof xxx.xxx.92.101 6379變化:最下面添加了主節(jié)點(diǎn)信息
原01節(jié)點(diǎn)
# 放行訪問IP的限制 多個(gè)用空格隔開 # 0.0.0.0 代表無限制 bind 0.0.0.0# 后臺(tái)啟動(dòng)開啟 daemonize yes# 日志存儲(chǔ)目錄以及日志文件名 logfile "/usr/local/redis/log/redis.log"# rdb數(shù)據(jù)文件名 dbfilename "dump.rdb"# aof模式開啟 appendonly no# aof數(shù)據(jù)文件名 appendfilename "appendonly.aof"#rdb數(shù)據(jù)文件和aof數(shù)據(jù)文件存儲(chǔ)目錄 dir "/usr/local/redis/data"# 設(shè)置密碼 requirepass 123456# 從節(jié)點(diǎn)訪問主節(jié)點(diǎn)的密碼(必須和requirepass 一致) masterauth "123456"#從節(jié)點(diǎn)只讀模式 replica-read-only yes# 從節(jié)點(diǎn)從屬于那個(gè)主節(jié)點(diǎn)# Generated by CONFIG REWRITE pidfile "/var/run/redis.pid" save 3600 1 save 300 100 save 60 10000 user default on #8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 ~* &* +@all變化:原來配置的主節(jié)點(diǎn)信息沒了
02節(jié)點(diǎn)信息
# 放行訪問IP的限制 多個(gè)用空格隔開 # 0.0.0.0 代表無限制 bind 0.0.0.0# 后臺(tái)啟動(dòng)開啟 daemonize yes# 日志存儲(chǔ)目錄以及日志文件名 logfile "/usr/local/redis/log/redis.log"# rdb數(shù)據(jù)文件名 dbfilename "dump.rdb"# aof模式開啟 appendonly no# aof數(shù)據(jù)文件名 appendfilename "appendonly.aof"#rdb數(shù)據(jù)文件和aof數(shù)據(jù)文件存儲(chǔ)目錄 dir "/usr/local/redis/data"# 設(shè)置密碼 requirepass 123456# 從節(jié)點(diǎn)訪問主節(jié)點(diǎn)的密碼(必須和requirepass 一致) masterauth "123456"#從節(jié)點(diǎn)只讀模式 replica-read-only yes# 從節(jié)點(diǎn)從屬于那個(gè)主節(jié)點(diǎn) replicaof xxx.xxx.92.101 6379 # Generated by CONFIG REWRITE pidfile "/var/run/redis.pid" save 3600 1 save 300 100 save 60 10000 user default on #8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 ~* &* +@all2.9. 讀寫驗(yàn)證
# 登陸redis客戶端 /usr/local/redis/bin/redis-cli --user default --pass 123456 #故障轉(zhuǎn)移后的100機(jī)器現(xiàn)在為slave節(jié)點(diǎn),可讀不可寫 [root@bigdata01 redis-6.2.0]# /usr/local/redis/bin/redis-cli --user default --pass 123456 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 127.0.0.1:6379> set name lisi (error) READONLY You can't write against a read only replica. 127.0.0.1:6379> #故障轉(zhuǎn)移后的101機(jī)器現(xiàn)在為master節(jié)點(diǎn),可以讀寫 [root@bigdata02 ~]# /usr/local/redis/bin/redis-cli --user default --pass 123456 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 127.0.0.1:6379> set name lisi OK 127.0.0.1:6379> get name "lisi" 127.0.0.1:6379> #故障轉(zhuǎn)移后的102機(jī)器現(xiàn)在為slave節(jié)點(diǎn),可讀不可寫 [root@bigdata03 ~]# /usr/local/redis/bin/redis-cli --user default --pass 123456 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 127.0.0.1:6379> set name wangwu (error) READONLY You can't write against a read only replica. 127.0.0.1:6379> get name "lisi" 127.0.0.1:6379>總結(jié)
以上是生活随笔為你收集整理的(进阶篇)Redis6.2.0 集群 哨兵模式_故障转移_03的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: echarts 中 symbol 自定义
- 下一篇: mybatisplus 一次性执行多条S