B
Server Shadowing and Recovery
RTR shadowing gives you the ability to recover from a site disaster without the
need for special coding within your application program. This appendix is an
introduction to RTR shadowing.
A server for a database partition is said to be shadowed when two copies of the
same server perform identical actions on identical database copies on separate
nodes. It is possible to declare servers to be members of a pair of shadow sites for
any particular RTR key-range. Shadowed sites can either be two nodes within a
single cluster, or can be two separate clusters.
Note that concurrent servers handle
similar
transactions, (that is, in the
same key-range but not the same transactions). Standby servers do not handle
transactions at all (for the given key-range) and shadow servers handle the
same
transactions.
B.1 Primary and Secondary Roles
There is a concept of primary and secondary role for the shadow server pair,
although in most cases this is transparent to the user when the processing is the
same on both sites.
Initial role assignment is arbitrary, in that the first server of a shadow pair to
start is given the primary role, and the second the secondary. The assigned roles
may change, as servers come and go. Roles are required, since RTR needs to
determine the voting order on the primary site before the transaction is presented
to the secondary site.
B.2 Automatic Features
Shadow sites each have an identical copy of the customer’s database.
Transactions are sent by RTR to
both
sites, and RTR ensures that they are
processed by the servers in equivalent order on each of these sites, so that both
copies of the customer database remain up-to-date.
A transaction is sent to the secondary site only after the primary has accepted it,
or if the primary fails before being asked to vote.
RTR suppresses replies and broadcasts issued by the secondary shadow server.
B.2.1 Shadow Events
RTR provides the following shadowing events:
• RTR_EVTNUM_SRPRIMARY - Server is in primary mode
• RTR_EVTNUM_SRSTANDBY - Server is in standby mode
• RTR_EVTNUM_SRSECONDARY - Server is in secondary mode
• RTR_EVTNUM_SRSHADOWLOST - Server has lost its shadow partner
Server Shadowing and Recovery B–1