The ibec_BackupDatabase starts the backup process using the server Services Manager. It returns NULL if the backup process is successful, otherwise it returns an error message.
function ibec_BackupDatabase(DatabaseToBackup : string; BackupFiles :string; Options : string; CallbackBlock : string) : variant;
DatabaseToBackup | Full connection string to the database including server name or IP address if the database is located on a remote server (for example, 123.123.123.123:D:\DATA\MyDB.fdb). | ||
BackupFiles | List of backup files delimited with semicolon. Each list item should be formatted as <file_name>=<file_size>. | ||
<file_size> | Specifies the length of the result backup file in bytes (no suffix), kilobytes (K), megabytes (M) or gigabytes (G). IMPORTANT: All backup files will be created on the server side because of the use of the Services Manager! | ||
Options | A list of backup options delimited with semicolon. Possible options are: | ||
USER=<user_name> | User name | ||
PASSWORD=<password> or PAS=<password> | Password. | ||
CLIENTLIB=<client_lib_name> | Name of clientlib dll; gds32.dll will be used if not specified. | ||
ExpectedDB | See Example 3 below. | ExpectedDB | See Example 3 below. |
BackupToClient | This option creates the backup file on the client side instead of the server side. | ||
SkipData | See Example 4 below. | ||
Statistics | Options are: this is equal to the -STATISTICS gbak switch and should contain any combination of T, D, R, W chars as described in the Firebird documentation (https://firebirdsql.org/file/documentation/release_notes/html/en/3_0/bk02ch11s03.html). (see Example 4 below). | ||
ROLE | To use an SQL role specify it in the option string: Role=SOMEROLE. | ||
IGNORE (or IG) | Ignore bad checksums. | ||
LIMBO (or L) | Ignore transactions in limbo. | ||
METADATA (or META_DATA, or M) | Backup metadata only. | ||
GARBAGECOLLECT (or GARBAGE_COLLECT, or G) | Inhibit garbage collection. | ||
OLDDESCRIPTIONS (or OLD_DESCRIPTIONS, or OL) | Save old style metadata descriptions. | ||
NONTRANSPORTABLE (or NON_TRANSPORTABLE, or NT) | Non-transportable backup file format. | ||
CONVERT (or CO) | Backup external files as tables. | ||
LOGFILE=<log_file_name> | Name of output log file. | ||
NoDBTriggers | This prevents database/transaction triggers from firing during a backup/restore. | ||
WireCompression | To enable compression it is necessary to specify 'WireCompression=TRUE' (or just 'WireCompression') in the options string. (Both client and server must support WireCompression.) | ||
CallbackBlock | A callback IBEBlock which will be executed for each output line. The callback IBEBlock must have at least one input parameter, which will be used to pass an output line within it. If there is no callback block use NULL or an empty string as a value of this. |
Backup a database to a single backup file with no output (silent mode):
execute ibeblock as begin res = ibec_BackupDatabase('LOCALHOST:D:\FB2_DATA\TESTDB.FDB', 'E:\TESTDB.FBK',
'ClientLib=C:\Program Files\Firebird\Bin\fbclient.dll;
Password=masterkey; User=SYSDBA; G;', null); if (res is null) then ibec_ShowMessage('Backup completed successfully'); else ibec_ShowMessage(res); end
Backup a database to a single backup file with no output (silent mode):
execute ibeblock as begin res = ibec_BackupDatabase('LOCALHOST:D:\FB2_DATA\TESTDB.FDB', 'E:\TESTDB.FBK',
'ClientLib=C:\Program Files\Firebird\Bin\fbclient.dll;
Password=masterkey; User=SYSDBA; G;', null); if (res is null) then ibec_ShowMessage('Backup completed successfully'); else ibec_ShowMessage(res); end
Res = ibec_BackupDatabase('localhost:D:\FB3_DATA\SELFSECURITYDB.FB3', 'D:\BACKUPS\SELFSECURITYDB.FBK', 'ClientLib=C:\Program Files\Firebird\fbclient.dll; Password=masterkey; User=SYSDBA; ExpectedDB=D:\FB3_DATA\SELFSECURITYDB.FB3', null);
Arguments for STATISTICS output:
Item | Argument | Data Reported |
---|---|---|
Total time | T | Time elapsed since the gbak process started, in seconds and milliseconds. |
Time delta | D | Time elapsed since the previous line of output, in seconds and milliseconds. |
Page reads | R | Number of page reads since the previous line of output, integer. |
Page writes | W | Number of page writes since the previous line of output, integer. |
Res = ibec_BackupDatabase('localhost:D:\FB3_DATA\SELFSECURITYDB.FB3', 'D:\BACKUPS\SELFSECURITYDB.FBK', 'ClientLib=C:\Program Files\Firebird\fbclient.dll; Password=masterkey; User=SYSDBA; SkipData=(sales|customer); Statistics=TDRW', null);