cockroach node with the appropriate subcommands and flags.
The cockroach node command is also used to stop or remove nodes from the cluster. For details, see .
Subcommands
| Subcommand | Usage |
|---|---|
ls | List the ID of each node in the cluster, excluding those that have been decommissioned and are offline. |
status | View the status of one or all nodes, excluding nodes that have been decommissioned and taken offline. Depending on flags used, this can include details about range/replicas, disk usage, and decommissioning progress. |
decommission | Decommission nodes for removal from the cluster. For more information, see Decommission nodes. |
recommission | Recommission nodes that are decommissioning. If the decommissioning node has already reached the , you may need to restart the node after it is recommissioned. For details, see . |
drain | Drain nodes in preparation for process termination. Draining always occurs when sending a termination signal or decommissioning a node. The drain subcommand is used to drain nodes without also decommissioning or shutting them down. For details, see . |
Synopsis
List the IDs of active and inactive nodes:Flags
Allnode subcommands support the following general-use and logging flags.
General
The
node ls subcommand also supports the following general flags:
| Flag | Description |
|---|---|
--timeout | Set the duration of time that the subcommand is allowed to run before it returns an error and prints partial information. The timeout is specified with a suffix of s for seconds, m for minutes, and h for hours. If this flag is not set, the subcommand may hang. |
node status subcommand also supports the following general flags:
| Flag | Description |
|---|---|
--all | Show all node details. |
--decommission | Show node decommissioning details. |
--ranges | Show node details for ranges and replicas. |
--stats | Show node disk usage details. |
--timeout | Set the duration of time that the subcommand is allowed to run before it returns an error and prints partial information. The timeout is specified with a suffix of s for seconds, m for minutes, and h for hours. If this flag is not set, the subcommand may hang. |
node decommission subcommand also supports the following general flags. For more information, see cockroach node decommission --help.
node drain subcommand also supports the following general flags:
| Flag | Description |
|---|---|
--drain-wait | Amount of time to wait for the node to drain before returning to the client. If draining fails to complete within this duration, you must re-initiate the command to continue the drain. A very long drain may indicate an anomaly, and you should manually inspect the server to determine what blocks the drain. CockroachDB automatically increases the verbosity of logging when it detects a stall in the range lease transfer stage of node drain. Messages logged during such a stall include the time an attempt occurred, the total duration stalled waiting for the transfer attempt to complete, and the lease that is being transferred. Default:10m |
--self | Applies the operation to the node against which the command was run (e.g., via --host). |
--shutdown | After draining completes, the cockroach process shuts down automatically on the node. |
node recommission subcommand also supports the following general flag:
| Flag | Description |
|---|---|
--self | Applies the operation to the node against which the command was run (e.g., via --host). |
Client connection
node decommission, node recommission, and node drain subcommands also support the following client connection flags:
| Flag | Description |
|---|---|
--cluster-name | The cluster name to use to verify the cluster’s identity. If the cluster has a cluster name, you must include this flag. For more information, see . |
--disable-cluster-name-verification | Disables the cluster name check for this command. This flag must be paired with --cluster-name. For more information, see . |
Logging
By default, this command logs messages tostderr. This includes events with WARNING and higher.
If you need to troubleshoot this command’s behavior, you can .
Response
Thecockroach node subcommands return the following fields for each node.
node ls
| Field | Description |
|---|---|
id | The ID of the node. |
node status
| Field | Description |
|---|---|
id | The ID of the node. Required flag: None |
address | The address of the node. Required flag: None |
build | The version of CockroachDB running on the node. If the binary was built from source, this will be the SHA hash of the commit used. Required flag: None |
locality | The information specified for the node. Required flag: None |
updated\_at | The date and time when the node last recorded the information displayed in this command’s output. When healthy, a new status should be recorded every 10 seconds or so, but when unhealthy this command’s stats may be much older. Required flag: None |
started\_at | The date and time when the node was started. Required flag: None |
replicas\_leaders | The number of range replicas on the node that are the Raft leader for their range. See replicas\_leaseholders below for more details. Required flag:--ranges or --all |
replicas\_leaseholders | The number of range replicas on the node that are the leaseholder for their range. A “leaseholder” replica handles all read requests for a range and directs write requests to the range’s Raft leader (usually the same replica as the leaseholder). Required flag:--ranges or --all |
ranges | The number of ranges that have replicas on the node. Required flag:--ranges or --all |
ranges\_unavailable | The number of unavailable ranges that have replicas on the node. Required flag:--ranges or --all |
ranges\_underreplicated | The number of underreplicated ranges that have replicas on the node. Required flag:--ranges or --all |
live\_bytes | The amount of live data used by both applications and the CockroachDB system. This excludes historical and deleted data. Required flag:--stats or --all |
key\_bytes | The amount of live and non-live data from keys in the key-value storage layer. This does not include data used by the CockroachDB system. Required flag:--stats or --all |
value\_bytes | The amount of live and non-live data from values in the key-value storage layer. This does not include data used by the CockroachDB system. Required flag:--stats or --all |
intent\_bytes | The amount of non-live data associated with uncommitted (or recently-committed) transactions. Required flag:--stats or --all |
system\_bytes | The amount of data used just by the CockroachDB system. Required flag:--stats or --all |
is\_available | If true, the node is currently available. Required flag: None |
is\_live | If true, the node is currently live. For unavailable clusters (with an unresponsive DB Console), running the node status command and monitoring the is\_live field is the only way to identify the live nodes in the cluster. However, you need to run the node status command on a live node to identify the other live nodes in an unavailable cluster. Figuring out a live node to run the command is a trial-and-error process, so run the command against each node until you get one that responds. See Identify live nodes in an unavailable cluster for more details. Required flag: None |
gossiped\_replicas | The number of replicas on the node that are active members of a range. After the decommissioning process completes, this should be 0. Required flag:--decommission or --all |
is\_decommissioning | If true, the node is either undergoing or has completed the . Required flag:--decommission or --all |
is\_draining | If true, the node is either undergoing or has completed the . Required flag:--decommission or --all |
node decommission
| Field | Description |
|---|---|
id | The ID of the node. |
is\_live | If true, the node is live. |
replicas | The number of replicas on the node that are active members of a range. After the decommissioning process completes, this should be 0. |
is\_decommissioning | If true, the node is either undergoing or has completed the . |
is\_draining | If true, the node is either undergoing or has completed the . |
possible decommission stall detected. , the OPS channel logs output to a cockroach.log file.
node recommission
| Field | Description |
|---|---|
id | The ID of the node. |
is\_live | If true, the node is live. |
replicas | The number of replicas on the node that are active members of a range. After the decommissioning process completes, this should be 0. |
is\_decommissioning | If true, the node is either undergoing or has completed the . |
is\_draining | If true, the node is either undergoing or has completed the . |
Examples
Setup
To follow along with the examples, start , with defined.List node IDs
Show the status of a single node
Show the status of all nodes
Identify live nodes in an unavailable cluster
Theis_live and is_available columns give you information about a node’s current status:
is_live: The node is up and runningis_available: The node is part of the .
is_live: true and is_available: true can participate in the cluster. If either are false, check the logs so you can troubleshoot the node(s) in question.
For example, the following indicates a healthy cluster, where a majority of the nodes are up (is_live: true) and a quorum can be reached (is_available: true for live nodes):
is_live: false), and thereby quorum cannot be reached (is_available: false for all nodes):
node status command on a live node to identify the other live nodes in an unavailable cluster. Figuring out a live node to run the command is a trial-and-error process, so run the command against each node until you get one that responds.

