> ## Documentation Index
> Fetch the complete documentation index at: https://cockroachlabs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Deployment & Operations Skills Taxonomy

export const InternalLink = ({version, path = "", children, ...props}) => {
  let detectedVersion = version || "stable";
  if (typeof window !== 'undefined' && !version) {
    const match = window.location.pathname.match(/\/docs\/([^/]+)/);
    if (match) {
      detectedVersion = match[1];
    }
  }
  const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
  return <a href={`/docs/${detectedVersion}/${normalizedPath}`} {...props}>
      {children}
    </a>;
};

This document outlines the foundational skills required to deploy and operate CockroachDB in production environments.

The skills are organized into sections based on the following operational domains:

* [Infrastructure configuration](#infrastructure-configuration)
* [Security](#security)
* [Cluster maintenance](#cluster-maintenance)
* [Troubleshooting](#troubleshooting)
* [Disaster recovery](#disaster-recovery)

Each section includes links to relevant documentation for the listed skills.

<Tip>
  Cockroach Labs offers [Professional Services](https://www.cockroachlabs.com/company/professional-services/) that can assist you with getting applications into production faster and more efficiently.
</Tip>

## Infrastructure configuration

This section covers how to ensure that your hardware and network are properly configured to meet the performance and connectivity requirements of CockroachDB.

* <InternalLink path="recommended-production-settings#hardware">Verify vCPU, RAM, storage, and disk IOPS performance</InternalLink>
* <InternalLink path="deploy-cockroachdb-on-premises#step-1-synchronize-clocks">Configure time synchronization with NTP server</InternalLink>
* <InternalLink path="known-limitations#cockroachdb-does-not-test-for-all-connection-failure-scenarios">Validate network connectivity</InternalLink>

## Security

This section covers how to secure a CockroachDB deployment, including certificate management, load balancing setup, role-based access control, and data encryption.

* <InternalLink path="deploy-cockroachdb-on-premises#step-2-generate-certificates">Create and distribute certificates; initialize cluster</InternalLink>
* <InternalLink path="deploy-cockroachdb-on-premises#step-6-set-up-load-balancing">Configure load balancer and direct a workload</InternalLink>
* <InternalLink path="security-reference/authorization">Configure RBAC</InternalLink>
* <InternalLink path="encryption">Encryption at rest</InternalLink>

## Cluster maintenance

This section covers how to manage the lifecycle of CockroachDB nodes, including adding and removing nodes, handling outages, performing upgrades or downgrades, and modifying cluster settings.

* <InternalLink path="node-shutdown">Shut down a node gracefully</InternalLink>
* <InternalLink path="recommended-production-settings#load-balancing">Handle unplanned node outages</InternalLink>
* <InternalLink path="cockroach-start#add-a-node-to-a-cluster">Add nodes</InternalLink>
* <InternalLink path="node-shutdown?filters=decommission#remove-nodes">Remove nodes</InternalLink>
* <InternalLink path="alter-database#add-regions-to-a-database">Add a region</InternalLink>
* <InternalLink path="alter-database#drop-region">Remove a region</InternalLink>
* <InternalLink path="upgrade-cockroach-version#perform-a-patch-upgrade">Rolling upgrades</InternalLink>
* Downgrade a cluster from a <InternalLink path="upgrade-cockroach-version#roll-back-a-patch-upgrade">patch version</InternalLink>
* Downgrade a cluster from a <InternalLink path="upgrade-cockroach-version#roll-back-a-major-version-upgrade">major version</InternalLink>
* <InternalLink path="cluster-settings#change-a-cluster-setting">Change a cluster setting</InternalLink>
* Repave a cluster: cluster repaving involves the following individual skills, which are also used during <InternalLink path="upgrade-cockroach-version#perform-a-patch-upgrade">rolling upgrades</InternalLink>:
  1. <InternalLink path="node-shutdown">Shut down a node gracefully</InternalLink>
  2. Detach the <InternalLink path="kubernetes-overview#kubernetes-terminology">persistent volume</InternalLink> (a.k.a. persistent disk) from the removed node's virtual machine (VM) (this step is optional but recommended)
  3. Delete the removed node's VM
  4. Start a new VM
  5. Reattach the persistent disk to the new VM (necessary if you did step #2)
  6. <InternalLink path="cockroach-start#add-a-node-to-a-cluster">Add a node to the cluster</InternalLink> from the new VM

## Troubleshooting

This section contains a list of common issues related to SQL performance, cluster stability, memory usage, load balancing, and changefeed lag.

* <InternalLink path="query-behavior-troubleshooting#query-issues">SQL response time for specific queries</InternalLink>
* <InternalLink path="query-behavior-troubleshooting#low-throughput">SQL throughput degradation across the board</InternalLink>
* <InternalLink path="cluster-setup-troubleshooting#node-liveness-issues">Cluster instability: Dead/suspect nodes</InternalLink>
* <InternalLink path="cluster-setup-troubleshooting#out-of-memory-oom-crash">Out of memory (OOM) problems</InternalLink>
* <InternalLink path="architecture/replication-layer#load-based-replica-rebalancing">Imbalanced cluster load</InternalLink>
* <InternalLink path="cluster-setup-troubleshooting#client-connection-issues">End of file (EOF) errors</InternalLink>
* <InternalLink path="advanced-changefeed-configuration#lagging-ranges">Changefeed is falling behind</InternalLink>
* <InternalLink path="cockroach-debug-zip">Gather diagnostic data from a "debug zip" file</InternalLink>
* <InternalLink path="cockroach-debug-tsdump">Collect timeseries diagnostic data from a "tsdump" file</InternalLink>

## Disaster recovery

This section covers how to set up and manage backup and restore of your cluster to ensure data recovery in case of failures.

* <InternalLink path="cloud-storage-authentication">Create AWS IAM access key</InternalLink>
* <InternalLink path="use-cloud-storage#amazon-s3-storage-classes">Create S3 bucket for backup data</InternalLink>
* <InternalLink path="take-full-and-incremental-backups#full-backups">Full cluster backup to S3</InternalLink>
* <InternalLink path="take-full-and-incremental-backups#incremental-backups">Incremental backup to S3</InternalLink>
* <InternalLink path="restore#restore-a-cluster">Cluster restore from AWS S3</InternalLink>

## See also

* <InternalLink path="recommended-production-settings">Production Checklist</InternalLink>
* <InternalLink path="manual-deployment">Manual Deployment</InternalLink>
* <InternalLink path="secure-a-cluster">Deploy a Local Cluster from Binary (Secure)</InternalLink>
* <InternalLink path="performance-best-practices-overview">SQL Performance Best Practices</InternalLink>
* <InternalLink path="performance-recipes">Performance Tuning Recipes</InternalLink>
* <InternalLink path="cluster-setup-troubleshooting">Troubleshoot Self-Hosted Setup</InternalLink>
