Upload a License

This section explains how to upload a license to an Exasol database.

All Exasol deployments start with a license that allows you to load 10 GiB of raw data for testing purposes. For larger data sizes, you must upload a license to the database.

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

To check the validity and limits of an uploaded license you must use ConfD. This operation is not available in the Administration API.

Prerequisites

  • Exasol 8 must be installed.

  • You must have a valid Exasol 8 license file.

Exasol 7.1 licenses are not valid in Exasol 8 because of differences in the license format. For more information about how to obtain a valid license for Exasol 8, contact support.

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.

  1. Open a Linux terminal in the directory where you have downloaded your Exasol 8 license file.

  2. To upload the license to the database, send a POST request to the /api/v1/license endpoint on one of the database nodes in the cluster:

    curl -X 'POST' --insecure "https://$NODE_IP:4444/api/v1/license" \
      -H "accept: application/json" \
      -H "Authorization: Basic $AUTH_TOKEN" \
      -H "Content-Type: application/octet-stream" \
      --data-binary "@$FILENAME"
    Parameter/placeholder Description
    $NODE_IP The external IP address of one of the nodes in the cluster.
    $AUTH_TOKEN

    Authentication token generated from the username and password of a user in the exaadm group.

    For information about how to generate authentication tokens from a user and password, see Authentication.

    $FILENAME

    The filename of the license file, for example 1234567890.exasol_license

    The @ before the license filename is required since it tells curl to upload the contents of the license file, not the actual binary.

    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.

    Uploading a license overwrites the existing license. This means that if you install and activate a temporary license you cannot keep the old license file inactive on the system and then reactivate it, you must upload the old license again.

    Example:
    curl -X 'POST' --insecure "https://203.0.113.11:4444/api/v1/license" \
      -H "accept: application/json" \
      -H "Authorization: Basic YWRtaW46ZXhhc29s" \
      -H "Content-Type: application/octet-stream" \
      --data-binary "@1234567890.exasol_license"

    The uploaded license is automatically applied after a few minutes.

The server may respond with the error message “Internal server error” even if the upload was successful. This is a temporary bug that will be fixed in an upcoming release. To verify that the license was correctly uploaded, use the ConfD job license_info. For more details, see Verification - ConfD.

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. Download the license file to a directory on your local machine.

  2. To upload the contents of the license file to COS, use the cat Linux command and the ConfD job license_upload.

    cat <license_name>.exasol_license | c4 connect -s cos -i <play_id> -- confd_client license_upload license: '\""{< -}\""'

    Replace <license_name> with the name of the license file and <play_id> with the ID of the deployment. To find the ID of the deployment, use c4 ps.

    Example:
    cat 1234567890.exasol_license | c4 connect -s cos -i c3275f84 -- confd_client license_upload license: '\""{< -}\""'

When the license has been successfully uploaded to COS it is automatically applied after a few minutes.

The server may respond with an error message even if the upload was successful. This is a temporary bug that will be fixed in an upcoming release. To verify that the license was correctly uploaded, use the ConfD job license_info. For more details, see Verification - ConfD.

Verification - ConfD

To check the validity and limits of an uploaded license you must use ConfD. This operation is not available in the Administration API.

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

    c4 connect -t 1/cos

    In most cases it does not matter on which node you access ConfD. 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). The command prompt in COS indicates which node you are connected to:

    [root@n10 ~]#

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

  2. To view details about the currently installed license, use the ConfD job license_info. For example:

    confd_client license_info

    Contract:
      comment: Unlimited license with an expiration date.
      company_name: Exasol
      distributor: Exasol
      distributor_id: 1
      expiration_date: '2024-08-02'
      license_id: 2
    Exasol_DB_license:
      schema_version: 1
    Limits:
      max_db_mem_size_in_gb: Unlimited
      max_db_raw_data_size_in_gb: Unlimited
      max_nodes_per_cluster: Unlimited
      max_num_clusters: Unlimited
  3. To verify that the currently running databases do not exceed the license limits, use the ConfD job license_run_check:

    confd_client license_run_check
    OK