Stop a database

This article explains how to stop a database.

Introduction

When you stop a database normally, the following happens:

Prerequisites

There are no prerequisites for this procedure.

Procedure

This procedure uses the c4 and confd_client command-line tools in a Linux terminal. To learn more about these tools, see Exasol Deployment Tool (c4) and ConfD.

  1. Connect to the cluster operating system (COS) using c4 connect -i PLAY_ID -s cos.

    Example:
    Copy
    ./c4 connect -i c3275f84 -s cos

    To find the play ID, you can use c4 ps.

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

  2. To find the database name when you are connected to COS, use the ConfD job db_list.

    Example:
    Copy
    confd_client db_list
    - MY_DATABASE
  3. Optional parameters:

    Parameter name Data type Description
    cluster string

    The database cluster(s) that should be stopped. If the parameter is omitted, all clusters are stopped.

    Accepted values are:

    • <clustername> Stops the database on a specific worker cluster.
    • MAIN or +all Stops the main database and all worker databases. The database name can be passed instead of MAIN. This is the same as omitting the parameter.
    force boolean

    When set to True, the database is forced to shut down.

    This option should only be used if the database cannot be shut down normally.

    The force option should only be used if the database cannot be shut down normally. For more information, see Forced shutdown.

    Examples:

    To stop the database on a specific worker cluster:

    Copy
    confd_client db_stop db_name: MY_DATABASE cluster: WORKER1

    To stop the database on all clusters:

    Copy
    confd_client db_stop db_name: MY_DATABASE
    # or
    confd_client db_stop db_name: MY_DATABASE cluster: MY_DATABASE
    # or
    confd_client db_stop db_name: MY_DATABASE cluster: MAIN
    # or 
    confd_client db_stop db_name: MY_DATABASE cluster: +all

Forced shutdown

Stopping the database with the force option will not shut down the database cleanly and should only be used if the database cannot be stopped normally. The following table describes what happens during a normal (controlled) shutdown versus a forced shutdown.

  Normal shutdown Forced shutdown

Goal

Graceful termination with audit trail

Immediate termination to overcome a critical failure

Usage

Standard operating procedure

Last resort when normal shutdown is blocked

Duration

Variable, includes a grace period (up to several minutes for large systems)

Immediate

Active transactions

Aborted using standard mechanisms (session kill) and rolled back internally by the database

Abruptly terminated with no cleanup/rollback recorded

Auditing and logging

System statistics and a shutdown record are flushed and written to auditing system tables (clear audit trail)

No auditing entry is written, equivalent to a complete system crash

Connections

Rejected with a shutting down SQL exception

Immediately terminated, no new connections can be made

Verification

To verify that the database has stopped, use the ConfD job db_state. If the result is setup, the database is stopped.

Example:
Copy
confd_client db_state db_name: MY_DATABASE
...
Result:
'setup'