All pages
Powered by GitBook
1 of 1

Loading...

Backup and Restore with Shared Local Storage

Overview

MariaDB Enterprise ColumnStore supports backup and restore. If Enterprise ColumnStore uses shared local storage for the DB Root directories, the DB Root directories and the MariaDB data directory must be backed up separately.

Recovery Planning

MariaDB Enterprise ColumnStore supports multiple .

This page discusses how to backup and restore Enterprise ColumnStore when it uses (such as NFS) for the .

Any file can become corrupt due to hardware issues, crashes, power loss, and other reasons. If the Enterprise ColumnStore data or metadata become corrupt, Enterprise ColumnStore could become unusable, resulting in data loss.

If Enterprise ColumnStore is your , it should be backed up regularly.

If Enterprise ColumnStore uses for the , the following items must be backed up:

  • The MariaDB Data directory is backed up using

  • The must be backed up

  • Each must be backed up

See the instructions below for more details.

Backup

Use the following process to take a backup:

  1. Determine which node is the primary server using curl to send the status command to the CMAPI Server:

The output will show dbrm_mode: master for the primary server:

  1. Connect to the primary server using MariaDB Client as a user account that has privileges to lock the database:

  1. Lock the database with the statement:

Ensure that the client remains connected to the primary server, so that the lock is held for the remaining steps.

  1. Make a copy or snapshot of the . By default, it is located at /var/lib/columnstore/storagemanager.

For example, to make a copy of the directory with rsync:

  1. Make a copy or snapshot of the . By default, they are located at /var/lib/columnstore/dataN, where the N in dataN represents a range of integers that starts at 1 and stops at the number of nodes in the deployment.

For example, to make a copy of the directories with rsync in a 3-node deployment:

  1. Use to backup the :

  1. Use to prepare the backup:

  1. Ensure that all previous operations are complete.

  2. In the original client connection to the primary server, unlock the database with the statement:

Restore

Use the following process to restore a backup:

  1. , so that you can restore the backup to an empty deployment.

  2. Ensure that all services are stopped on each node:

  1. Restore the backup of the . By default, it is located at /var/lib/columnstore/storagemanager.

For example, to restore the backup with rsync:

  1. Restore the backup of the DB Root directories. By default, they are located at /var/lib/columnstore/dataN, where the N in dataN represents a range of integers that starts at 1 and stops at the number of nodes in the deployment.

For example, to restore the backup with rsync in a 3-node deployment:

  1. Use to restore the backup of the MariaDB data directory:

  1. Start the services on each node:

storage options
shared local storage
DB Root directories
system of record
shared local storage
DB Root directories
Storage Manager directory
DB Root directories
Storage Manager directory
DB Root directories
Storage Manager directory
Deploy Enterprise ColumnStore
Storage Manager director
$ curl -k -s https://mcs1:8640/cmapi/0.4.0/cluster/status \
   --header 'Content-Type:application/json' \
   --header 'x-api-key:93816fa66cc2d8c224e62275bd4f248234dd4947b68d4af2b29671dd7d5532dd' \
   | jq .
{
  "timestamp": "2020-12-15 00:40:34.353574",
  "192.0.2.1": {
    "timestamp": "2020-12-15 00:40:34.362374",
    "uptime": 11467,
    "dbrm_mode": "master",
    "cluster_mode": "readwrite",
    "dbroots": [
      "1"
    ],
    "module_id": 1,
    "services": [
      {
        "name": "workernode",
        "pid": 19202
      },
      {
        "name": "controllernode",
        "pid": 19232
      },
      {
        "name": "PrimProc",
        "pid": 19254
      },
      {
        "name": "ExeMgr",
        "pid": 19292
      },
      {
        "name": "WriteEngine",
        "pid": 19316
      },
      {
        "name": "DMLProc",
        "pid": 19332
      },
      {
        "name": "DDLProc",
        "pid": 19366
      }
    ]
  }
$ mariadb --host=192.0.2.1 \
   --user=root \
   --password
FLUSH TABLES WITH READ LOCK;
$ sudo mkdir -p /backups/columnstore/202101291600/
$ sudo rsync -av /var/lib/columnstore/storagemanager /backups/columnstore/202101291600/
$ sudo rsync -av /var/lib/columnstore/data1 /backups/columnstore/202101291600/
$ sudo rsync -av /var/lib/columnstore/data2 /backups/columnstore/202101291600/
$ sudo rsync -av /var/lib/columnstore/data3 /backups/columnstore/202101291600/
$ sudo mkdir -p /backups/mariadb/202101291600/
$ sudo mariadb-backup --backup \
   --target-dir=/backups/mariadb/202101291600/ \
   --user=mariadb-backup \
   --password=mbu_passwd
$ sudo mariadb-backup --prepare \
   --target-dir=/backups/mariadb/202101291600/
UNLOCK TABLES;
$ sudo systemctl stop mariadb-columnstore-cmapi
$ sudo systemctl stop mariadb-columnstore
$ sudo systemctl stop mariadb
$ sudo rsync -av /backups/columnstore/202101291600/storagemanager/ /var/lib/columnstore/storagemanager/
$ sudo chown -R mysql:mysql /var/lib/columnstore/storagemanager
$ sudo rsync -av /backups/columnstore/202101291600/data1/ /var/lib/columnstore/data1/
$ sudo rsync -av /backups/columnstore/202101291600/data2/ /var/lib/columnstore/data2/
$ sudo rsync -av /backups/columnstore/202101291600/data3/ /var/lib/columnstore/data3/
$ sudo chown -R mysql:mysql /var/lib/columnstore/data1
$ sudo chown -R mysql:mysql /var/lib/columnstore/data2
$ sudo chown -R mysql:mysql /var/lib/columnstore/data3
$ sudo mariadb-backup --copy-back \
   --target-dir=/backups/mariadb/202101291600/
$ sudo chown -R mysql:mysql /var/lib/mysql
$ sudo systemctl start mariadb
$ sudo systemctl start mariadb-columnstore-cmapi
MariaDB Backup
FLUSH TABLES WITH READ LOCK
MariaDB Backup
MariaDB Backup
UNLOCK TABLES
MariaDB Backup

This page is: Copyright © 2025 MariaDB. All rights reserved.