Skip to Content
DocumentationReferenceCLI

CLI Reference

The oxia binary is a single executable with subcommands for running a cluster, operating on data, managing the cluster, and debugging. This page enumerates every user-visible subcommand and flag. Append --help to any command for the same information at the shell.

Global flags

These apply to every subcommand and are omitted from the tables below.

FlagDefaultPurpose
-l, --log-levelINFOLogging level: debug, info, warn, error.
-j, --log-jsonfalseEmit logs in JSON format.
--profilefalseEnable the built-in pprof profiler.
--profile-bind-address127.0.0.1:6060pprof bind address.

Running a cluster

oxia standalone

Single-process, single-node Oxia instance. Good for local development and CI. Not a production deployment: replication factor is 1, there is no external coordinator, and a crash loses data that has not been fsync’d.

oxia standalone
FlagDefaultPurpose
-p, --public-addr0.0.0.0:6648Public service bind address (client traffic).
-m, --metrics-addr0.0.0.0:8080Prometheus metrics bind address.
-s, --shards1Number of shards in the default namespace.
--data-dir./data/dbPebble database directory.
--wal-dir./data/walWrite-ahead log directory.
--wal-sync-datatruefsync WAL writes for durability.
--wal-retention-time1hHow long to keep WAL entries after commit.
--notifications-enabledtrueEnable the notifications feed.
--notifications-retention-time1hHow long to retain undelivered notifications.
--db-cache-size-mb100Shared Pebble block-cache size.
--key-sortinghierarchicalKey sort mode: hierarchical or natural (see key sorting).

oxia server

Run a storage node. Needs an oxia coordinator to join a cluster.

oxia server --sconfig /etc/oxia/server.yaml
FlagDefaultPurpose
--sconfigServer config file path.
-p, --public-addr0.0.0.0:6648Public (client) bind address.
-i, --internal-addr0.0.0.0:6649Internal (coordinator / peer) bind address.
-m, --metrics-addr0.0.0.0:8080Metrics bind address.
--data-dir./data/dbPebble database directory.
--wal-dir./data/walWrite-ahead log directory.
--wal-sync-datatruefsync WAL writes.
--wal-retention-time1hWAL retention.
--notifications-retention-time1hUndelivered notification retention.
--db-cache-size-mb100Shared Pebble block-cache size.
--auth-provider-nameAuth provider; currently oidc.
--auth-provider-paramsAuth provider configuration (JSON). See security.
--tls-*, --internal-tls-*, --peer-tls-*TLS for public, internal, and peer endpoints respectively. Each group exposes -cert-file, -key-file, -min-version, -max-version, -trusted-ca-file, -insecure-skip-verify, -client-auth.

oxia coordinator

Run the coordinator. One active instance per cluster; other instances can run in standby using the Raft metadata provider for high availability.

oxia coordinator --cconfig /etc/oxia/cluster.yaml --metadata configmap
FlagDefaultPurpose
--cconfigCluster configuration file (namespaces, replication factor, server list).
--sconfigServer configuration file.
--metadatafileCluster-status provider: file, configmap, raft, or memory.
--file-clusters-status-pathdata/cluster-status.jsonCluster-status path when metadata=file.
--k8s-namespaceKubernetes namespace for the status ConfigMap.
--k8s-configmap-nameConfigMap name when metadata=configmap.
--raft-addressRaft bind address when metadata=raft.
--raft-data-dirdata/raftRaft data directory.
--raft-bootstrap-nodesComma-separated list of peers for bootstrapping the Raft group.
-a, --admin-addr0.0.0.0:6651Admin service bind address (OxiaAdmin gRPC service).
-i, --internal-addr0.0.0.0:6649Internal bind address (coordinator ↔ server).
-m, --metrics-addr0.0.0.0:8080Metrics bind address.
--tls-*, --peer-tls-*TLS for the admin endpoint and for peer Raft traffic.

Data operations

oxia client groups the subcommands that read and write records. They all connect to a storage node on its public port.

Common flags for every oxia client subcommand:

FlagDefaultPurpose
-a, --service-addresslocalhost:6648Storage node address.
-n, --namespacedefaultNamespace to operate on.
--request-timeout30sPer-request timeout.

oxia client put

Insert or update a record.

oxia client put my-key my-value oxia client put my-key -c < payload.bin # read value from stdin
FlagDefaultPurpose
-c, --std-infalseRead the value from stdin.
-e, --expected-version-1If set, succeed only when the current version matches (CAS).
-p, --partition-keyRoute the operation using this key instead of the record key.
-d, --sequence-keys-deltas[]One or more deltas applied to the sequence counters appended to the key.

oxia client get

Read a record.

oxia client get my-key -v # include the version metadata
FlagDefaultPurpose
-v, --include-versionfalseInclude the Version object in the output.
-t, --comparison-typeequalKey comparison: equal, floor, ceiling, lower, higher.
-p, --partition-keyRouting override.
--indexRead via a secondary index.
--hexfalsePrint the value as hex.

oxia client delete

Delete a record.

FlagDefaultPurpose
-e, --expected-version-1CAS: delete only if the current version matches.
-p, --partition-keyRouting override.

oxia client delete-range

Delete every record whose key is in [key-min, key-max).

oxia client delete-range -s /users/ -e /users//
FlagDefaultPurpose
-s, --key-minRange start, inclusive.
-e, --key-maxRange end, exclusive.
-p, --partition-keyRouting override.

oxia client list

Stream the keys whose values fall in [key-min, key-max); values are not returned.

FlagDefaultPurpose
-s, --key-minRange start, inclusive.
-e, --key-maxRange end, exclusive.
-p, --partition-keyRouting override.
--indexList from a secondary index instead of the primary key space.
--internal-keysfalseInclude Oxia’s own internal keys.

oxia client range-scan

Stream both keys and values in [key-min, key-max).

FlagDefaultPurpose
-s, --key-minRange start, inclusive.
-e, --key-maxRange end, exclusive.
-p, --partition-keyRouting override.
--indexScan using a secondary index.
--internal-keysfalseInclude internal keys.
-v, --include-versionfalseInclude the version with each record.
--hexfalsePrint values as hex.

oxia client notifications

Follow the notifications stream for the namespace. No flags beyond the common ones.

oxia client sequence-updates

Follow the stream of new sequence keys for a prefix.

oxia client sequence-updates /events/ --partition-key /events/
FlagDefaultPurpose
-p, --partition-keyRequired. Routes to the shard holding the sequence prefix.

Cluster administration

oxia admin groups the operator-facing commands. They connect to the coordinator’s admin port.

Common flag:

FlagDefaultPurpose
--admin-addresslocalhost:6651Coordinator admin address.

oxia admin list-namespaces

Enumerate configured namespaces. No subcommand-specific flags.

oxia admin list-nodes

Enumerate storage nodes with their public and internal addresses and metadata. No subcommand-specific flags.

oxia admin split-shard

Manually trigger a shard split. Usually reserved for operational tuning; automatic splitting is also available.

FlagDefaultPurpose
--namespacedefaultNamespace of the shard to split.
--shard-1Shard ID to split. Required.
--split-pointExplicit hash split point; defaults to the shard’s midpoint.

Utilities

oxia health

Probes a server’s gRPC health check. Exit code is non-zero on failure — suitable for Kubernetes readiness/liveness probes.

FlagDefaultPurpose
--hostTarget host.
--port6649Target port (internal port by default).
--servicegRPC health-check service name.
--timeout10sProbe timeout.

oxia perf

Built-in load generator. Useful for smoke-testing a cluster without pulling in the separate benchmark tool .

FlagDefaultPurpose
-a, --service-addresslocalhost:6648Storage node address.
-n, --namespacedefaultNamespace.
-r, --rate100Total request rate (ops/s).
-p, --read-write-percent80Percentage of reads in the mix.
-s, --value-size128Value size in bytes.
--keys-cardinality1000Number of distinct keys in the working set.
--random-payloadfalseUse random bytes for each write.
--batch-linger5msClient-side batching linger.
--max-requests-per-batch1000Maximum operations per batched request.
--request-timeout30sPer-request timeout.

oxia config create-schema

Emit the JSON schema for the cluster configuration file. Pipe into a validator or IDE helper to get completion and validation when editing config.yaml.

Advanced / debugging

These commands operate directly on on-disk state and should usually be run offline against a stopped node.

oxia wal

Introspect the write-ahead log of a single shard.

Common flags:

FlagDefaultPurpose
--wal-dirdata/walWAL root directory.
--namespacedefaultNamespace.
--shardShard ID.

Subcommands: scan (dump entries), truncate (cut the log at a given index), perf (WAL-level throughput test).

oxia pebble

Pebble DB introspection tooling, forwarded from the upstream Pebble CLI. Subcommands: blob, db, find, lsm, manifest, remotecat, sstable, wal. Each has its own flags; run oxia pebble <subcommand> --help for details.

Last updated on