SDDC: Installation

Learn how to install and configure an SDDC solution with Exasol.

The documentation in this section is intended for advanced users who are already familiar with how to install and administer Exasol databases using ConfD and Exasol Deployment Tool (c4).

Incorrect configuration and administration of an SDDC cluster presents a high risk of data loss. When you install and administer an SDDC solution with Exasol, observe extreme caution and follow the provided instructions precisely.

If you have any doubts when performing a task described in this documentation, contact Support for guidance.

Introduction

The following example describes how to install an Exasol cluster that stretches over two data centers, using 11 active nodes + 1 reserve node in each data center. The cluster configuration in this example is also referenced in the other articles in this section.

Cluster configuration overview:

  • Two data centers: DC 1 (active) and DC 2 (passive).

  • Each data center has 11 active nodes + 1 reserve node (24 nodes total).

  • A single data volume is configured with the nodes from DC 1 defined as master nodes, while the nodes in DC 2 are defined to hold the redundant copies. The data volume is created with redundancy 2.

  • A single archive volume is configured with the same redundancy as the data volume.

  • The active database PROD has nodes n11 - n21 as active nodes and n22 as reserve node.

  • The passive database PROD_DR uses the same data volume as PROD, but with n23 to n33 as active nodes and n34 as reserve node.

  • Both databases use the default port (8563).

For details about network requirements and bandwidth planning for the interconnect network, see SDDC: Overview.

For simplicity, the illustrations here and in SDDC: Example failure scenarios show only 4 nodes in each data center.

Cluster overview when fully operational:

SDDC standard setup

Installation procedure

Only the steps that are specific for an SDDC setup are explained in detail in this example. For more information about the full installation procedure, see Install Exasol - step by step.

Exasol Admin UI is not used in the database administration steps in this procedure, since the UI is not available in all versions of Exasol. We recommend that you to perform all administration tasks using the command-line tools as described in the examples.

  1. Prepare the hosts (rootless install)

    Make sure that the hosts must meet the necessary hardware and operating system requirements, and prepare them according to the instructions for a rootless installation (running with a non-root Exasol user).

    For more details, see System requirements and Rootless deployment.

  2. Create the configuration

    Create the configuration file as if you were deploying a normal Exasol database, with the following differences:

    • The configuration file must include the IP addresses of all nodes from both data centers.

    • Add the parameter CCC_PLAY_WITH_DB=false to the configuration. This is required to prevent c4 from creating a default database and data volume during installation.

    For more details about creating a configuration file, see Configure the deployment.

  3. Start the deployment

    Copy
    ./c4 host play -i config

    The deployment will be created without a database but with a default data volume, which must be deleted.

  4. Delete the default data volume
    Delete the default data volume using the ConfD command st_volume_delete:

    Copy
    confd_client st_volume_delete vname: DataVolume1
  5. Create a new data volume

    Create a data volume that includes all storage nodes from both sites, excluding the reserve nodes.

    To create the volume, use the ConfD command st_volume_create with the following parameters:

    Parameter Description
    name A unique name for the data volume. In this example we use the name data_vol.
    disk The name of the disk device to be used for the volume. In this example we use the name disk1.
    type data
    size

    The initial data volume size (with unit) as a string. For example: 100 GiB.

    The data volume will automatically grow as the database grows, as long as there is enough disk space in the cluster to accomodate it.

    nodes

    All data nodes (excluding reserve nodes) in DC 1 and DC 2, in that order, as a comma-separated list. For example:

    '[11,12,13,14,15,16,17,18,19,20,21,23,24,25,26,27,28,29,30,31,32,33]'

    num_active_nodes

    The number of active nodes (excluding reserve nodes) in DC 1. In this example, 11.

    redundancy 2
    shared false
    Copy
    confd_client st_volume_create name: data_vol disk: disk1 type: data size: '100 GiB' nodes: '[11,12,13,14,15,16,17,18,19,20,21,23,24,25,26,27,28,29,30,31,32,33]' redundancy: 2 num_master_nodes: 11 shared: false
  6. Create a new archive volume (optional)

    Create an archive volume using the ConfD command st_volume_create. Use the exact same parameter values as for the data volume, with the following exceptions:

    Parameter Description
    name A unique name for the archive volume. In this example we use the name arc_vol.
    type archive
    size

    The archive volume size (with unit), in string format.

    An archive volume can only be expanded manually and cannot be decreased. In the following example we use 100 GiB as the archive volume size, but for most production workloads the size should be much larger.

    To learn more about how to calculate the required volume size, see Sizing guidelines.

    Copy
    confd_client st_volume_create name: arc_vol disk: disk1 type: archive size: '100 GiB' nodes: '[11,12,13,14,15,16,17,18,19,20,21,23,24,25,26,27,28,29,30,31,32,33]' redundancy: 2 num_master_nodes: 11
  7. Create a temporary data volume

    This volume is only needed for creating the standby database and will be deleted later.

    Create the volume with redundancy 1 and only on the active nodes (excluding reserve nodes) in DC 2.

    Copy
    confd_client st_volume_create name: DataVolumeTemporary disk: disk1 type: data size: '100 GiB' nodes: '[23,24,25,26,27,28,29,30,31,32,33]' redundancy: 1 num_master_nodes: 11
  8. Create the active database

    Create the active database PROD using the ConfD command db_create with the following parameters:

    Parameter Description
    db_name A unique name for the active database. In this example we use the name PROD.
    version The database version, for example 2025.2.0
    data_volume_name

    The name of the data volume that you created in the previous step, Create a new data volume

    mem_size

    The amount of memory to allocate to the database (DB RAM) as a string. For example, ‘100 GiB’

    If you specify a size larger than the available physical memory, it will automatically be reduced.

    To learn how to calculate the amount of DB RAM, see Sizing guidelines.

    nodes

    All nodes in DC 1 as a comma-separated list.

    num_active_nodes

    The value set in num_master_nodes for the data volume.

    auto_start

    false

    Setting this parameter to false will require the database to be started manually after starting the services. This protects the database against unwanted startups during disaster scenarios. As a result, you must also manually start the database after a database update.

    Copy
    confd_client db_create db_name: PROD version: 2025.2.0 data_volume_name: data_vol mem_size: '100 GiB' port: 8563 nodes: '[11,12,13,14,15,16,17,18,19,20,21,22]' num_active_nodes: 11 auto_start: false
  9. Create the standby database

    Create the standby database PROD_DR using the ConfD command db_create. Use the exact same parameter values as for the active database, with the following exceptions:

    Parameter Description
    db_name A unique name for the standby database. In this example we use the name PROD_DR.
    data_volume_name

    The name of the temporary data volume that you created in the previous step, Create a temporary data volume

    nodes

    All nodes in DC 2 as a comma-separated list.

    num_active_nodes

    The value set in num_master_nodes for the temporary data volume.

    Copy
    confd_client db_create db_name: PROD_DR version: 2025.2.0 data_volume_name: DataVolumeTemporary mem_size: '100 GiB' port: 8563 nodes: '[23,24,25,26,27,28,29,30,31,32,33,34]' num_active_nodes: 11 auto_start: false
  10. Install database certificates (optional)

    If TLS authentication should be used for the cluster, install the certificates on all nodes using the ConfD command cert_update. For more details, see Upload TLS certificate.

    Copy
    confd_client cert_update
  11. Start the active database

    Start the active database PROD using the ConfD command db_start.

    Copy
    confd_client db_start db_name: PROD
  12. Set create_new_db=false in the standby database

    Use the ConfD command db_configure to set the create_new_db parameter to false.

    If create_new_db is true, all data and metadata are deleted in the standby database will be deleted the next time it starts. Setting the parameter explicitly to false will prevent this.

    Copy
    confd_client db_configure db_name: PROD_DR create_new_db: false
  13. Start and stop the standby database

    Start the standby database PROD_DR to initialize it, then stop it again.

    Copy
    confd_client db_start db_name: PROD_DR
    confd_client db_stop db_name: PROD_DR
  14. Change the data volume of the standby database

    Use the ConfD command db_configure to configure the standby database to use the same data volume as the active database.

    Copy
    confd_client db_configure db_name: PROD_DR data_volume_name: data_vol
  15. Remove the temporary database volume

    Use the ConfD command st_volume_delete to remove the temporary database volume .

    Copy
    confd_client st_volume_delete vname: DataVolumeTemporary
  16. Create backup schedules

    Use the ConfD command db_backup_add_schedule to create backup schedules for the active database and standby database.

    • Both databases will use the same archive volume.

    • The schedule of the standby database is disabled, since the backup cannot run if the database is offline.

    Copy
    confd_client db_backup_add_schedule db_name: PROD backup_name: SundayFullBackup backup_volume_name: arc_vol enabled: true level: 0 expire: '1w 3d' hour: 0 day: '*' month: '*' weekday: 0
    confd_client db_backup_add_schedule db_name: PROD_DR backup_name: SundayFullBackup backup_volume_name: arc_vol enabled: false level: 0 expire: '1w 3d' hour: 0 day: '*' month: '*' weekday: 0