Backup & Restore data on SWC-DB

One of the ways backup and restore can be done is with SWC-DB(client)> CLI and the available commands.

  • Dump & Load can use additional FileSystem configurations and write/read to other storage space.

It is incompatible and There is no need of META-COLUMNS backup & restore.


Backing Up

  • List all the columns CID
  • Save the Schema
  • Dump the Column
#!/usr/bin/env bash

### * List all the columns CID
COLUMNS_SELECTOR="r'.*'";
# ALL="" or only the columns-selector, "r'.*'"==EXCLUDING_SYS

SCHEMAS_PATH="./swcdb-schemas";
mkdir -p ${SCHEMAS_PATH};

_cmd="list schemas OUTPUT_ONLY_CID ${COLUMNS_SELECTOR};";
cids=`echo "${_cmd} quit;" | ${SWCDB_INSTALL_PATH}/bin/swcdb --quiet --swc.logging.level=WARN;`;

for cid in ${cids}; do
     ### * Save the Schema
     _cmd="get schema ${cid};";
     schema=`echo "${_cmd} quit;" | ${SWCDB_INSTALL_PATH}/bin/swcdb --quiet --swc.logging.level=WARN`;

     echo "Backing Up: ${schema}";
     echo ${schema} > ${SCHEMAS_PATH}/${cid}.schema;

     ### * Dump the Column
     _cmd="dump col=${cid} into fs=LOCAL path='dumps/${cid}' ext=zst level=6 DISPLAY_STATS;";
     echo "${_cmd} quit;" | ${SWCDB_INSTALL_PATH}/bin/swcdb --quiet --swc.logging.level=WARN;
     echo "###";
done;

Restoring

  • Create all the Columns Schema
  • Load Column Data
#!/usr/bin/env bash

SCHEMAS_PATH="./swcdb-schemas";

### * Create all the Columns Schema
for f_schema in ${SCHEMAS_PATH}/*.schema; do
     _schema=`cat ${f_schema}`;

     echo "Restoring: ${_schema}";
     echo "add ${_schema}; quit;" | ${SWCDB_INSTALL_PATH}/bin/swcdb --quiet --swc.logging.level=WARN;

     filename=$(basename -- "${f_schema}");
     cid="${filename%.*}"

     ### * Load Column Data
     _cmd="load from fs=LOCAL path='dumps/${cid}' into col=${cid} DISPLAY_STATS;";
     echo "${_cmd} quit;" | ${SWCDB_INSTALL_PATH}/bin/swcdb --quiet --swc.logging.level=WARN;
     echo "###";

done;