Online Backup
Online backup of a Terracotta cluster is performed by the cluster-tool, and is the recommended method to take a backup. The following section describes the online backup feature and the process:
Configuring the Backup feature
To allow the server to use the Backup feature, ensure that you have set up the <backup-restore> and <backup-location> elements in the server configuration file, as shown in the following snippet:
<tc-config>
<plugins>
...
<service>
<backup-restore xmlns="http://www.terracottatech.com/config/backup-restore">
<backup-location path="/path/to/backup/dir" />
</backup-restore>
</service>
...
</plugins>
...
</tc-config>
The path in the <backup-location> element can be absolute, or relative to the directory where the configuration file is located. If the directory specified by the backup location path is not present, it will be created during backup.
Prerequisites
Before proceeding with the online backup, ensure that:
1. At least one server in each stripe is up and running.
2. The servers have read and write permissions to the backup location.
3. Backup location has enough space available to store the backup data.
4. cluster-tool has fast connectivity to all the servers and the cluster is not heavily loaded with application requests.
Taking an online Backup
A backup is taken using the cluster-tool. Visit
Cluster Tool for details on the
backup command. If the backup fails for some reason, you can check the server logs for failure messages. Additionally, running the
backup command using the
-v (verbose) option might help.
Backup directory structure
The following diagram shows an example of the directory structure that results from a backup:
/tmp/backup1/
└── 7c868f83-5075-4b32-bef5-56f29fdcc6f0
└── stripe0
└── server-1
└── datadir
├── ehcache
│ └── frs
│ └── default-frs-container
│ ├── default-cachedata
│ │ └── seg000000000.frs
│ └── metadata
│ └── seg000000000.frs
├── platform-data
│ ├── entityData
│ │ ├── seg000000000.frs
│ │ └── seg000000001.frs
│ └── transactionsData
│ ├── seg000000000.frs
│ └── seg000000001.frs
└── store
├── data
│ └── seg000000000.frs
└── meta
└── seg000000000.frs
where:
1. /tmp/backup1/ is the backup location defined in the configuration file
2. 7c868f83-5075-4b32-bef5-56f29fdcc6f0 is an ID created by the backup command to uniquely identify a backup instance
3. stripe0 is the stripe sequence in the cluster
4. server-1 is the server name defined in the server configuration file
5. datadir is the data directory name (for a given data directory) defined in the server configuration file