Start a Database

This article explains how to start a database.

Starting a database starts the main cluster and all worker clusters. You can also specify to start the nodes if they are offline.

This procedure can be carried out using the Administration API or ConfD.

Prerequisites

The database must be stopped. For more information, see Stop a Database.

Procedure - Administration API

The following examples use curl in a Linux terminal to send REST calls to endpoints in the Administration API. You can also use other interfaces and languages to interact with the API. For more information, see Administration API.

Placeholder values are styled as Bash variables, for example: $NODE_IP. Replace the placeholders with your own values.

The option --insecure or -k tells curl to bypass the TLS certificate check. This option allows you to connect to a HTTPS server that does not have a valid certificate. Only use this option if certificate verification is not possible and you trust the server.

  1. To get the database name, send a GET request to the /api/v1/databases endpoint.

    curl --insecure -X "GET" \
    "https://$NODE_IP:4444/api/v1/databases" \
    -H "accept: application/json" \
    -H "Authorization: Basic $AUTH_TOKEN"

    The response will include the database ID and name. For example:

    [
      {
        "id": "MY_DATABASE",
        "name": "MY_DATABASE",
    ...
  2. To start the database, send a PUT request to the /api/v1/databases/DATABASE_ID/start endpoint.

    curl --insecure -X "PUT" \
    "https://$NODE_IP:4444/api/v1/databases/$DATABASE_ID/start \
    -H "accept: application/json" \
    -H "Authorization: Basic $AUTH_TOKEN"

    If the database nodes are offline and you want to start the nodes before the database, add ?startInstances=true after the endpoint.

    curl --insecure -X "PUT" \
    "https://$NODE_IP:4444/api/v1/databases/$DATABASE_ID/start?startInstances=true" \
    -H "accept: application/json" \
    -H "Authorization: Basic $AUTH_TOKEN"
  3. To verify that the database is running, send a GET request to the /api/v1/databases endpoint.

    If the value for running in the response is greater than 0, the database is running. For example:

    [
      {
        "id": "MY_DATABASE",
        "name": "MY_DATABASE",
        "provider": "aws",
        "version": "8.23.1",
        "ram": 22376,
        "auditing": true,
        "clusters": {
          "total": 1,
          "running": 1
    ...

Procedure - ConfD

The following examples use ConfD through the command-line tool confd_client, which is available on all database nodes. You can also access ConfD through XML-RPC in your own Python programs. For more information, see ConfD.

  1. Connect to EXAClusterOS (COS) on the cluster using c4 connect -t <DEPLOYMENT>[.<NODE>]/cos. For example:

    ./c4 connect -t 1.11/cos

    If you do not specify a node, c4 will connect to the first active node in the deployment. If the cluster is configured with an access node, the first node is the access node (usually n10).

    For more information about how to use c4 connect, see How to use c4.

  2. To find the name of the database, use the ConfD job db_list. For example:

    confd_client db_list
    - MY_DATABASE
  3. To start the database, use the ConfD job db_start. For example:

    confd_client db_start db_name: MY_DATABASE
  4. To verify that the database is running, use the ConfD job db_state. For example:

    confd_client db_state db_name: MY_DATABASE
    ...
    Result:
    'running'