Oracle® TimesTen In-Memory Database TimesTen to TimesTen Replication Guide Release 11.2.1 Part Number E13072-02 |
|
|
View PDF |
This chapter describes how to configure and start up sample replication schemes. It includes these topics:
You must have the ADMIN privilege to complete the procedures in this chapter.
This section describes how to create an active standby pair with one subscriber. The active master data store is master1
. The standby master data store is master2
. The subscriber data store is subscriber1
. To keep the example simple, all data stores reside on the same computer, server1
.
Figure 2-1 shows this configuration.
Figure 2-1 Active standby pair with one subscriber
This section includes the following topics:
Step 1: Create the DSNs for the master and the subscriber data stores
Step 7: Duplicate the active master data store to the standby master data store
Step 8: Start the replication agent on the standby master data store
Step 9. Duplicate the standby master data store to the subscriber
Step 11: Insert data into the table on the active master data store
Create DSNs named master1
, master2
and subscriber1
as described in "Creating TimesTen Data Stores" in Oracle TimesTen In-Memory Database Operations Guide.
On UNIX and Linux systems, use a text editor to create the following odbc.ini
file:
[master1] DRIVER=install_dir/lib/libtten.so DataStore=/tmp/master1 DatabaseCharacterSet=AL32UTF8 ConnectionCharacterSet=AL32UTF8 [master2] DRIVER=install_dir/lib/libtten.so DataStore=/tmp/master2 DatabaseCharacterSet=AL32UTF8 ConnectionCharacterSet=AL32UTF8 [subscriber1] DRIVER=install_dir/lib/libtten.so DataStore=/tmp/subscriber1 DatabaseCharacterSet=AL32UTF8 ConnectionCharacterSet=AL32UTF8
On Windows, use the ODBC Administrator to set the same attributes. Use defaults for all other settings.
Use the ttIsql
utility to connect to the master1
data store:
% ttIsql master1 Copyright (c) 1996-2009, Oracle. All rights reserved. Type ? or "help" for help, type "exit" to quit ttIsql. connect "DSN=master1"; Connection successful: DSN=master1;UID=terry;DataStore=/tmp/master1; DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;TypeMode=0; (Default setting AutoCommit=1) Command>
Create a table called tab
with columns a
and b
:
Command> CREATE TABLE tab (a NUMBER NOT NULL, > b CHAR(18), > PRIMARY KEY (a));
Define the active standby pair on master1
:
Command> CREATE ACTIVE STANDBY PAIR master1, master2 > SUBSCRIBER subscriber1;
For more information about defining an active standby pair, see Chapter 3, "Defining an Active Standby Pair Replication Scheme".
Start the replication agent on master1
:
Command> CALL ttRepStart;
The state of a new data store in an active standby pair is 'IDLE' until the active master data store has been set.
Use the ttRepStateSet
built-in procedure to designate master1
as the active master data store:
Command> CALL ttRepStateSet('ACTIVE');
Verify the state of master1
:
Command> CALL ttRepStateGet; < ACTIVE > 1 row found.
Create a user terry
with a password of terry
and grant terry
the ADMIN privilege. Creating a user with the ADMIN privilege is required by Access Control for the next step.
Command> CREATE USER terry IDENTIFIED BY terry; User created. Command> GRANT admin TO terry;
Exit ttIsql
and use the ttRepAdmin
utility with the -duplicate
option to duplicate the active master data store to the standby master data store:
% ttRepAdmin -duplicate -from master1 -host server1 -uid terry -pwd terry "dsn=master2"
Use ttIsql
to connect to master2
and start the replication agent:
% ttIsql master2 Copyright (c) 1996-2009, Oracle. All rights reserved. Type ? or "help" for help, type "exit" to quit ttIsql. connect "DSN=master2"; Connection successful: DSN=master2;UID=terry;DataStore=/tmp/master2; DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;TypeMode=0; (Default setting AutoCommit=1) Command> CALL ttRepStart;
Starting the replication agent for the standby data store automatically sets its state to 'STANDBY'. Verify the state of master2
:
Command> CALL ttRepStateGet; < STANDBY > 1 row found.
Use the ttRepAdmin
utility to duplicate the standby master data store to the subscriber data store:
% ttRepAdmin -duplicate -from master2 -host server1 -uid terry -pwd terry "dsn=subscriber1"
Use ttIsql
to connect to subscriber1
and start the replication agent. Verify the state of subscriber1
.
% ttIsql subscriber1 Copyright (c) 1996-2009, Oracle. All rights reserved. Type ? or "help" for help, type "exit" to quit ttIsql. connect "DSN=subscriber1"; Connection successful: DSN=subscriber1;UID=terry;DataStore=/stmp/subscriber1; DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;TypeMode=0; (Default setting AutoCommit=1) Command> CALL ttRepStart; Command> call ttRepStateGet; < IDLE > 1 row found.
Insert a row into the tab
table on master1
.
Command> INSERT INTO tab VALUES (1,'Hello'); 1 row inserted. Command> SELECT * FROM tab; < 1, Hello > 1 row found.
Verify that the insert is replicated to master2
and subscriber1
.
Command> SELECT * FROM tab; < 1, Hello > 1 row found.
Stop the replication agents on each data store:
Command> CALL ttRepStop;
Drop the active standby pair on each data store. You can then drop the table tab
on any data store in which you have dropped the active standby pair.
Command> DROP ACTIVE STANDBY PAIR;
Command> DROP TABLE tab;
This section describes how to configure a replication scheme that replicates the contents of a single table in a master data store (masterds
) to a table in a subscriber data store (subscriberds
). To keep the example simple, both data stores reside on the same computer.
This section includes the following topics:
Create DSNs named masterds
and subscriberds
as described in "Creating TimesTen Data Stores" in Oracle TimesTen In-Memory Database Operations Guide.
On UNIX and Linux systems, use a text editor to create the following odbc.ini
file on each data store:
[masterds] DataStore=/tmp/masterds DatabaseCharacterSet=AL32UTF8 ConnectionCharacterSet=AL32UTF8 [subscriberds] DataStore=/tmp/subscriberds DatabaseCharacterSet=AL32UTF8 ConnectionCharacterSet=AL32UTF8
On Windows, use the ODBC Administrator to set the same attributes. Use defaults for all other settings.
Connect to masterds
with the ttIsql
utility:
% ttIsql masterds Copyright (c) 1996-2009, Oracle. All rights reserved. Type ? or "help" for help, type "exit" to quit ttIsql. connect "DSN=masterds"; Connection successful: DSN=masterds;UID=ttuser; DataStore=/tmp/masterds;DatabaseCharacterSet=AL32UTF8; ConnectionCharacterSet=AL32UTF8;TypeMode=0; (Default setting AutoCommit=1) Command>
Create a table named tab
with columns named a
, b
and c
:
Command> CREATE TABLE tab (a NUMBER NOT NULL, > b NUMBER, > c CHAR(8), > PRIMARY KEY (a));
Create a replication scheme called repscheme
to replicate the tab
table from masterds
to subscriberds
.
Command> CREATE REPLICATION repscheme > ELEMENT e TABLE tab > MASTER masterds > SUBSCRIBER subscriberds;
Connect to subscriberds
and create the same table and replication scheme, using the same procedure described in Step 2.
Start the replication agents on masterds
and subscriberds
:
Command> call ttRepStart;
Exit ttIsql
. Use the ttStatus
utility to verify that the replication agents are running for both data stores:
% ttStatus TimesTen status report as of Thu Jan 29 12:16:27 2009 Daemon pid 18373 port 4134 instance ttuser TimesTen server pid 18381 started on port 4136 ------------------------------------------------------------------------ Data store /tmp/masterds There are 16 connections to the data store Shared Memory KEY 0x0201ab43 ID 5242889 PL/SQL Memory KEY 0x0301ab43 ID 5275658 Address 0x10000000 Type PID Context Connection Name ConnID Process 20564 0x081338c0 masterds 1 Replication 20676 0x08996738 LOGFORCE 5 Replication 20676 0x089b69a0 REPHOLD 2 Replication 20676 0x08a11a58 FAILOVER 3 Replication 20676 0x08a7cd70 REPLISTENER 4 Replication 20676 0x08ad7e28 TRANSMITTER 6 Subdaemon 18379 0x080a11f0 Manager 2032 Subdaemon 18379 0x080fe258 Rollback 2033 Subdaemon 18379 0x081cb818 Checkpoint 2036 Subdaemon 18379 0x081e6940 Log Marker 2035 Subdaemon 18379 0x08261e70 Deadlock Detector 2038 Subdaemon 18379 0xae100470 AsyncMV 2040 Subdaemon 18379 0xae11b508 HistGC 2041 Subdaemon 18379 0xae300470 Aging 2039 Subdaemon 18379 0xae500470 Flusher 2034 Subdaemon 18379 0xae55b738 Monitor 2037 Replication policy : Manual Replication agent is running. Cache Agent policy : Manual PL/SQL enabled. ------------------------------------------------------------------------ Data store /tmp/subscriberds There are 16 connections to the data store Shared Memory KEY 0x0201ab41 ID 5177351 PL/SQL Memory KEY 0x0301ab41 ID 5210120 Address 0x10000000 Type PID Context Connection Name ConnID Process 20594 0x081338f8 subscriberds 1 Replication 20691 0x0893c550 LOGFORCE 5 Replication 20691 0x089b6978 REPHOLD 2 Replication 20691 0x08a11a30 FAILOVER 3 Replication 20691 0x08a6cae8 REPLISTENER 4 Replication 20691 0x08ad7ba8 RECEIVER 6 Subdaemon 18376 0x080b1450 Manager 2032 Subdaemon 18376 0x0810e4a8 Rollback 2033 Subdaemon 18376 0x081cb8b0 Flusher 2034 Subdaemon 18376 0x08246de0 Monitor 2035 Subdaemon 18376 0x082a20a8 Deadlock Detector 2036 Subdaemon 18376 0x082fd370 Checkpoint 2037 Subdaemon 18376 0x08358638 Aging 2038 Subdaemon 18376 0x083b3900 Log Marker 2040 Subdaemon 18376 0x083ce998 AsyncMV 2039 Subdaemon 18376 0x08469e90 HistGC 2041 Replication policy : Manual Replication agent is running. Cache Agent policy : Manual PL/SQL enabled.
Use ttIsql
to connect to the master data store and insert some rows into the tab
table:
% ttIsql masterds Command> INSERT INTO tab VALUES (1, 22, 'Hello'); 1 row inserted. Command> INSERT INTO tab VALUES (3, 86, 'World'); 1 row inserted.
Open a second command prompt window for the subscriber. Connect to the subscriber data store and check the contents of the tab
table:
% ttIsql subscriberds Command> SELECT * FROM tab; < 1, 22, Hello> < 3, 86, World> 2 rows found.
Figure 2-3 shows that the rows that are inserted into masterds
are replicated to subscriberds
.
Figure 2-3 Replicating changes to the subscriber data store
After you have completed your replication tests, stop the replication agents on both masterds
and subscriberds
:
Command> CALL ttRepStop;
To remove the tab
table and repscheme
replication scheme from the master and subscriber data stores, enter these statements on each data store:
Command> DROP REPLICATION repscheme; Command> DROP TABLE tab;