Telesis DBak v1.4
What is DBak?
Being entirely frustrated on the occasions with corrupt databases created by the gbak utility that comes with Interbase and Firebird, I decided it was time to do something about it. Hence DBak - the Database Backup.
DBak is my alternative to gbak. It is an Interbase/Firebird backup utility that does not use gbak at all, instead it duplicates the user data and metadata into a new database. Restoring recreates the full database. It also offers a Rebuild option that does a full rebuild in one step.
Something that may make the utility appealing, even if you do like gbak, is that the DBak source is available in (Delphi/C++Builder) component form. This will allow you to embed backup facilities directly into your applications.
I've reduced the amount of information on this page, those interested in more detail can download the help file I have written to accompany the DBak applications.
With the advent of NBackup as part of Firebird the need for DBak to achieve reliable backups is greatly reduced (and NBackup is much much faster). However DBak is still useful upgrading databases.
Licence
This product was previously distributed under a "trustware" licence. I have decided to release the source code under a form of freeware licence. The freeware licence says you can use the source code without paying any fees, even for commercial applications and libraries. The ownership (copyright) of the source code remains with Telesis Computing Pty Ltd. The full licence details are available in the source code, you must read and accept the licence conditions before using the product.
Recent Release Notes...
1.4.2 (14-Apr-2005): Fixed a significant bug in DBak restore or rebuild with UDFs that have BY DESCRIPTOR arguments. If you use UDFs with BY DESCRIPTOR then it is important that you download this update and read the "readme_udfbug.txt" contained in the package (its in both source and compiled packages). A few other minor updates.
1.4.0 (09-Jul-2004): DBak console now writes more detail to the system event log (when using /SYSLOG option). DBakWin now uses XP Themes. Source released as freeware.
Please read the history.txt file in the package for more details.
Server Version Notes...
DBak has been tested to work with Interbase v5.6, Interbase v6.0 and Firebird v1.0 and v1.5.
I have not attempted to support any of the new features in Interbase v7, DBak should still work with that version provided no v7 specific metadata needs to be generated. Unless someone wants to contribute to the development I have no current intention to support Borland Interbase v7 or later.
Downloads...
DBak v1.4.2 (14-Apr-2005)
This unprotected zip file (1.6Mb) contains the pre-compiled executables package:
- DBak.exe - console executable for use in batch files and scheduled execution.
- DBakWin.exe - Windows (9x,NT,2K) GUI executable for interactive backups
- WinHelp file describing operation of DBak.
DBak v1.4.2 Source (14-Apr-2005)
- DBak component source code. (226kB)
- Includes source to the DBak.exe and DBakWin.exe applications as examples.
- WinHelp file online help to component source code.
- Package files for Delphi 5, 6 and 7.
- Email if you have questions.
Source Code Notes...
If you are interested in obtaining the component package, in order to integrate DBak capabilities into your own applications, then the following notes will be important...
The package depends on having IBObjects v4.2.Ie or later installed. See the IBObjects site for details. The source may build with some earlier versions of IBObjects (after v4.2.Hl) but the result will not support new Firebird v1.5 features. To support the new BIGINT domain/column type fully the source must be built with a version of IBO released after 14-Feb-2004. To avoid the DBak "UDF with BY DESCRIPTOR" bug you will need a version of IBObjects released after 14-Apr-2005.
The default configuration of the package is dependant on having my Enhanced Components installed, however you can edit the DBak_Opts.inc file and define DBAK_NO_ENH to have both the package and the applications built with standard VCL controls. This configuration is not well tested but I do not expect major problems.
Because I attempted to support both standard VCL and my enhanced controls many of the controls are created at runtime, which makes the various form definitions less easy to understand and maintain inside the Delphi IDE. However the code is not intended as a demonstration of using edit controls, but how to use the DBak components, so I do not see this has a significant issue.
The package is supplied with package and project files for Delphi 5, 6 & 7. As far as I know the package should be able to compile under C++Builder 5 and 6 but you will need to create your own package and project files. I think it will probably also work with Delphi 4 and C++Builder 4.
Future Development...
This component and applications rely upon IBObjects, however the resulting backup database will not. If anyone else wished to create independant backup/restore utilities (perhaps based on IBX or direct API access using C or whatever), then I would like to keep the result of all such utilities compatible with each other. If anyone wishing to create such utilities contacts me I am happy to share the detail of the structures used to ensure compatibility.
Last Changed: 25-July-2015
(c) Copyright 2015 Telesis Computing Pty Ltd