{
  "schema_version": 2,
  "id": "operate/rs/references/cli-utilities/rladmin/node/maintenance-mode",
  "title": "rladmin node maintenance_mode",
  "url": "https://redis.io/docs/latest/operate/rs/references/cli-utilities/rladmin/node/maintenance-mode/",
  "summary": "Turns quorum-only mode on or off for a node.",
  "tags": [
    "docs",
    "operate",
    "rs"
  ],
  "last_updated": "2026-09-24T10:14:21+01:00",
  "page_type": "content",
  "content_hash": "2715cd330732f0d21d6b2f3bd0cdc4196cbbe4bc7717e7664bf22210094cb3df",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "Configures [quorum-only mode](https://redis.io/docs/latest/operate/rs/clusters/maintenance-mode#activate-maintenance-mode) on a node."
    },
    {
      "id": "node-maintenance_mode-on",
      "title": "`node maintenance_mode on`",
      "role": "content",
      "text": "Migrates shards out of the node and turns the node into a quorum node to prevent shards from returning to it.\n\n[code example]"
    },
    {
      "id": "parameters",
      "title": "Parameters",
      "role": "parameters",
      "text": "| Parameter             | Type/Value                     | Description                                                                               |\n|-----------------------|--------------------------------|-------------------------------------------------------------------------------------------|\n| node                  | integer                        | Turns the specified node into a quorum node                                              |\n| demote_node           |                                | If the node is a primary node, changes the node to replica                                |\n| evict_ha_replica | `enabled`<br />`disabled` | Migrates the HA replica shards in the node |\n| evict_active_active_replica | `enabled`<br />`disabled` | Migrates the Active-Active replica shards in the node |\n| evict_dbs | list of database names or IDs | Specify databases whose shards should be evicted from the node when entering maintenance mode.<br /><br />Examples:<br />`$ rladmin node 1 maintenance_mode on evict_dbs db:1 db:2`<br />`$ rladmin node 1 maintenance_mode on evict_dbs db_name1 db_name2` |\n| keep_slave_shards     |                                | Keeps replica shards in the node and demotes primary shards to replicas.<br /><br />Deprecated as of Redis Software 7.4.2. Use `evict_ha_replica disabled evict_active_active_replica disabled` instead. |\n| max_concurrent_actions | integer | Maximum number of concurrent actions during node maintenance |\n| overwrite_snapshot | | Overwrites the latest existing node snapshot taken when enabling maintenance mode |"
    },
    {
      "id": "returns",
      "title": "Returns",
      "role": "returns",
      "text": "Returns `OK` if the node was converted successfully. If the cluster does not have enough resources to migrate the shards, the process returns a warning.\n\nUse [`rladmin status nodes`](https://redis.io/docs/latest/operate/rs/references/cli-utilities/rladmin/status#status-nodes) to verify the node became a quorum node."
    },
    {
      "id": "example",
      "title": "Example",
      "role": "example",
      "text": "[code example]"
    },
    {
      "id": "node-maintenance_mode-off",
      "title": "`node maintenance_mode off`",
      "role": "content",
      "text": "Turns maintenance mode off and returns the node to its previous state.\n\n[code example]"
    },
    {
      "id": "parameters-1",
      "title": "Parameters",
      "role": "parameters",
      "text": "| Parameter             | Type/Value                     | Description                                                                               |\n|-----------------------|--------------------------------|-------------------------------------------------------------------------------------------|\n| node                  | integer                        | Restores the node back to the previous state                                              |\n| max_concurrent_actions | integer | Maximum number of concurrent actions during node maintenance |\n| skip_shards_restore   |                                | Does not restore shards back to the node                                                  |\n| snapshot_name         | string                         | Restores the node back to a state stored in the specified snapshot                        |"
    },
    {
      "id": "returns-1",
      "title": "Returns",
      "role": "returns",
      "text": "Returns `OK` if the node was restored successfully.\n\nUse [`rladmin status nodes`](https://redis.io/docs/latest/operate/rs/references/cli-utilities/rladmin/status#status-nodes) to verify the node was restored."
    },
    {
      "id": "example-1",
      "title": "Example",
      "role": "example",
      "text": "[code example]"
    }
  ],
  "examples": [
    {
      "id": "node-maintenance_mode-on-ex0",
      "language": "sh",
      "code": "rladmin node <ID> maintenance_mode on\n        [ keep_slave_shards ]\n        [ evict_ha_replica { enabled | disabled } ]\n        [ evict_active_active_replica { enabled | disabled } ]\n        [ evict_dbs <list of database names or IDs> ]\n        [ demote_node ]\n        [ overwrite_snapshot ]\n        [ max_concurrent_actions <integer> ]",
      "section_id": "node-maintenance_mode-on"
    },
    {
      "id": "example-ex0",
      "language": "sh",
      "code": "$ rladmin node 2 maintenance_mode on overwrite_snapshot\nFound snapshot from 2024-01-06T11:36:47Z, overwriting the snapshot\nPerforming maintenance_on action on node:2: 0%\ncreated snapshot NodeSnapshot<name=maintenance_mode_2024-01-11_20-25-37,time=None,node_uid=2>\n\nnode:2 will not accept any more shards\nPerforming maintenance_on action on node:2: 100%\nOK\n$ rladmin status nodes\nCLUSTER NODES:\nNODE:ID ROLE   ADDRESS    EXTERNAL_ADDRESS  HOSTNAME     SHARDS CORES       FREE_RAM         PROVISIONAL_RAM  VERSION   STATUS\n*node:1 master 192.0.2.12 198.51.100.1      3d99db1fdf4b 5/100  6           14.21GB/19.54GB  10.62GB/16.02GB  6.2.12-37 OK\nnode:2  slave  192.0.2.13 198.51.100.2      fc7a3d332458 0/0    6           14.21GB/19.54GB  0KB/0KB          6.2.12-37 OK\nnode:4  slave  192.0.2.14                   6d754fe12cb9 5/100  6           14.21GB/19.54GB  10.62GB/16.02GB  6.2.12-37 OK",
      "section_id": "example"
    },
    {
      "id": "node-maintenance_mode-off-ex0",
      "language": "sh",
      "code": "rladmin node <ID> maintenance_mode off\n        [ { snapshot_name <name> | skip_shards_restore } ]\n        [ max_concurrent_actions <integer> ]",
      "section_id": "node-maintenance_mode-off"
    },
    {
      "id": "example-1-ex0",
      "language": "sh",
      "code": "$ rladmin node 2 maintenance_mode off\nPerforming maintenance_off action on node:2: 0%\nFound snapshot: NodeSnapshot<name=maintenance_mode_2022-05-12_20-25-37,time=2022-05-12T20:25:37Z,node_uid=2>\nPerforming maintenance_off action on node:2: 0%\nmigrate redis:12 to node:2: executing\nPerforming maintenance_off action on node:2: 0%\nmigrate redis:12 to node:2: finished\nPerforming maintenance_off action on node:2: 0%\nmigrate redis:17 to node:2: executing\n\nmigrate redis:15 to node:2: executing\nPerforming maintenance_off action on node:2: 0%\nmigrate redis:17 to node:2: finished\n\nmigrate redis:15 to node:2: finished\nPerforming maintenance_off action on node:2: 0%\nfailover redis:16: executing\n\nfailover redis:14: executing\nPerforming maintenance_off action on node:2: 0%\nfailover redis:16: finished\n\nfailover redis:14: finished\nPerforming maintenance_off action on node:2: 0%\nfailover redis:18: executing\nPerforming maintenance_off action on node:2: 0%\nfailover redis:18: finished\n\nmigrate redis:21 to node:2: executing\n\nmigrate redis:19 to node:2: executing\nPerforming maintenance_off action on node:2: 0%\nmigrate redis:21 to node:2: finished\n\nmigrate redis:19 to node:2: finished\n\nfailover redis:20: executing\nPerforming maintenance_off action on node:2: 0%\nfailover redis:20: finished\nPerforming maintenance_off action on node:2: 0%\nrebind endpoint:6:1: executing\nPerforming maintenance_off action on node:2: 0%\nrebind endpoint:6:1: finished\nPerforming maintenance_off action on node:2: 100%\nOK\n$ rladmin status nodes\nCLUSTER NODES:\nNODE:ID ROLE   ADDRESS    EXTERNAL_ADDRESS  HOSTNAME      SHARDS CORES       FREE_RAM        PROVISIONAL_RAM  VERSION   STATUS\n*node:1 master 192.0.2.12 198.51.100.1      3d99db1fdf4b  5/100  6           14.2GB/19.54GB  10.61GB/16.02GB  6.2.12-37 OK    \nnode:2  slave  192.0.2.13 198.51.100.2      fc7a3d332458  5/100  6           14.2GB/19.54GB  10.61GB/16.02GB  6.2.12-37 OK    \nnode:4  slave  192.0.2.14                   6d754fe12cb9  0/100  6           14.2GB/19.54GB  10.69GB/16.02GB  6.2.12-37 OK",
      "section_id": "example-1"
    }
  ]
}
