ibec_RestoreDatabase

Syntax

     function ibec_RestoreDatabase(BackupFiles : string; RestoreTo : string;
                                   Options : string; CallbackBlock : string) : variant;

Description

The ibec_RestoreDatabase starts the restore process using the server Services Manager. It returns NULL if the restore process succeeded, otherwise it returns an error message.

ibec_RestoreDatabase also supports FIX_FSS_DATA and FIX_FSS_METADATA options which are equal to the corresponding gbak keys (see example below).

Options

BackupFilesList of backup files delimited with semicolon.
RestoreToList of database files delimited with semicolon. Each list item (in case of restore to multiple files) should be in format <db_file_name>=<file_size_in_pages>.
<db_file_name>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).
<file_size_in_pages>Size of the database file in pages (!).
OptionsList of restore 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.
RestoreFromClientThis specification used a local backup file while restoring a database.
PAGESIZE=<page_size> or PAGE_SIZE=<page_size>Page size of the restored database.
PAGEBUFFERS=<buffers> or BUFFERS=<buffers> or BU=<buffers>Overrides page buffers default.
ROLETo use an SQL role specify it in the option string: Role=SOMEROLE.
INACTIVE (or DEACTIVATEINDEXES, or I)Deactivate indexes during restore.
KILL (or NOSHADOWS, or K)Restore without creating shadows.
NO_VALIDITY (or NOVALIDITY, or N)Do not restore database validity conditions.
ONE_AT_A_TIME (or ONEATATIME, or O)Restore one table at a time (commit after each table).
REPLACE_DATABASE (or REPLACEDATABASE, or REP)Replace database from backup file.
CREATE_DATABASE (or CREATEDATABASE, or C)Create database from backup file.
USE_ALL_SPACE (or USEALLSPACE, or USE)Do not reserve space for record versions.
META_DATA (or METADATA, or M)Restore metadata only.
LOGFILE=<log_file_name>Name of output log file.
NoDBTriggersThis prevents database/transaction triggers from firing during a backup/restore.
WireCompressionTo enable compression it is necessary to specify 'WireCompression=TRUE' (or just 'WireCompression') in the options string. (Both client and server must support WireCompression.)
CallbackBlockCallback 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 parameter.

Example 1

Restore database from single backup file with no output (silent mode):

    execute ibeblock
    as
    begin
      res = ibec_RestoreDatabase('E:\TESTDB.FBK',
                                 'LOCALHOST:E:\TESTDB.FBK',
 'ClientLib=C:\Program Files\Firebird\Bin\fbclient.dll;
 Password=masterkey; User=SYSDBA;OneAtATime; PageSize=8192; C',
                                 null);
      if (res is null) then
        ibec_ShowMessage('Restore completed successfully');
      else
        ibec_ShowMessage(res);
    end

Example 2

Restore database from multiple backup files to single database file with full output:

    execute ibeblock
    as
    begin
      cbb = 'execute ibeblock (LogStr variant)
             as
             begin
               ibec_Progress(LogStr);
             end';

 res = ibec_RestoreDatabase('E:\TESTDB_1.FBK; E:\TESTDB_2.FBK; E:\TESTDB_3.FBK',
                                 'LOCALHOST:E:\TESTDB.FBK',
 'ClientLib=C:\Program Files\Firebird\Bin\fbclient.dll;
 Password=masterkey; User=SYSDBA; C; REP; O; LogFile=E:\Restore.log',
                                 cbb);
      if (res is null) then
        ibec_ShowMessage('Restore completed successfully');
      else
        ibec_ShowMessage(res);
    end

Example 3

Restore database from multiple backup files to multiple database files with full output:

    execute ibeblock
    as
    begin
      cbb = 'execute ibeblock (LogStr variant)
             as
             begin
               ibec_Progress(LogStr);
             end';

 res = ibec_RestoreDatabase('E:\TESTDB_1.FBK; E:\TESTDB_2.FBK; E:\TESTDB_3.FBK',
                                 'LOCALHOST:E:\TESTDB1.FBK=20000;
                                     LOCALHOST:E:\TESTDB2.FBK=20000;
                                     LOCALHOST:E:\TESTDB3.FBK',
 'ClientLib=C:\Program Files\Firebird\Bin\fbclient.dll;
 Password=masterkey; User=SYSDBA; C; REP; O; BU=3000;
                                     LogFile=E:\Restore.log',
                                 cbb);
      if (res is null) then
        ibec_ShowMessage('Restore completed successfully');
      else
        ibec_ShowMessage(res);
    end

Example 4

 res = ibec_RestoreDatabase('D:\NEWBLOCKDEMO.FBK',
                            'localhost:D:\NEWBLOCKDEMO.FB2',
                            'ClientLib=C:\Program Files\Firebird\Bin\fbclient.dll;
                             password=masterkey; user=SYSDBA; OneAtATime; PageSize=8192;
                             fix_fss_data=WIN1251; fix_fss_metadata=WIN1251', null);

See also:
ibec_BackupDatabase

back to top of page
<< ibec_BackupDatabase | IBEBlock | ibec_SetConnectionProp >>