Before starting a backup, make sure that the cluster is properly configured for performing one. (See Section 25.6.8.3, “Configuration for NDB Cluster Backups”.)
The START BACKUP
command is used to create a
backup, and has the syntax shown here:
START BACKUP [backup_id]
[encryption_option]
[wait_option]
[snapshot_option]
encryption_option:
ENCRYPT [PASSWORD=password]
password:
{'password_string' | "password_string"}
wait_option:
WAIT {STARTED | COMPLETED} | NOWAIT
snapshot_option:
SNAPSHOTSTART | SNAPSHOTEND
Successive backups are automatically identified sequentially, so
the backup_id
, an integer greater
than or equal to 1, is optional; if it is omitted, the next
available value is used. If an existing
backup_id
value is used, the backup
fails with the error Backup failed: file already
exists. If used, the
backup_id
must follow immediately
after the START BACKUP
keywords, before any
other options are used.
START BACKUP
supports the creation of
encrypted backups using ENCRYPT
PASSWORD=
. The
password
password
must meet all of the
following requirements:
Uses any of the printable ASCII characters except
!
,'
,"
,$
,%
,\
, and^
Is no more than 256 characters in length
Is enclosed by single or double quotation marks
When ENCRYPT
PASSWORD='
is
used, the backup data record and log files written by each data
node are encrypted with a key derived from the user-provided
password
'password
and a randomly-generated
salt using a key derivation function (KDF) that employs the
PBKDF2-SHA256 algorithm to generate a symmetric encryption key
for that file. This function has the form shown here:
key = KDF(random_salt, password)
The key so generated is then used to encrypt the backup data using AES 256 CBC inline, and symmetric encryption is employed for encrypting the backup fileset (with the generated key).
NDB Cluster never saves the user-furnished password or generated encryption key.
The PASSWORD
option can be omitted from
encryption_option
. In this case, the
management client prompts the user for a password.
It is possible using PASSWORD
to set an empty
password (''
or ""
), but
this is not recommended.
An encrypted backup can be decrypted using any of the following commands:
ndbxfrm
--decrypt-password=
password
input_file
output_file
ndb_print_backup_file
-P
password
file_name
ndbxfrm
--decrypt-password-from-stdin
input_file
output_file
ndb_print_backup_file
--backup-password-from-stdin
file_name
ndb_mgm
--backup-password-from-stdin
--execute "START BACKUP ..."
See the descriptions of these programs for more information, such as additional options that may be required.
The wait_option
can be used to
determine when control is returned to the management client
after a START BACKUP
command is issued, as
shown in the following list:
If
NOWAIT
is specified, the management client displays a prompt immediately, as seen here:ndb_mgm> START BACKUP NOWAIT ndb_mgm>
In this case, the management client can be used even while it prints progress information from the backup process.
With
WAIT STARTED
the management client waits until the backup has started before returning control to the user, as shown here:ndb_mgm> START BACKUP WAIT STARTED Waiting for started, this may take several minutes Node 2: Backup 3 started from node 1 ndb_mgm>
WAIT COMPLETED
causes the management client to wait until the backup process is complete before returning control to the user.
WAIT COMPLETED
is the default.
A snapshot_option
can be used to
determine whether the backup matches the state of the cluster
when START BACKUP
was issued, or when it was
completed. SNAPSHOTSTART
causes the backup to
match the state of the cluster when the backup began;
SNAPSHOTEND
causes the backup to reflect the
state of the cluster when the backup was finished.
SNAPSHOTEND
is the default, and matches the
behavior found in previous NDB Cluster releases.
If you use the SNAPSHOTSTART
option with
START BACKUP
, and the
CompressedBackup
parameter is enabled, only the data and control files are
compressed—the log file is not compressed.
If both a wait_option
and a
snapshot_option
are used, they may be
specified in either order. For example, all of the following
commands are valid, assuming that there is no existing backup
having 4 as its ID:
START BACKUP WAIT STARTED SNAPSHOTSTART
START BACKUP SNAPSHOTSTART WAIT STARTED
START BACKUP 4 WAIT COMPLETED SNAPSHOTSTART
START BACKUP SNAPSHOTEND WAIT COMPLETED
START BACKUP 4 NOWAIT SNAPSHOTSTART
The procedure for creating a backup consists of the following steps:
Start the management client (ndb_mgm), if it not running already.
Execute the
START BACKUP
command. This produces several lines of output indicating the progress of the backup, as shown here:ndb_mgm> START BACKUP Waiting for completed, this may take several minutes Node 2: Backup 1 started from node 1 Node 2: Backup 1 started from node 1 completed StartGCP: 177 StopGCP: 180 #Records: 7362 #LogRecords: 0 Data: 453648 bytes Log: 0 bytes ndb_mgm>
When the backup has started the management client displays this message:
Backup backup_id started from node node_id
backup_id
is the unique identifier for this particular backup. This identifier is saved in the cluster log, if it has not been configured otherwise.node_id
is the identifier of the management server that is coordinating the backup with the data nodes. At this point in the backup process the cluster has received and processed the backup request. It does not mean that the backup has finished. An example of this statement is shown here:Node 2: Backup 1 started from node 1
The management client indicates with a message like this one that the backup has started:
Backup backup_id started from node node_id completed
As is the case for the notification that the backup has started,
backup_id
is the unique identifier for this particular backup, andnode_id
is the node ID of the management server that is coordinating the backup with the data nodes. This output is accompanied by additional information including relevant global checkpoints, the number of records backed up, and the size of the data, as shown here:Node 2: Backup 1 started from node 1 completed StartGCP: 177 StopGCP: 180 #Records: 7362 #LogRecords: 0 Data: 453648 bytes Log: 0 bytes
It is also possible to perform a backup from the system shell by
invoking ndb_mgm with the -e
or --execute
option, as shown in
this example:
$> ndb_mgm -e "START BACKUP 6 WAIT COMPLETED SNAPSHOTSTART"
When using START BACKUP
in this way, you must
specify the backup ID.
Cluster backups are created by default in the
BACKUP
subdirectory of the
DataDir
on each data
node. This can be overridden for one or more data nodes
individually, or for all cluster data nodes in the
config.ini
file using the
BackupDataDir
configuration parameter. The backup files created for a backup
with a given backup_id
are stored in
a subdirectory named
BACKUP-
in the backup directory.
backup_id
Cancelling backups. To cancel or abort a backup that is already in progress, perform the following steps:
Start the management client.
Execute this command:
ndb_mgm> ABORT BACKUP backup_id
The number
backup_id
is the identifier of the backup that was included in the response of the management client when the backup was started (in the messageBackup
).backup_id
started from nodemanagement_node_id
The management client acknowledges the abort request with
Abort of backup
.backup_id
orderedNoteAt this point, the management client has not yet received a response from the cluster data nodes to this request, and the backup has not yet actually been aborted.
After the backup has been aborted, the management client reports this fact in a manner similar to what is shown here:
Node 1: Backup 3 started from 5 has been aborted. Error: 1321 - Backup aborted by user request: Permanent error: User defined error Node 3: Backup 3 started from 5 has been aborted. Error: 1323 - 1323: Permanent error: Internal error Node 2: Backup 3 started from 5 has been aborted. Error: 1323 - 1323: Permanent error: Internal error Node 4: Backup 3 started from 5 has been aborted. Error: 1323 - 1323: Permanent error: Internal error
In this example, we have shown sample output for a cluster with 4 data nodes, where the sequence number of the backup to be aborted is
3
, and the management node to which the cluster management client is connected has the node ID5
. The first node to complete its part in aborting the backup reports that the reason for the abort was due to a request by the user. (The remaining nodes report that the backup was aborted due to an unspecified internal error.)NoteThere is no guarantee that the cluster nodes respond to an
ABORT BACKUP
command in any particular order.The
Backup
messages mean that the backup has been terminated and that all files relating to this backup have been removed from the cluster file system.backup_id
started from nodemanagement_node_id
has been aborted
It is also possible to abort a backup in progress from a system shell using this command:
$> ndb_mgm -e "ABORT BACKUP backup_id"
If there is no backup having the ID
backup_id
running when an
ABORT BACKUP
is issued, the management
client makes no response, nor is it indicated in the cluster
log that an invalid abort command was sent.