1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
| (1) 停止redis master # shutdown -h now
(2) 查看sentinel日志 [redis@sentinel01 ~]$ tail -500f /usr/local/redis/sentinel.log 7309:X 07 Apr 2024 11:26:24.465 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 7309:X 07 Apr 2024 11:26:24.465 # Redis version=6.2.4, bits=64, commit=00000000, modified=0, pid=7309, just started 7309:X 07 Apr 2024 11:26:24.465 # Configuration loaded 7309:X 07 Apr 2024 11:26:24.466 * monotonic clock: POSIX clock_gettime 7309:X 07 Apr 2024 11:26:24.475 * Running mode=sentinel, port=26379. 7309:X 07 Apr 2024 11:26:24.492 # Sentinel ID is 942afea1497531690ea10b6b73da821329f6e475 7309:X 07 Apr 2024 11:26:24.492 # +monitor master mymaster 127.0.0.1 6379 quorum 2 7309:X 07 Apr 2024 11:26:24.493 # +monitor master master 192.168.1.135 1314 quorum 2 7309:X 07 Apr 2024 11:26:24.525 * +slave slave 192.168.1.136:1314 192.168.1.136 1314 @ master 192.168.1.135 1314 7309:X 07 Apr 2024 11:26:24.526 * +slave slave 192.168.1.137:1314 192.168.1.137 1314 @ master 192.168.1.135 1314 7309:X 07 Apr 2024 11:26:26.479 * +sentinel sentinel cca82494b29ba27dfa17ea5e45b9aba29db79de6 192.168.1.140 26379 @ master 192.168.1.135 1314 7309:X 07 Apr 2024 11:26:26.523 * +sentinel sentinel db5123fd74bcd084a39e40188c4eef741181fa59 192.168.1.139 26379 @ master 192.168.1.135 1314 7309:X 07 Apr 2024 11:26:54.491 # +sdown master mymaster 127.0.0.1 6379 7309:X 07 Apr 2024 11:58:43.077 # +sdown master master 192.168.1.135 1314 7309:X 07 Apr 2024 11:58:43.137 # +odown master master 192.168.1.135 1314 #quorum 2/2 7309:X 07 Apr 2024 11:58:43.137 # +new-epoch 1 7309:X 07 Apr 2024 11:58:43.137 # +try-failover master master 192.168.1.135 1314 7309:X 07 Apr 2024 11:58:43.143 # +vote-for-leader 942afea1497531690ea10b6b73da821329f6e475 1 7309:X 07 Apr 2024 11:58:43.148 # db5123fd74bcd084a39e40188c4eef741181fa59 voted for 942afea1497531690ea10b6b73da821329f6e475 1 7309:X 07 Apr 2024 11:58:43.149 # cca82494b29ba27dfa17ea5e45b9aba29db79de6 voted for 942afea1497531690ea10b6b73da821329f6e475 1 7309:X 07 Apr 2024 11:58:43.214 # +elected-leader master master 192.168.1.135 1314 7309:X 07 Apr 2024 11:58:43.214 # +failover-state-select-slave master master 192.168.1.135 1314 7309:X 07 Apr 2024 11:58:43.273 # +selected-slave slave 192.168.1.137:1314 192.168.1.137 1314 @ master 192.168.1.135 1314 7309:X 07 Apr 2024 11:58:43.274 * +failover-state-send-slaveof-noone slave 192.168.1.137:1314 192.168.1.137 1314 @ master 192.168.1.135 1314 7309:X 07 Apr 2024 11:58:43.350 * +failover-state-wait-promotion slave 192.168.1.137:1314 192.168.1.137 1314 @ master 192.168.1.135 1314 7309:X 07 Apr 2024 11:58:43.859 # +promoted-slave slave 192.168.1.137:1314 192.168.1.137 1314 @ master 192.168.1.135 1314 7309:X 07 Apr 2024 11:58:43.859 # +failover-state-reconf-slaves master master 192.168.1.135 1314 7309:X 07 Apr 2024 11:58:43.859 * +slave-reconf-sent slave 192.168.1.136:1314 192.168.1.136 1314 @ master 192.168.1.135 1314 7309:X 07 Apr 2024 11:58:44.268 # -odown master master 192.168.1.135 1314 7309:X 07 Apr 2024 11:58:44.868 * +slave-reconf-inprog slave 192.168.1.136:1314 192.168.1.136 1314 @ master 192.168.1.135 1314 7309:X 07 Apr 2024 11:58:44.868 * +slave-reconf-done slave 192.168.1.136:1314 192.168.1.136 1314 @ master 192.168.1.135 1314 7309:X 07 Apr 2024 11:58:44.957 # +failover-end master master 192.168.1.135 1314 7309:X 07 Apr 2024 11:58:44.957 # +switch-master master 192.168.1.135 1314 192.168.1.137 1314 7309:X 07 Apr 2024 11:58:44.958 * +slave slave 192.168.1.136:1314 192.168.1.136 1314 @ master 192.168.1.137 1314 7309:X 07 Apr 2024 11:58:44.958 * +slave slave 192.168.1.135:1314 192.168.1.135 1314 @ master 192.168.1.137 1314 7309:X 07 Apr 2024 11:58:55.021 # +sdown slave 192.168.1.135:1314 192.168.1.135 1314 @ master 192.168.1.137 1314
从下面日志可以看出主节点从192.168.1.135切换为192.168.1.137,另外从节点192.168.1.136和故障主节点192.168.1.135自动指向新主 7309:X 07 Apr 2024 11:58:44.957 # +switch-master master 192.168.1.135 1314 192.168.1.137 1314 7309:X 07 Apr 2024 11:58:44.958 * +slave slave 192.168.1.136:1314 192.168.1.136 1314 @ master 192.168.1.137 1314 7309:X 07 Apr 2024 11:58:44.958 * +slave slave 192.168.1.135:1314 192.168.1.135 1314 @ master 192.168.1.137 1314
(3)查看新的主从状态 $ redis-cli -p 1314 -h 192.168.1.137 -a 123456 info replication Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # Replication role:master connected_slaves:1 min_slaves_good_slaves:1 slave0:ip=192.168.1.136,port=1314,state=online,offset=482569,lag=1 master_failover_state:no-failover master_replid:96d2a6abd7cac7a4d5e6fc3ab0499e73de08aed2 master_replid2:5ac13b7e033257918adf008129bc038932e92b5a master_repl_offset:482708 second_repl_offset:403063 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:15 repl_backlog_histlen:482694
$ redis-cli -p 1314 -h 192.168.1.136 -a 123456 info replication Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # Replication role:slave master_host:192.168.1.137 master_port:1314 master_link_status:up master_last_io_seconds_ago:1 master_sync_in_progress:0 slave_repl_offset:487754 slave_priority:100 slave_read_only:1 replica_announced:1 connected_slaves:0 min_slaves_good_slaves:0 master_failover_state:no-failover master_replid:96d2a6abd7cac7a4d5e6fc3ab0499e73de08aed2 master_replid2:5ac13b7e033257918adf008129bc038932e92b5a master_repl_offset:487754 second_repl_offset:403063 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:487754
192.168.1.137:1314> keys * 1) "bar" 2) "test" 3) "qq" 192.168.1.137:1314> 192.168.1.137:1314> 192.168.1.137:1314> set sentinel 1 OK 192.168.1.137:1314> keys * 1) "sentinel" 2) "bar" 3) "test" 4) "qq"
$ redis-cli -p 1314 -h 192.168.1.136 -a 123456 keys * Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 1) "bar" 2) "test" 3) "qq" 4) "sentinel"
此时重新将旧的故障主库重新开机,旧的故障主库会成为从库 [redis@sentinel02 ~]$ redis-cli -p 26379 -h 192.168.1.139 info
# Sentinel sentinel_masters:2 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=mymaster,status=sdown,address=127.0.0.1:6379,slaves=0,sentinels=1 master1:name=master,status=ok,address=192.168.1.137:1314,slaves=2,sentinels=3
[redis@slave02 ~]$ redis-cli -p 1314 -h 192.168.1.137 -a 123456 info replication Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # Replication role:master connected_slaves:2 min_slaves_good_slaves:2 slave0:ip=192.168.1.136,port=1314,state=online,offset=569950,lag=1 slave1:ip=192.168.1.135,port=1314,state=online,offset=569950,lag=0 master_failover_state:no-failover master_replid:96d2a6abd7cac7a4d5e6fc3ab0499e73de08aed2 master_replid2:5ac13b7e033257918adf008129bc038932e92b5a master_repl_offset:570089 second_repl_offset:403063 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:15 repl_backlog_histlen:570075
|