An account of setting up a replicated system
From: Neil Sargent (neil_at_sargent.nospam.demon.co.uk)
Date: 02/20/04
- Next message: Jack MacDonald: "Re: How do I manage a partial replica farm?"
- Previous message: Neil Sargent: "Re: How do I manage a partial replica farm?"
- Next in thread: Michael \(michka\) Kaplan [MS]: "Re: An account of setting up a replicated system"
- Reply: Michael \(michka\) Kaplan [MS]: "Re: An account of setting up a replicated system"
- Messages sorted by: [ date ] [ thread ]
Date: Fri, 20 Feb 2004 23:56:56 -0000
There follows an account of my deployment of my replication system. I have
dispersed a number of questions and all comments would be appreciated.
I know that this post is long. However if the experts who monitor the group
(in particular Michka and Jack MacDonald) will correct or endorse it, it
might become a useful resource for future developers who, like me, find this
whole subject rather daunting.
>>>>>>>>>>>
The head office has about six users. I created a DM and EF (Empty Full
replica) from the original database backend. I then created a HUB replica
from the DM.
I then created two replicas from the HUB, named SPARE and BACKUP. I used the
TSISync MakeReplica function here, which appears to assign a fixed priority
of 90 by default if the priority parameter is not specified (rather than DAO
3.60 which assigns 90% of the source replica).
I then managed the HUB, SPARE and BACKUP replicas using Replication Manager
(RM) and locally synched all three. Inspecting the synchronizer log file, I
determined that RM had allocated SPARE as the base replica, which was not my
intention. I wanted to know when I indirect sync to the farm, which replica
is going to be synched so I can synch the local working replica to it
without wating for the servers RM schedule to bring the rest of the farm up
to date.
So using RM's MoveReplica function, I renamed the SPARE to TEMP, HUB to
SPARE and TEMP to HUB so that HUB is my base replica.
(I know that the base replica for a managed set of full replicas will be
that with the lowest replica ID. However, it appears that GUIDs are not
ascending, even when generated on the same machine, in sequence. This does
not particularly surprise me. Is there a way of predicting which replica
will be the base without the above "suck it and see" approach?)
I then MoveReplica'd the BACKUP replica to a second, always-on machine on
the LAN. I now had my head office farm of three
replicas, with HUB known to be the base replica and set an every 30mins RM
schedule from 3:00am to 9:30pm.
I created a new replica from the HUB and called this WORKING. I did not
manage the WORKING replica. Instead, I set RM to synch it with the farm
every 30 mins from 3:15am to 9:45pm. This replica is the shared backend for
the six head office users.
The server backup runs at 10pm so by ensuring no updates occur within the
farm I have a complete set of replicas saved for off-site backup to cover
total loss of the server and BACKUP machines (e.g. office fire, flood,
theft). In the case of server disk failure, I have BACKUP on a second
machine which is at most 30 mins out of date.
I then created a new, full replica for one of the office users' laptop
called PC. This laptop docks with the LAN when it is in the office and
connects through RAS dial-up when in the field. I created a public root
share dropbox on the server and another on the laptop. I created a group for
the server call HUBUSERS and put each of the local database users in the
group except for the laptop user. I set the permissions for the hub folder
so only the HUBUSERS group could access it (with Change permissions). This
means that the folder could not be opened by the laptop user so it must
always use indirect synchs over LAN or dial-up.
I created the laptop's full replica from the HUB and then MoveReplica'd it
into the laptop's dropbox. I then used RM on the laptop to MoveReplica it
into a private folder (C:\PCHub) on the laptop so that the servers RM could
not see it. I repeated the procedure to create a second replica on the
laptop (PCSPARE) and then set up RM to manage the two replicas on an hourly
schedule. I then set up the application to use the PC replica as the working
replica on the laptop.
The laptop now has two replicas managed by RM, one of which is used as the
backend for the application. The application uses the SyncIndirect2 method
of TSISync to synchronise, the laptop to the HUB replica. Replication
Manager is just used in the background as a sort of hourly backup.
(Does this meet the requirements of a farm? I am assuming that if a couple
of indirect synchs fail and the PC replica goes into the "Unknown
synchronizer" state, that the PCSPARE replica will refresh it and recover
the situation. Is this correct?)
I then repeated the whole laptop setup for a second satellite office's PC.
We physically transported the satellite office's PC to head office so that
it could be set up with a LAN connection, rather than moving a 30Mbyte
replica across the 33kbaud dial-up link (the baud rate is limited by the low
quality of the land-line rather than the modem!) Since I had a LAN
connection, I moved both replicas across the link. Had I been limited to
dial-up, I would have moved one across the connection and created the spare
replica from it.
Finally I created a number of single partial replicas for use by field
workers who will connect by dial-up only. Eventually I decided that the
partials weren't worth farming. They are only about 5Mbytes for which an
initial move may over the dial-up is practical. I have any lost replica
problems I will be able to fix them with my EF replica (or in fact a working
EF replica derived from it).
I'm not out of the woods yet. I have discovered that my application is
generating conflicts (formerly data errors) because one of its functions
modifies a record's primary key. Sorting that one is my immediate task in
hand. It seemed like a good idea, pre-replication because it saved me
deleting/inserting a record. What else have I in store in the next couple of
weeks????
Best Regards
Neil
--------------------------------------------------------
Neil Sargent
Smart IT
Email: neil@sargent.nospam.demon.co.uk
--------------------------------------------------------
- Next message: Jack MacDonald: "Re: How do I manage a partial replica farm?"
- Previous message: Neil Sargent: "Re: How do I manage a partial replica farm?"
- Next in thread: Michael \(michka\) Kaplan [MS]: "Re: An account of setting up a replicated system"
- Reply: Michael \(michka\) Kaplan [MS]: "Re: An account of setting up a replicated system"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|