Replace Database Parameters
This article explains how to change custom parameter values in an Exasol database.
Exasol databases are configured using parameters written as key-value pairs in the format "-parameter":"value"
. Parameters that are not explicitly defined in the configuration will fall back on default values that are hard-coded in the application. The default values should be adequate for most use cases, but in some scenarios you may need to change them for a specific use case by adding custom parameter values in the configuration.
This article explains how to update existing custom parameter values.
Invalid parameters will prevent the database from starting. To avoid unnecessary downtime, contact Support before you add or change any database parameters.
Prerequisites
-
The database must be stopped. For more information, see Stop a Database.
-
The custom parameters that are to be replaced must exist in the 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.
-
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.
-
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://$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:
-
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://$NODE_IP:4444/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"
}
}' -
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:
Procedure - ConfD
The following examples use ConfD through the command-line tool confd_client, which is available on all database nodes. For more information, see ConfD.
-
Connect to EXAClusterOS (COS) on the cluster using
c4 connect -t <DEPLOYMENT>[.<NODE>]/cos
. For example:If you do not specify a node, c4 will connect to the first active node in the deployment.
For more information about how to use
c4 connect
, see How to use c4. -
To find the name of the database, use the ConfD job db_list. For example:
-
To find currently defined custom parameters, use the ConfD job db_info. Any custom parameters will be listed in the
params:
section. -
If the database is running, stop it now using the ConfD job db_stop. For example:
-
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: -
To verify that the configuration has been updated, use the ConfD job db_info. Any custom parameters will be listed in the
params:
section. -
Start the database using the ConfD job db_start. For example: