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). |
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
| Flag | Description |
|---|---|
--url | A to use instead of the other arguments. To convert a connection URL to the syntax that works with your client driver, run . Env Variable:COCKROACH\_URL Default: no URL |
--host | The server host and port number to connect to. This can be the address of any node in the cluster. Env Variable:COCKROACH\_HOST Default:localhost:26257 |
--port -p | The server port to connect to. Note: The port number can also be specified via --host. Env Variable:COCKROACH\_PORT Default:26257 |
--user -u | The that will own the client session. Env Variable:COCKROACH\_USER Default:root |
--insecure | Use an insecure connection. Env Variable:COCKROACH\_INSECURE Default:false |
--cert-principal-map | A comma-separated list of : mappings. This allows mapping the principal in a cert to a DB principal such as node or root or any SQL user. This is intended for use in situations where the certificate management system places restrictions on the Subject.CommonName or SubjectAlternateName fields in the certificate (e.g., disallowing a CommonName like node or root). If multiple mappings are provided for the same “, the last one specified in the list takes precedence. A principal not specified in the map is passed through as-is via the identity function. A cert is allowed to authenticate a DB principal if the DB principal name is contained in the mapped CommonName or DNS-type SubjectAlternateName fields. |
--certs-dir | The path to the containing the CA and client certificates and client key. Env Variable:COCKROACH\_CERTS\_DIR Default:${HOME}/.cockroach-certs/ |
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.

