Replace Database Parameters

This section explains how to replace custom parameters in an Exasol database.

Replacing the parameter list will remove all database parameters and replace them the new parameters that you specify. This is useful if you want to add and remove several database parameters at one time.

Invalid parameters or invalid configuration syntax will prevent the database from starting. To avoid unnecessary downtime, contact Support before you add or change database parameters.

This procedure can be carried out using either 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 on 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: $EXASOL_IP. Replace the placeholders with your own values.

Replacing parameters is similar to adding parameters, except that you are using the PUT endpoint instead of PATCH.

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

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

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

    The response includes the database ID, name, and version. Additional details are included depending on the configuration and platform.

  2. To see any currently configured additional parameters, send a GET request to the /api/v1/databases/DATABASE_ID/parameters endpoint.

    curl --insecure -X "GET" \
      "https://$EXASOL_IP/api/v1/databases/$DATABASE_ID/parameters' \
      -H "accept: application/json" \
      -H "Authorization: Basic $AUTH_TOKEN"

    The response will list all additional parameters currently defined in the configuration. If no additional parameters have been configured, the result will be empty. Default parameters are not shown. For example:

    {
      "parameters": {
        "-forceProtocolEncryption": "1",
        "-soft_replicationborder_in_numrows": "1000000"
      }
    }
  3. To replace parameters, send a PUT request to the /api/v1/databases/DATABASE_ID/parameters endpoint. Add the parameters you want to replace in the payload as key-value pairs in the format "-parameter": "value". For example:

    curl --insecure -X "PUT" \
    "https://$EXASOL_IP/api/v1/databases/$DATABASE_ID/parameters" \
    -H "accept: application/json" \
    -H "Authorization: Basic $AUTH_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "parameters": {
        "-forceProtocolEncryption": "0",
        "-soft_replicationborder_in_numrows": "2000000"
      }
    }'
  4. To verify that the configuration has been updated, send a GET request to the /api/v1/databases/DATABASE_ID/parameters endpoint again. The response now shows the updated parameter values. For example:

    {
      "parameters": {
        "-forceProtocolEncryption": "0",
        "-soft_replicationborder_in_numrows": "2000000",
      }
    }

Procedure - ConfD

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

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

    confd_client -c db_list
    - Exasol
  2. To find currently defined custom parameters, use the ConfD job db_info. Any custom parameters will be listed in the params: section.

    confd_client -c db_info -a 'db_name: Exasol' | grep params
     params: -forceProtocolEncryption=1 -soft_replicationborder_in_numrows=1000000
  3. To replace parameters, use the ConfD job db_configure with the attribute params: followed by the parameters to be replaced as a space-separated list. For example:

    confd_client -c db_configure -a '{db_name: Exasol, params: "-forceProtocolEncryption=0 -soft_replicationborder_in_numrows=2000000"}'
  4. To verify that the configuration has been updated, use the ConfD job db_info. Any custom parameters will be listed in the params: section.

    confd_client -c db_info -a 'db_name: Exasol' | grep params
     params: -forceProtocolEncryption=0 -soft_replicationborder_in_numrows=2000000

Next Steps

Start the database. For more information, see Start a Database.