Subject RE: [Firebird-general] How to prepare to replication ?
Author Jason Wharton
If your replication is just one way between two databases then IB Objects
has a really nice replication capability. Check it out here
http://www.ibobjects.com/.

If you are a non-profit, charitable, religious, educational, etc.
organization/individual, or funds are just too tight, you can apply for
(nobody's ever been turned down) a trustware license that allows you to use
it without cost.

Jason Wharton

> -----Original Message-----
> From: fowlertrainer [mailto:fowlertrainer@...]
> Sent: Thursday, November 04, 2004 2:02 AM
> To: Firebird-general@yahoogroups.com
> Subject: [Firebird-general] How to prepare to replication ?
>
> Hi !
>
> We have two sites, and the primary DB server (FireBird) is placed in
> the first site.
>
> But when I test my program, I see that the net line across the two
> sites is very instable, and very slow to I use intensive DB queries,
> reports, etc.
>
> So I decide that in the future we need replication, and secondary db
> server.
>
> But we are non-profit healthcare organization (Peto Institute), and we
> don't have a cash now to pay for IBReplicator, or other programs.
>
> In the future possible we buy a software, but not now .
>
> We have many "intra" software, but every of these products are
> one-site optimized program. The DB is optimized to one server.
>
> How to we prepare the DB to two-site work, and replication ?
>
> We want to start the modifying all of the programs, and DB structure -
> to prepare the replication. We want to "pay" now with the software
> rewriting, and Db restructuring costs to when the replication will
> started, we will avoid these kinds of problems.
>
> So:
> I see two (3) way to prepare.
>
> 1.)
> Upgrade Db from one to 2 keys.
> ID ->SITE_ID, ID
> That is very painful solution, but it is best for long time.
> I must restructure all of my tables, and I must rewrite my every
> programs to use these keys, not the one ID.
> This solution is the best, because the SITE-s are addable later in
> simple way; and the databases (when they are synchronized) are can
> copied as files (but generators need to re-set to they last values).
>
> 2.)
> Segmentation of ID.
> ID - 0..1 milliard - site1 (> site2)
> That is very simple to use, no changes will made in programs/db-s,
> only set generators in the second db.
> But when I forget to set a generator to it's site determined initial
> value, it is cause BIG-BIG problems, because it is overwrite other
> records (the site1's records).
> I can create GENID function in my program and I can check this value
> before insert, but in server side (stored proc) it is not
> working for me.
> The databases can copy as files, but generators are must be re-set is
> they last values in every site.
>
> 3.)
> REPL_ID
> Every table have this key, and the db-s in sites are very different.
> The name X.Y is ID=128 in site1, but 1150 in site2.
> The replicator not use the primary key to identify record, it is use
> repl_id.
> But when I try to replicating an item, it must correct the FK-s.
> So it is not practical, and very hard to coding the
> replicator software.
>
>
> Please help me.
> What is the best solution for preparing ?
>
> What is method what is supported by IBreplicator ?
>
> How I IBreplicator working when try to sync records ? It is use
> primary key ? Or other ?
>
> Thanx for help:
> ft