Remove Database Parameters

This article explains how to remove custom parameters in an Exasol database.

Removing parameters that you have added or changed will remove your customization of the database configuration. If the parameters and/or values have a default configuration, the default behavior will return.

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 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 information about the database, 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 includes the database ID, name, and version. Additional details are included depending on the configuration and platform.

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

    curl --insecure -X "GET" \
      "https://$NODE_IP:4444/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",
        "-oidcProviderClientSecret": "abcd"
      }
    }
  3. If the database is running, stop it now by sending a PUT request to the /api/v1/databases/$DATABASE_ID/stop endpoint:

    curl --insecure -X "PUT" \
    "https://$NODE_IP:4444/api/v1/databases/$DATABASE_ID/stop" \
    -H "accept: application/json" \
    -H "Authorization: Basic $AUTH_TOKEN"
  4. To remove parameters, send a DELETE request to the /api/v1/databases/DATABASE_ID/parameters endpoint. Specify the parameters to be removed as query strings directly after the endpoint. For example:

    curl --insecure -X "DELETE" \
    "https://$NODE_IP:4444/api/v1/databases/$DATABASE_ID/parameters?parameter=-oidcProviderClientSecret&parameter=-param_name2" \
    -H "accept: application/json" \
    -H "Authorization: Basic $AUTH_TOKEN"

    Make sure that only the parameter names are specified and that each parameter begins with a dash (-).

  5. To verify that the database configuration has been updated, send a GET request to the /api/v1/databases/DATABASE_ID/parameters endpoint. For example:

    curl --insecure -X "GET" \
      "https://$NODE_IP:4444/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": {}
    }
  6. Start the database by sending 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"

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 find currently defined custom parameters, use the ConfD job db_info. Any custom parameters will be listed in the params: section.

    confd_client db_info db_name: MY_DATABASE | grep params
     params: -forceProtocolEncryption=0 -oidcProviderClientSecret&parameter=-param_name2 -soft_replicationborder_in_numrows=2000000
  4. If the database is running, stop it now using the ConfD job db_stop. For example:

    confd_client db_stop db_name: MY_DATABASE
  5. To remove parameters, use the ConfD job db_configure and specify the parameters to remove. For example:

    confd_client db_configure db_name: MY_DATABASE params_delete: '[-forceProtocolEncryption -soft_replicationborder_in_numrows]'
  6. To verify that the configuration has been updated, use the ConfD job db_info. Any custom parameters will be listed in the params: section. If no custom parameters are defined, this section will not be included in the response.

    confd_client db_info db_name: MY_DATABASE | grep params
     params: -oidcProviderClientSecret&parameter=-param_name2
  7. Start the database using the ConfD job db_start. For example:

    confd_client db_start db_name: MY_DATABASE