Upload a License

This article 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.

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

This article explains how check the limits and validity of an uploaded license.

You can check the details of an uploaded license using ConfD. This operation is not available in the Administration API.

Connect to COS

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

./c4 connect -t 1/cos

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

View license details

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

Limits:

max_db_mem_size_in_gb

Previously used for licenses based on database RAM. This license type is deprecated and the parameter value is always “Unlimited”.

max_db_raw_data_size_in_gb

The maximum size of raw data in GiB that you can store across all databases in the cluster. The raw data volume corresponds to the data volume that is comparable to the size the data would have if stored as CSV files.

Audit data is not counted towards the raw data license limit.

For more details about how raw data size is determined, see Sizing for Data Types and Object Types.

max_num_clusters

The maximum number of running clusters allowed by the license.

Clusters are counted per database. This means that n databases will count as n clusters, even if all databases run on the same set of nodes. For native cloud AWS deployments with multi-cluster support, each main cluster or worker cluster counts as one cluster.

For more details about main and worker clusters, see Database Essentials and Cluster Management.

max_nodes_per_cluster

The maximum number of active nodes on a running cluster. Access node and standby nodes are not counted towards this limit.

Check license

To verify that the currently running databases do not exceed the license limits, use the ConfD job license_run_check. If the command returns OK, you are within the limits of your license.

confd_client license_run_check
OK