An avalerion or alerion is a mythological bird, it is also a minor fork of the Firebird 3.0 database engine that supports native (internal) replication without using triggers. It is intended to be a high performance variant of IBReplicator for Firebird.
You can enable or disable replication for tables and sequences (replication for tables is enabled by default, sequences are not).
CREATE TABLE <table definition> (<fields definition>) [ENABLE|DISABLE REPLICATION] ALTER TABLE <other alter table options> [ENABLE|DISABLE REPLICATION] CREATE/ALTER SEQUENCE <sequence definition> [ENABLE|DISABLE REPLICATION]
Inserts, Updates and Deletes are captured automatically on commit and logged to an output directory, one file per transaction. These files are then read and replicated automatically by the Replication Server.
Avalerion (the forked Firebird 3.0 database engine) is used with a Change Data Capture plugin which can be found in the normal IBReplicator installations. This plugin and its configuration file needs to be copied into Avalerion's plugins subdirectory.
Replication activation is controlled globally by the following configuration parameters ReplicationPlugin, ReplicationEnabled and LicenseKey.
The parameters ReplicationPlugin and ReplicationEnabled can be set globally in firebird.conf or at individual database-level in databases.conf.
The plug-in named there will be used to capture data changes in the relevant Database(s). Only one plug-in name is allowed, not a list.
ReplicationPlugin = <symbolic name of plugin> The default is none. e.g. ReplicationPlugin = ibpr_cdc
Although ReplicationEnabled can be set globally, it is recommended to set it individually for each database, in databases.conf.
ReplicationEnabled = <bool> The default is false. e.g. ReplicationEnabled = true
Transaction Level Control
There is a new transaction parameter NO REPLICATION that can be used to set a Transaction Parameter Buffer (TPB) - isc_tpb_no_replication if set it will disable replication for all the modifications that are made in that particular transaction.
SET TRANSACTION READ COMMITTED NO REPLICATION
The Plug-in and Its Configuration
The plug-in ibpr_cdc is shipped with IBReplicator and has the following settings defined in the configuration file ibpr_cdc.conf that is included with it:
OutputDirectory sets the directory where captured data changes are written, one file per transaction. The directory must exist and be accessible by the Avalerion engine. The default is the current directory for the server.
OutputDirectory=<path> e.g. OutputDirectory=/var/ibpr/logs
The LicenseKey is the license used to enable the plug-in. It is an ordinary Server license for IBReplicator 5.0, including evaluation.
LicenseKey=<license key string> The default is none. ie. copy the license from the license email and then cut and paste it directly into this parameter.
Remember, you must copy the plugin and configuration file from IBReplicator's installation directory into Avalerion's plugins directory.
More information on the installation and activation of Avalerion can be found in the presentation given by Paul Reeves to the Firebird Conference in Berlin 2019.
Avalerion uses the IBReplicator Server (and Manager) to replicate the "ofline" data and as such, needs to be licensed as normal. So a minimum source, target configuration require, 2 Server Licenses (one for the CDC Plugin, and one for the Replication Server) and one Replicant License for the target database. Please see A Quick Guide to IBReplicator licensing.