Oracle® TimesTen In-Memory Database TimesTen to TimesTen Replication Guide Release 11.2.1 Part Number E13072-09 |
|
|
View PDF |
Oracle Clusterware monitors and controls applications to provide high availability. This chapter describes how to use Oracle Clusterware to manage availability for a TimesTen active standby pair.
For more information about Oracle Clusterware, see Oracle Clusterware Administration and Deployment Guide in the Oracle Database documentation.
This chapter includes the following topics:
Figure 7-1 shows an active standby pair with one read-only subscriber in the same local network. The active database, the standby database and the read-only subscriber are on different nodes. There are two nodes that are not part of the active standby pair that are also running TimesTen. An application updates the active database. An application reads from the standby and the subscriber. All of the nodes are connected to shared storage.
Figure 7-1 Active standby pair with one subscriber
You can use Oracle Clusterware to start, monitor and automatically fail over TimesTen databases and applications in response to node failures and other events. See "Planned maintenance" and "Recovering from failures" for details.
Oracle Clusterware can be implemented at two levels of availability for TimesTen. The basic level of availability manages two master nodes and up to 127 read-only subscriber nodes in the cluster. The active standby pair is defined with local host names or IP addresses. If both master nodes fail, user intervention is necessary to migrate the active standby scheme to new hosts. When both master nodes fail, Oracle Clusterware notifies the user.
The advanced level of availability uses virtual IP addresses for the active, standby and read-only subscriber databases. Extra nodes can be included in the cluster that are not part of the initial active standby pair. If a failure occurs, the use of virtual IP addresses allows one of the extra nodes to take on the role of a failed node automatically.
If your applications connect to TimesTen in a client/server configuration, automatic client failover enables the client to reconnect automatically to the master database with the active role after a failure. See "Working with the TimesTen Client and Server" in and "TTC_FailoverPortRange" in Oracle TimesTen In-Memory Database Reference.
The ttCWAdmin
utility is used to administer TimesTen active standby pairs in a cluster that is managed by Oracle Clusterware. The configuration for each active standby pair is manually created in an initialization file called cluster.oracle.ini
by default. The information in this file is used to create Oracle Clusterware resources. Resources are used to manage each TimesTen daemon, database, TimesTen processes, user applications and virtual IP addresses. For more information about the ttCWAdmin
utility, see "ttCWAdmin" in Oracle TimesTen In-Memory Database Reference. For more information about the cluster.oracle.ini
file, see "The cluster.oracle.ini file".
Use Oracle Clusterware to manage only these configurations:
Active standby pair with or without read-only subscribers
Active standby pair (with or without read-only subscribers) with AWT cache groups, read-only cache groups and global cache groups
See "ttCWAdmin" in Oracle TimesTen In-Memory Database Reference for information about the privileges required to execute ttCWAdmin
commands.
Oracle Clusterware release 11.1.0.7.x is supported with TimesTen active standby pair replication, beginning with release 11.1.0.7.0. See Oracle Clusterware Administration and Deployment Guide for network and storage requirements and information about Oracle Clusterware configuration files.
Oracle Clusterware and TimesTen should be installed in the same location on all nodes.
All machines should use Network Time Protocol (NTP) or a similar system so that clocks on the machines remain within 250 milliseconds of each other.
When you use Oracle Clusterware with TimesTen, you cannot use these commands and SQL statements:
CREATE ACTIVE STANDBY PAIR
, ALTER ACTIVE STANDBY PAIR
and DROP ACTIVE STANDBY PAIR
SQL statements
The -repStart
and -repStop
options of the ttAdmin
utility
The -cacheStart
and -cacheStop
options of the ttAdmin
utility after the active standby pair has been created
The -duplicate
option of the ttRepAdmin
utility
The ttRepStart
and ttRepStop
built-in procedures
Built-in procedures for managing a cache grid when the active standby pair in a cluster is a member of a grid
In addition, do not call ttDaemonAdmin -stop
before calling ttCWAdmin -shutdown
.
The TimesTen integration with Oracle Clusterware accomplishes these operations with the ttCWAdmin
utility and the attributes in the cluster.oracle.ini
file.
For more information about the built-ins and utilities, see Oracle TimesTen In-Memory Database Reference. For more information about the SQL statements, see Oracle TimesTen In-Memory Database SQL Reference.
Create an initialization file called cluster.oracle.ini
. The information in this file is used to create Oracle Clusterware resources that manage TimesTen databases, TimesTen processes, user applications and virtual IP addresses.
The user creates the cluster.oracle.ini
file as a text file and places it in the daemon home directory on the host for the active database. By default this directory is:
The install_dir
/info
directory on Linux and UNIX
The c:\TimesTen\
install_dir
\srv\info
directory on Windows
All of the attributes that can be used in the cluster.oracle.ini
file are described in Chapter 8, "TimesTen Configuration Attributes for Oracle Clusterware".
The entry name in the cluster.oracle.ini
file must be the same as an existing DSN:
In the sys.odbc.ini
file on Linux or UNIX
In a system DSN on Windows
For example, [basicDSN]
in the cluster.oracle.ini
file described in "Configuring basic availability" must exist in the sys.odbc.ini
file.
The entry name and the DSN must be the same as the database file name. See "Defining the DSNs for the databases" for a description of the database file name.
This section includes sample cluster.oracle.ini
files for these configurations:
This example shows an active standby pair with no subscribers. The hosts for the active database and the standby database are host1
and host2
. The list of hosts is delimited by commas. You can include spaces for readability if desired.
The ttCWAdmin
utility is used to administer TimesTen active standby pairs in a cluster that is managed by Oracle Clusterware.
[basicDSN] MasterHosts=host1,host2
This is an example of a cluster.oracle.ini
file for an active standby pair with one subscriber on host3
:
[basicSubscriberDSN] MasterHosts=host1,host2 SubscriberHosts=host3
In this example, the hosts for the active database and the standby database are host1
and host2
. host3
and host4
are extra nodes that can be used for failover. There are no subscriber nodes. MasterVIP
specifies the virtual IP addresses defined for the master databases. VIPInterface
is the name of the public network adaptor. VIPNetMask
defines the netmask of the virtual IP addresses.
[advancedDSN] MasterHosts=host1,host2,host3,host4 MasterVIP=192.168.1.1, 192.168.1.2 VIPInterface=eth0 VIPNetMask=255.255.255.0
This example has one subscriber on host4
. There is one extra node that can be used for failing over the master databases and one extra node that can be used for the subscriber database. MasterVIP
and SubscriberVIP
specify the virtual IP addresses defined for the master and subscriber databases. VIPInterface
is the name of the public network adaptor. VIPNetMask
defines the netmask of the virtual IP addresses.
[advancedSubscriberDSN] MasterHosts=host1,host2,host3 SubscriberHosts=host4,host5 MasterVIP=192.168.1.1, 192.168.1.2 SubscriberVIP=192.168.1.3 VIPInterface=eth0 VIPNetMask=255.255.255.0
Ensure that the extra nodes:
Have TimesTen installed
Have the direct-linked application installed if this is part of the configuration. See "Implementing application failover".
If the active standby pair replicates one or more AWT or read-only cache groups, set the CacheConnect
attribute to y
.
This example specifies an active standby pair with one subscriber in an advanced availability configuration. The active standby pair replicates one or more cache groups.
[advancedCacheDSN] MasterHosts=host1,host2,host3 SubscriberHosts=host4, host5 MasterVIP=192.168.1.1, 192.168.1.2 SubscriberVIP=192.168.1.3 VIPInterface=eth0 VIPNetMask=255.255.255.0 CacheConnect=y
If the active standby pair is a member of a cache grid, assign port numbers for the active and standby databases by setting the GridPort
attribute.
This example specifies an active standby pair with no subscribers in an advanced availability configuration. The active standby pair is a member of a cache grid.
[advancedGridDSN] MasterHosts=host1,host2,host3 MasterVIP=192.168.1.1, 192.168.1.2 VIPInterface=eth0 VIPNetMask=255.255.255.0 CacheConnect=y GridPort=16101, 16102
For more information about using Oracle Clusterware with a cache grid, see "Using Oracle Clusterware with a TimesTen cache grid".
TimesTen integration with Oracle Clusterware can facilitate the failover of an application that is linked to any of the databases in the active standby pair. Both direct-linked and client/server applications that are on the same machine as Oracle Clusterware and TimesTen can be managed.
The required attributes in the cluster.oracle.ini
file for failing over an application are:
AppName
- Name of the application to be managed by Oracle Clusterware
AppStartCmd
- Command line for starting the application
AppStopCmd
- Command line for stopping the application
AppCheckCmd
- Command line for executing an application that checks the status of the application specified by AppName
AppType
- Determines the database to which the application is linked. The possible values are Active
, Standby
, Subscriber
(all) and Subscriber
[
index
]
.
Optionally, you can also set AppFailureThreshold
, AppFailoverDelay
, and AppScriptTimeout
. These attributes have default values.
The TimesTen application monitor process uses the user-supplied script or program specified by AppCheckCmd
to monitor the application. The script that checks the status of the application must be written to return 0
for success and a nonzero number for failure. When Oracle Clusterware detects a nonzero value, it takes action to recover the failed application.
This example shows advanced availability configured for an active standby pair with with no subscribers. The reader
application is an application that queries the data in the standby database.
[appDSN] MasterHosts=host1,host2,host3,host4 MasterVIP=192.168.1.1, 192.168.1.2 VIPInterface=eth0 VIPNetMask=255.255.255.0 AppName=reader AppType=Standby AppStartCmd=/mycluster/reader/app_start.sh AppStopCmd=/mycluster/reader/app_stop.sh AppCheckCmd=/mycluster/reader/app_check.sh
AppStartCmd
, AppStopCmd
and AppCheckCmd
can include arguments. For example, consider a valid cluster.oracle.ini
file on Windows. In this example the application is directly linked to the active database. The script for starting, stopping, and checking the application takes arguments for the DSN and the action to take (-start
, -stop
and -check
).
Note the double quotes for the specified paths in AppStartCmd
, AppStopCmd
and AppCheckCmd
. The quotes are needed because there are spaces in the path.
[appWinDSN] MasterHosts=host1,host2,host3,host4 MasterVIP=192.168.1.1, 192.168.1.2 VIPInterface=Local Area Connection VIPNetMask=255.255.255.0 AppName=UpdateApp AppType=Active AppStartCmd="C:\Program Files\UserApps\UpdateApp.exe" -dsn myDSN -start AppStopCmd= "C:\Program Files\UserApps\UpdateApp.exe" -dsn myDSN -stop AppCheckCmd="C:\Program Files\UserApps\UpdateApp.exe" -dsn myDSN -check
You can configure failover for more than one application. Use AppName
to name the application and provide values for AppType
, AppStartCmd
, AppStopCmd
and AppCheckCmd
immediately following the AppName
attribute. You can include blank lines for readability. For example:
[app2DSN] MasterHosts=host1,host2,host3,host4 MasterVIP=192.168.1.1, 192.168.1.2 VIPInterface=eth0 VIPNetMask=255.255.255.0 AppName=reader AppType=Standby AppStartCmd=/mycluster/reader/app_start.sh AppStopCmd=/mycluster/reader/app_stop.sh AppCheckCmd=/mycluster/reader/app_check.sh AppName=update AppType=Active AppStartCmd=/mycluster/update/app2_start.sh AppStopCmd=/mycluster/update/app2_stop.sh AppCheckCmd=/mycluster/update/app2_check.sh
If both master nodes fail and then come back up, Oracle Clusterware can automatically recover the master databases. Automatic recovery of temporary dual failure requires:
RETURN TWOSAFE
is not specified for the active standby pair.
AutoRecover
is set to y
.
RepBackupDir
specifies a directory on shared storage.
RepBackupPeriod
is set to a value greater than 0
.
If both master nodes fail permanently, Oracle Clusterware can automatically recover the master databases to two new nodes if:
Advanced availability is configured (virtual IP addresses and at least four hosts).
The active standby pair does not replicate cache groups.
A cache grid is not configured.
RETURN TWOSAFE
is not specified.
AutoRecover
is set to y
.
RepBackupDir
specifies a directory on shared storage.
RepBackupPeriod
must be set to a value greater than 0
.
TimesTen first performs a full backup of the active database and then performs incremental backups. You can specify the optional attribute RepfullbackupCycle
to manage when TimesTen performs subsequent full backup. By default, TimesTen performs a full backup after every five incremental backups.
If RepBackupDir
and RepBackupPeriod
are configured for backups, TimesTen performs backups for any master database that becomes active. It does not delete backups that were performed for a database that used to be active and has become the standby unless the database becomes active again. Ensure that the shared storage has enough space for two complete database backups. ttCWAdmin -restore
automatically chooses the correct backup files.
Incremental backups increase the amount of log records in the transaction log files. Ensure that the values of RepBackupPeriod
and RepfullbackupCycle
are small enough to prevent a large amount of log records in the transaction log file. For more information about the interaction between backups and log records, see the description of the ttBackup
utility in Oracle TimesTen In-Memory Database Reference.
This example shows attribute settings for automatic recovery.
[autorecoveryDSN]
MasterHosts=host1,host2,host3,host4
MasterVIP=192.168.1.1, 192.168.1.2
VIPInterface=eth0
VIPNetMask=255.255.255.0
AutoRecover=y
RepBackupDir=/shared_drive/dsbackup
RepBackupPeriod=3600
If you have cache groups in the active standby pair or prefer to recover manually from failure of both master hosts, ensure that AutoRecover
is set to n
(the default). Manual recovery requires:
RepBackupDir
specifies a directory on shared storage
RepBackupPeriod
must be set to a value greater than 0
This example shows attribute settings for manual recovery. The default value for AutoRecover
is n
, so it is not included in the file.
[manrecoveryDSN]
MasterHosts=host1,host2,host3
MasterVIP=192.168.1.1, 192.168.1.2
VIPInterface=eth0
VIPNetMask=255.255.255.0
RepBackupDir=/shared_drive/dsbackup
RepBackupPeriod=3600
The RepDDL
attribute represents the SQL statement that creates the active standby pair. The RepDDL
attribute is optional. You can use it to exclude tables, cache groups and sequences from the active standby pair.
If you include RepDDL
in the cluster.oracle.ini
file, do not specify ReturnServiceAttribute
, MasterStoreAttribute
or SubscriberStoreAttribute
in the cluster.oracle.in
i file. Include those replication settings in the RepDDL
attribute.
When you specify a value for RepDDL
, use the <DSN>
macro for the database file name prefix. Use the <MASTERHOST[1]>
and <MASTERHOST[2]>
macros to specify the master host names. TimesTen substitutes the correct values from the MasterHosts
or MasterVIP
attributes, depending on whether your configuration uses virtual IP addresses. Similarly, use the <SUBSCRIBERHOST[
n
]>
macro to specify subscriber host names, where n
is a number from 1 to the total number of SubscriberHosts
attribute values or 1 to the total number of SubscriberVIP
attribute values if virtual IP addresses are used.
Use the RepDDL
attribute to exclude tables, cache groups and sequences from the active standby pair:
[excludeDSN] MasterHosts=host1,host2,host3,host4 SubscriberHosts=host5,host6 MasterVIP=192.168.1.1, 192.168.1.2 SubscriberVIP=192.168.1.3 VIPInterface=eth0 VIPNetMask=255.255.255.0 RepDDL=CREATE ACTIVE STANDBY PAIR \ <DSN> ON <MASTERHOST[1]>, <DSN> ON <MASTERHOST[2]> SUBSCRIBER <DSN> ON <SUBSCRIBERHOST[1]>\ EXCLUDE TABLE pat.salaries, \ EXCLUDE CACHE GROUP terry.salupdate, \ EXCLUDE SEQUENCE ttuser.empcount
The replication agent transmitter obtains route information as follows, in order of priority:
From the ROUTE
clause in the RepDDL
setting, if a ROUTE
clause is specified. Do not specify a ROUTE
clause if you are configuring advanced availability.
From Oracle Clusterware, which provides the private host names and public host names of the local and remote hosts as well as the remote daemon port number. The private host name is preferred over the public host name. The replication agent transmitter cannot connect to the IPC socket, it attempts to connect to the remote daemon, using information that Oracle Clusterware maintains about the replication scheme.
From the active and standby hosts. If they fail, then the replication agent chooses the connection method based on host name.
This is an example of specifying the ROUTE
clause in RepDDL
:
[routeDSN] MasterHosts=host1,host2,host3,host4 RepDDL=CREATE ACTIVE STANDBY PAIR \ <DSN> ON <MASTERHOST[1]>, <DSN> ON <MASTERHOST[2]>\ ROUTE MASTER <DSN> ON <MASTERHOST[1]> SUBSCRIBER <DSN> ON <MASTERHOST[2]>\ MASTERIP "192.168.1.2" PRIORITY 1\ SUBSCRIBERIP "192.168.1.3" PRIORITY 1\ MASTERIP "10.0.0.1" PRIORITY 2\ SUBSCRIBERIP "10.0.0.2" PRIORITY 2\ MASTERIP "140.87.11.203" PRIORITY 3\ SUBSCRIBERIP "140.87.11.204" PRIORITY 3\ ROUTE MASTER <DSN> ON <MASTERHOST[2]> SUBSCRIBER <DSN> ON <MASTERHOST[1]>\ MASTERIP "192.168.1.3" PRIORITY 1\ SUBSCRIBERIP "192.168.1.2" PRIORITY 1\ MASTERIP "10.0.0.2" PRIORITY 2\ SUBSCRIBERIP "10.0.0.1" PRIORITY 2\ MASTERIP "140.87.11.204" PRIORITY 3\ SUBSCRIBERIP "140.87.11.203" PRIORITY 3\
To create and initialize a cluster, perform these tasks:
If you plan to have more than one active standby pair in the cluster, see "Including more than one active standby pair in a cluster".
If you want to configure a remote disaster recovery subscriber, see "Configuring a disaster recovery subscriber".
Install Oracle Clusterware. By default the installation occurs on all hosts concurrently. See Oracle Clusterware installation documentation for your platform.
Oracle Clusterware starts automatically after successful installation.
Install TimesTen in the same location on each host in the cluster, including extra hosts. The instance name must be the same on each host. The user name of the instance administrator must be the same on all hosts.
On Linux and UNIX, the installer prompts you for values for:
The TCP/IP port number associated with the TimesTen cluster agent. The port number can be different on each host. If you do not provide a port number, TimesTen uses the default TimesTen port.
The Oracle Clusterware location. The location must be the same on each host.
The hosts included in the cluster, including spare hosts, with host names separated by commas. This list must be the same on each host.
The installer uses these values to create the ttcrsagent.options
file on Linux and UNIX platforms. See "TimesTen Installation" in Oracle TimesTen In-Memory Database Installation Guide for details. You can also use ttmodinstall -crs
to create the file after installation. On Linux, you can use the -record
and -batch
options for setup.sh
to perform identical installations on additional hosts if desired.
On Windows, execute ttmodinstall
-crs
on each node after installation to create the ttcrsagent.options
file.
For more information about ttmodinstall
, see "ttmodinstall" in Oracle TimesTen In-Memory Database Reference.
TimesTen cluster information is stored in the Oracle Cluster Registry. As the root user on UNIX or Linux platforms, or as the instance administrator on Windows, enter this command:
ttCWAdmin -ocrConfig
As long as Oracle Clusterware and TimesTen are installed on the hosts, this step never needs to be repeated.
Start the TimesTen cluster agent by executing the ttCWAdmin -init
command on one of the hosts. For example:
ttCWAdmin -init
When the TimesTen cluster agent has started, Oracle Clusterware begins monitoring the TimesTen daemon and will restart it if it fails.
Create a database on the host where you intend the active database to reside. The DSN must be the same as the database file name.
Create schema objects such as tables, AWT cache groups and read-only cache groups. Do not load the cache groups.
On all hosts that will be in the cluster, create sys.odbc.ini
files that are identical to the sys.odbc.ini
file on the host where you intend the active database to reside.
Create a cluster.oracle.ini
file on the host where you intend the active database to reside. See "The cluster.oracle.ini file" for details about its contents and location.
For advanced availability, execute the ttCWAdmin -createVIPs
command on any host in the cluster. On UNIX, you must execute this command as the root
user. For example:
ttCWAdmin -createVIPs -dsn myDSN
Create an active standby pair replication scheme by executing the ttCWAdmin -create
command on any host. For example:
ttCWAdmin -create -dsn myDSN
The command prompts you to choose the host on which the active database will reside.
This command prompts for an encryption pass phrase that the user will not need again. The command also prompts for the user ID and password for an internal user with the ADMIN
privilege if it does not find this information in the sys.odbc.ini
file. This internal user will be used to create the active standby pair.
If CacheConnect
is enabled, the command prompts for the user password for the Oracle database. The Oracle password is used to set the autorefresh states for cache groups.
Start the active standby pair replication scheme by executing the ttCWAdmin -start
command on any host. For example:
ttCWAdmin -start -dsn myDSN
If the active standby pair includes cache groups, use the LOAD CACHE GROUP
statement to load the cache group tables from the Oracle tables.
If you want to use Oracle Clusterware to manage more than one active standby pair in a cluster, include additional configurations in the cluster.oracle.ini
file. For example, this cluster.oracle.ini
file contains configuration information for two active standby pair replication schemes:
[advancedSubscriberDSN] MasterHosts=host1,host2,host3 SubscriberHosts=host4, host5 MasterVIP=192.168.1.1, 192.168.1.2 SubscriberVIP=192.168.1.3 VIPInterface=eth0 VIPNetMask=255.255.255.0 [advSub2DSN] MasterHosts=host1,host2,host3 SubscriberHosts=host4, host5 MasterVIP=192.168.1.4, 192.168.1.5 SubscriberVIP=192.168.1.6 VIPInterface=eth0 VIPNetMask=255.255.255.0
Perform these tasks for additional replication schemes:
Create and populate the databases.
Create the virtual IP addresses. Use the ttCWAdmin -createVIPs
command.
Create the active standby pair replication scheme. Use the ttCWAdmin -create
command.
Start the active standby pair. Use the ttCWAdmin -start
command.
You can create an active standby pair on the primary site with a remote disaster recovery subscriber. See "Using a disaster recovery subscriber in an active standby pair". Oracle Clusterware manages the active standby pair but does not manage the disaster recovery subscriber. The user must perform a switchover if the primary site fails.
To use Oracle Clusterware to manage an active standby pair that has a remote disaster recovery subscriber, perform these tasks:
Use the RepDDL
or RemoteSubscriberHosts
Clusterware attribute to provide information about the remote disaster recovery subscriber. For example:
[advancedDRsubDSN] MasterHosts=host1,host2,host3 SubscriberHosts=host4, host5 RemoteSubscriberHosts=host6 MasterVIP=192.168.1.1, 192.168.1.2 SubscriberVIP=192.168.1.3 VIPInterface=eth0 VIPNetMask=255.255.255.0 CacheConnect=y
Use ttCWAdmin -create
to create the active standby pair replication scheme on the primary site. This does not create the disaster recovery subscriber.
Use ttCWAdmin -start
to start the active standby pair replication scheme.
Load the cache groups that are replicated by the active standby pair.
Set up the disaster recovery subscriber using the procedure in "Rolling out a disaster recovery subscriber".
You can use the TimesTen implementation of Oracle Clusterware to manage a cache grid when each grid member is an active standby pair. TimesTen does not support using Oracle Clusterware to manage standalone grid members.
This section includes:
See "Install TimesTen on each host" for installation requirements. In addition, each grid member must have a DSN that is unique within the cache grid.
Perform the tasks described in "Creating and initializing a cluster" for each grid member. Include the GridPort Clusterware attribute in the cluster.oracle.ini
file as described in "Including the active standby pair in a cache grid". Ensure that the specified port numbers are not in use.
The ttCWAdmin -start
command automatically attaches a grid member to the cache grid attach. The ttCWAdmin -stop
command automatically detaches a grid member from the cache grid.
Oracle Clusterware manages failover for active standby pair grid members. If both nodes of an active standby pair grid member fail, then the grid member fails. Oracle Clusterware evicts the failed grid member from the grid automatically.
If the active standby pair grid member is in an asynchronous replication scheme, the grid member is recovered automatically and reattached to the grid. If the active standby pair grid member is in a replication scheme with RETURN TWOSAFE
configured, perform these steps to recover the grid member andreattach it to the grid:
Stop the replication agent and the cache agent and disconnect the application from both databases. This step detaches the grid member from the grid.
ttCWAdmin -stop advancedGridDSN
Drop the active standby pair.
ttCWAdmin -drop advancedGridDSN
Create the active standby pair replication scheme.
ttCWAdmin -create advancedGridDSN
Start the active standby pair replication scheme. This step attaches the grid member to the grid.
ttCWAdmin -start advancedGridDSN
You can add, drop or change a cache group while the active database is attached to the grid.
Use the ttCWAdmin -beginAlterSchema
command to make these schema changes. This command stops replication but allows the active database to remain attached to the grid. The ttCWAdmin -endAlterSchema
command duplicates the changes to the standby database, registers the altered replication scheme and starts replication.
To add a table and include it in the active standby pair, see "Making DDL changes in an active standby pair". See the same section for information about dropping a replicated table.
Perform these steps on the active database of each active standby pair grid member.
Enable the addition of the cache group to the active standby pair.
ttCWAdmin -beginAlterSchema advancedGridDSN
Create the cache group.
Duplicate the change to the standby database.
ttCWAdmin -endAlterSchema advancedGridDSN
You can load the cache group at any time after you create the cache group.
Perform these steps to drop a cache group.
Unload the cache group in all members of the cache grid.
CALL ttOptSetFlag('GlobalProcessing', 1); UNLOAD CACHE GROUP samplecachegroup;
On the active database of an active standby pair grid member, enable dropping the cache group.
ttCWAdmin -beginAlterSchema advancedGridDSN
Drop the cache group.
DROP CACHE GROUP samplecachegroup;
Duplicate the change to the standby database.
ttCWAdmin -endAlterSchema advancedGridDSN
Repeat steps 2 through 4 on the active database of each active standby pair grid member.
To change an existing cache group, first drop the existing cache group as described in "Drop a cache group". Then add the cache group with the desired changes as described in "Add a cache group".
Oracle Clusterware can recover automatically from many kinds of failures. This section describes several failure scenarios and how Oracle Clusterware manages the failures.
This section includes these topics:
If there is a failure on the node where the active database resides, Oracle Clusterware automatically changes the state of the standby database to 'ACTIVE'
. If application failover is configured, then the application begins updating the new active database.
Figure 7-2 shows that the state of the standby database has changed to 'ACTIVE'
and that the application is updating the new active database.
Figure 7-2 Standby database becomes active
Oracle Clusterware tries to restart the database or host where the failure occurred. If it is successful, then that database becomes the standby database.
Figure 7-3 shows a cluster where the former active node becomes the standby node.
Figure 7-3 Standby database starts on former active host
If the failure of the former active node is permanent and advanced availability is configured, Oracle Clusterware starts a standby database on one of the extra nodes.
Figure 7-4 shows a cluster in which the standby database is started on one of the extra nodes.
Figure 7-4 Standby database starts on extra host
If there is a failure on the standby node, Oracle Clusterware first tries to restart the database or host. If it cannot restart the standby database on the same host and advanced availability is configured, Oracle Clusterware starts the standby database on an extra node.
Figure 7-5 shows the standby database on a new host after a failure.
If there is a failure on a subscriber node, Oracle Clusterware first tries to restart the database or host. If it cannot restart the database on the same host and advanced availability is configured, Oracle Clusterware starts the subscriber database on an extra node.
This section includes these topics:
Oracle Clusterware can achieve automatic recovery from temporary failure on both master nodes after the nodes come back up if:
RETURN TWOSAFE
is not specified for the active standby pair.
AutoRecover
is set to y
.
RepBackupDir
specifies a directory on shared storage.
RepBackupPeriod
is set to a value greater than 0
.
Oracle Clusterware can achieve automatic recovery from permanent failure on both master nodes if:
Advanced availability is configured (virtual IP addresses and at least four hosts).
The active standby pair does not replicate cache groups.
A cache grid is not configured.
RETURN TWOSAFE
is not specified for the active standby pair.
AutoRecover
is set to y
.
RepBackupDir
specifies a directory on shared storage.
RepBackupPeriod
is set to a value greater than 0
.
See "Recovering from permanent failure of both master nodes" for examples of cluster.oracle.ini
files.
This section assumes that the failed master nodes will be recovered to new hosts on which TimesTen and Oracle Clusterware have been installed. These steps use the manrecoveryDSN
database and cluster.oracle.ini
file for examples.
To perform manual recovery in an advanced availability configuration, perform these tasks:
Ensure that the TimesTen cluster agent is running on the local host.
ttCWAdmin -init -hosts localhost
Restore the backup database. Ensure that there is not already a database on the host with the same DSN as the database you want to restore.
ttCWAdmin -restore -dsn manrecoveryDSN
If there are cache groups in the database, drop and re-create the cache groups.
If the new hosts are not already specified by MasterHosts
and SubscriberHosts
in the cluster.oracle.ini
file, then modify the file to include the new hosts.
These steps use manrecoveryDSN
. This step is not necessary for manrecoveryDSN
because extra hosts are already specified in the cluster.oracle.ini
file.
Re-create the active standby pair replication scheme.
ttCWAdmin -create -dsn manrecoveryDSN
Start the active standby pair replication scheme.
ttCWAdmin -start -dsn manrecoveryDSN
This section assumes that the failed master nodes will be recovered to new hosts on which TimesTen and Oracle Clusterware have been installed. These steps use the basicDSN
database and cluster.oracle.ini
file for examples.
To perform manual recovery in a basic availability configuration, perform these steps:
Acquire new hosts for the databases in the active standby pair.
Ensure that the TimesTen cluster agent is running on the local host.
ttCWAdmin -init -hosts localhost
Restore the backup database. Ensure that there is not already a database on the host with the same DSN as the database you want to restore.
ttCWADmin -restore -dsn basicDSN
If there are cache groups in the database, drop and re-create the cache groups.
Update the MasterHosts
and SubscriberHosts
entries in the cluster.oracle.in
i file. This example uses the basicDSN
database. The MasterHosts
entry changes from host1
to host10
. The SubscriberHosts
entry changes from host2
to host20
.
[basicDSN] MasterHosts=host10,host20
Re-create the active standby pair replication scheme.
ttCWAdmin -create -dsn basicDSN
Start the active standby pair replication scheme.
ttCWAdmin -start -dsn basicDSN
Failures can occur on both master nodes so that the databases are corrupt. If you want to recover to the same master nodes, perform the following steps:
Ensure that the replication agent and the cache agent are stopped and that applications are disconnected from both databases. This example uses the basicDSN
database.
ttCWAdmin -stop -dsn basicDSN
On the node where you want the new active database to reside, destroy the databases by using the ttDestroy
utility.
ttDestroy basicDSN
Restore the backup database.
ttCWADmin -restore -dsn basicDSN
If there are cache groups in the database, drop and re-create the cache groups.
Re-create the active standby pair replication scheme.
ttCWAdmin -create -dsn basicDSN
Start the active standby pair replication scheme.
ttCWAdmin -start -dsn basicDSN
You can configure an active standby pair to have a return service of RETURN TWOSAFE
by using the ReturnServiceAttribute
Clusterware attribute in the cluster.oracle.ini
file. When RETURN TWOSAFE
is configured, the database logs may be available on one or both nodes after both nodes fail. However, RETURN TWOSAFE
is designed so that it is not possible to restart replication or reconnect applications automatically. You must re-create the active standby pair from the database logs or restore the databases from a backup first.
This cluster.oracle.ini
example includes backup configuration in case the database logs are not available:
[basicTwosafeDSN]
MasterHosts=host1,host2
ReturnServiceAttribute=RETURN TWOSAFE
RepBackupDir=/shared_drive/dsbackup
RepBackupPeriod=3600
Perform these recovery tasks:
Ensure that the replication agent and the cache agent are stopped and that applications are disconnected from both databases.
ttCWAdmin -stop -dsn basicTwosafeDSN
Drop the active standby pair.
ttCWAdmin -drop -dsn basicTwosafeDSN
Decide whether the former active or standby database is more up to date and re-create the active standby pair using the chosen database. The command prompts you to choose the host on which the active database will reside.
ttCWAdmin -create -dsn basicTwosafeDSN
If neither database is usable, restore the database from backups.
ttCWAdmin -restore -dsn basicTwosafeDSN
Start the active standby pair replication scheme.
ttCWAdmin -start -dsn basicTwosafeDSN
Approach a failure of more than two master hosts as a more extreme case of dual host failure. Use these guidelines:
Address the root cause of the failure if it is something like a power outage or network failure.
Identify or obtain at least two healthy hosts for the active and standby databases.
Update the MasterHosts
and SubscriberHosts
entries in the cluster.oracle.ini
file.
See "Manual recovery for advanced availability" and "Manual recovery for basic availability" for guidelines on subsequent actions to take.
This section includes the following topics:
Changing the schema of the active standby pair includes these actions:
Adding or dropping a subscriber database
Altering database attributes. Only the PORT
and TIMEOUT
attributes can be set for subscribers.
Including or excluding sequences
To include or exclude a table, see "Making DDL changes in an active standby pair".
To include or exclude a cache group, see "Making schema changes to active standby pairs in a grid".
To make other changes to the schema of the active standby pair, perform the following tasks:
Stop the replication agents on the databases in the active standby pair. These commands use the advancedCacheDSN
as an example.
ttCWAdmin -stop -dsn advancedCacheDSN
Drop the active standby pair.
ttCWAdmin -drop -dsn advancedCacheDSN
Modify the schema as desired.
Re-create the active standby pair replication scheme.
ttCWAdmin -create -dsn advancedCacheDSN
Start the active standby pair replication scheme.
ttCWAdmin -start -dsn advancedCacheDSN
See Oracle Clusterware Administration and Deployment Guide.
If you are upgrading from TimesTen release 11.2.1.6.6 to TimesTen 11.2.1.7.1, see Chapter 9, "Upgrading TimesTen When Using Oracle Clusterware".
To upgrade TimesTen, perform these tasks:
Stop the replication agents on the databases in the active standby pair.
ttCWAdmin -stop -dsn advancedDSN
Drop the active standby pair.
ttCWAdmin -drop -dsn advancedDSN
Stop the TimesTen cluster agent on the host. This removes the host from the cluster and stops the TimesTen daemon.
ttCWAdmin -shutdown -hosts localhost
Upgrade TimesTen on the desired hosts. Every node in the cluster must have TimesTen from the same major release. If you are upgrading between major releases, use the ttMigrate
utility. See "Database Upgrades" in Oracle TimesTen In-Memory Database Installation Guide.
Start the TimesTen cluster agent. This includes the host in the cluster and starts the TimesTen daemon.
ttCWAdmin -init
Create the active standby pair replication scheme.
ttCWAdmin -create -dsn advancedDSN
Start the active standby pair replication scheme.
ttCWAdmin -start -dsn advancedDSN
To add a read-only subscriber to an active standby pair, perform these steps:
Stop the replication agents on all databases. This example uses the advancedSubscriberDSN
, which already has a subscriber and is configured for advanced availability.
ttCWAdmin -stop -dsn advancedSubscriberDSN
Drop the active standby pair.
ttCWAdmin -drop -dsn advancedSubscriberDSN
Modify the cluster.oracle.ini
file.
Add the subscriber to the SubscriberHosts
attribute.
If the cluster is configured for advanced availability, add a virtual IP address to the SubscriberVIP
attribute.
See "Configuring advanced availability" for an example using these attributes.
Create the active standby pair replication scheme.
ttCWAdmin -create -dsn advancedSubscriberDSN
Start the active standby pair replication scheme.
ttCWAdmin -start -dsn advancedSubscriberDSN
To remove a read-only subscriber from an active standby pair, perform these steps:
Stop the replication agents on all databases. This example uses the advancedSubscriberDSN
, which has a subscriber and is configured for advanced availability.
ttCWAdmin -stop -dsn advancedSubscriberDSN
Drop the active standby pair.
ttCWAdmin -drop -dsn advancedSubscriberDSN
Modify the cluster.oracle.ini
file.
Remove the subscriber from the SubscriberHosts
attribute or remove the attribute altogether if there are no subscribers left in the active standby pair.
Remove a virtual IP the SubscriberVIP
attribute or remove the attribute altogether if there are no subscribers left in the active standby pair.
Create the active standby pair replication scheme.
ttCWAdmin -create -dsn advancedSubscriberDSN
Start the active standby pair replication scheme.
ttCWAdmin -start -dsn advancedSubscriberDSN
To add an active standby pair (with or without subscribers) to a cluster that is already managing an active standby pair, perform these tasks:
Create and populate a database on the host where you intend the active database to reside initially. See "Create and populate a TimesTen database on one host".
Modify the cluster.oracle.ini
file. This example adds advSub2DSN
to the cluster.oracle.ini
file that already contains the configuration for advancedSubscriberDSN
. The new active standby pair is on different hosts from the original active standby pair.
[advancedSubscriberDSN] MasterHosts=host1,host2,host3 SubscriberHosts=host4, host5 MasterVIP=192.168.1.1, 192.168.1.2 SubscriberVIP=192.168.1.3 VIPInterface=eth0 VIPNetMask=255.255.255.0 [advSub2DSN] MasterHosts=host6,host7,host8 SubscriberHosts=host9, host10 MasterVIP=192.168.1.4, 192.168.1.5 SubscriberVIP=192.168.1.6 VIPInterface=eth0 VIPNetMask=255.255.255.0
Create new virtual IP addresses. On Linux and UNIX, the user must be root
to do this.
ttCWAdmin -createVIPs -dsn advSub2DSN
Create the new active standby pair replication scheme.
ttCWAdmin -create -dsn advSub2DSN
Start the new active standby pair replication scheme.
ttCWAdmin -start -dsn advSub2DSN
To remove an active standby pair (with or without subscribers) from a cluster, perform these tasks:
Stop the replication agents on all databases in the active standby pair. This example uses advSub2DSN
, which was added in "Adding an active standby pair to a cluster".
ttCWAdmin -stop -dsn advSub2DSN
Drop the active standby replication scheme.
ttCWAdmin -drop -dsn advSub2DSN
Drop the virtual IP addresses for the active standby pair.
ttCWAdmin -dropVIPs -dsn advSub2DSN
Modify the cluster.oracle.ini
file (optional). Remove the entries for advSub2DSN
.
If you want to destroy the databases, log onto each host that was included in the configuration for this active standby pair and use the ttDestroy
utility.
ttDestroy advSub2DSN
For more information about ttDestroy
, see "ttDestroy" in Oracle TimesTen In-Memory Database Reference.
Adding a host requires that the cluster be configured for advanced availability. The examples in this section use the advancedSubscriberDSN
.
To add two spare master hosts to a cluster, enter a command similar to the following:
ttCWAdmin -addMasterHosts -hosts "host8,host9" -dsn advancedSubscriberDSN
To add a spare subscriber host to a cluster, enter a command similar to the following:
ttCWAdmin -addSubscriberHosts -hosts "subhost1" -dsn advancedSubscriberDSN
Removing a host from the cluster requires that the cluster be configured for advanced availability. MasterHosts
must list more than two hosts if one of the master hosts is to be removed. SubscriberHosts
must list at least one more host than the number of subscriber databases if one of the subscriber hosts is to be removed.
The examples in this section use the advancedSubscriberDSN
.
To remove two spare master host from the cluster, enter a command similar to the following:
ttCWAdmin -delMasterHosts "host8,host9" -dsn advancedSubscriberDSN
To remove a spare subscriber hosts from the cluster, enter a command similar to the following:
ttCWAdmin -delSubscriberHosts "subhost1" -dsn advancedSubscriberDSN
After a failover, the active and standby databases are on different hosts than they were before the failover. Ensure that there are no open transactions before using the -switch
option of the ttCWAdmin
utility to reverse the roles of the active and standby databases. If there are open transactions, the command will fail.
For example:
ttCWAdmin -switch -dsn basicDSN
When a cluster is configured for advanced availability, you can use the -relocate
option of the ttCWAdmin
utility to move a database from the local host to the next available spare host specified in the MasterHosts
attribute in the cluster.oracle.ini
file. If the database on the local host has the active role, the -relocate
option first reverses the roles. Thus the newly migrated active database becomes the standby and the standby becomes the active.
The -relocate
option is useful for relocating a database if you need to take the host offline. Ensure that there are no open transactions before you use the command.
For example:
ttCWAdmin -relocate -dsn advancedDSN
If you need to upgrade the operating system or hardware for a host or perform network maintenance, shut down Oracle Clusterware and disable automatic startup. Execute these Oracle Clusterware commands as root
or OS administrator:
# crsctl stop crs # crsctl disable crs
Shut down TimesTen. See "Shutting down a TimesTen application" in Oracle TimesTen In-Memory Database Operations Guide.
Perform the host maintenance. Then enable automatic startup and start Oracle Clusterware:
# crsctl enable crs # crsctl start crs
See Oracle Clusterware Administration and Deployment Guide for more information about these commands.
When all of the hosts in the cluster need to be brought down, stop Oracle Clusterware on each host individually. Execute these Oracle Clusterware commands as root
or OS administrator:
# crsctl stop crs # crsctl disable crs
Shut down TimesTen. See "Shutting down a TimesTen application" in Oracle TimesTen In-Memory Database Operations Guide.
Perform the maintenance. Then enable automatic startup and start Oracle Clusterware:
# crsctl enable crs # crsctl start crs
See Oracle Clusterware Administration and Deployment Guide for more information about these commands.
When you create the active standby pair replication scheme with the ttCWAdmin -create
command, Oracle Clusterware prompts for the user name and password of the internal user. If there are cache groups in the active standby pair, Oracle Clusterware also stores the cache administration user name and password. To change the user name or password for the internal user or the cache administration user, you must re-create the cluster.
To change the user name or password of the internal user that created the active standby pair replication or to change the cache administration user name or password, perform these tasks:
Stop the replication agents on the databases in the active standby pair. These commands use the advancedCacheDSN
as an example.
ttCWAdmin -stop -dsn advancedCacheDSN
Drop the active standby pair.
ttCWAdmin -drop -dsn advancedCacheDSN
Change the appropriate user name or password:
Change the internal user name or password by using the CREATE USER
or ALTER USER
statements. See "Creating or identifying users to the database" in Oracle TimesTen In-Memory Database Operations Guide.
Change the cache administration user name or password by using the ttCacheUidPwdSet
built-in procedure. See "Setting the cache administration user name and password" in Oracle In-Memory Database Cache User's Guide.
Re-create the active standby pair replication scheme.
ttCWAdmin -create -dsn advancedCacheDSN
Start the active standby pair replication scheme.
ttCWAdmin -start -dsn advancedCacheDSN
This section includes:
Using the -status
option of the ttCWAdmin
utility reports information about all of the active standby pairs in an instance that are managed by the same instance administrator. If you specify the DSN, the utility reports information for the active standby pair with that DSN.
Example 7-1 Status after creating an active standby pair
After you have created an active standby pair replication scheme but have not yet started replication, ttCWAdmin -status
returns information like this. Note that these grid states will be displayed before replication is started regardless of whether there is a cache grid.
$ ttCWAdmin -status TimesTen Cluster status report as of Thu Nov 11 13:54:35 2010 ==================================================================== TimesTen daemon monitors: Host:HOST1 Status: online Host:HOST2 Status: online ==================================================================== ==================================================================== TimesTen Cluster agents Host:HOST1 Status: online Host:HOST2 Status: online ==================================================================== Status of Cluster related to DSN MYDSN: ==================================================================== 1. Status of Cluster monitoring components: Monitor Process for Active datastore:NOT RUNNING Monitor Process for Standby datastore:NOT RUNNING Monitor Process for Master Datastore 1 on Host host1: NOT RUNNING Monitor Process for Master Datastore 2 on Host host2: NOT RUNNING 2.Status of Datastores comprising the cluster Master Datastore 1: Host:host1 Status:AVAILABLE State:ACTIVE Grid:NO GRID Master Datastore 2: Host:host2 Status:UNAVAILABLE State:UNKNOWN Grid:UNKNOWN ==================================================================== The cluster containing the replicated DSN is offline
Example 7-2 Status when the active database is running
After you have started the replication scheme and the active database is running but the standby database is not yet running, ttCWAdmin -status
returns information like this when a cache grid is not configured.
$ ttcwadmin -status TimesTen Cluster status report as of Thu Nov 11 13:58:25 2010 ==================================================================== TimesTen daemon monitors: Host:HOST1 Status: online Host:HOST2 Status: online ==================================================================== ==================================================================== TimesTen Cluster agents Host:HOST1 Status: online Host:HOST2 Status: online ==================================================================== Status of Cluster related to DSN MYDSN: ==================================================================== 1. Status of Cluster monitoring components: Monitor Process for Active datastore:RUNNING on Host host1 Monitor Process for Standby datastore:RUNNING on Host host1 Monitor Process for Master Datastore 1 on Host host1: RUNNING Monitor Process for Master Datastore 2 on Host host2: RUNNING 2.Status of Datastores comprising the cluster Master Datastore 1: Host:host1 Status:AVAILABLE State:ACTIVE Grid:NO GRID Master Datastore 2: Host:host2 Status:AVAILABLE State:IDLE Grid:NO GRID ==================================================================== The cluster containing the replicated DSN is online
If a cache grid is configured, then the last section appears as follows:
2.Status of Datastores comprising the cluster Master Datastore 1: Host:host1 Status:AVAILABLE State:ACTIVE Grid:AVAILABLE Master Datastore 2: Host:host2 Status:AVAILABLE State:IDLE Grid:NO GRID
Example 7-3 Status when the active and the standby databases are running
After you have started the replication scheme and the active database and the standby database are both running, ttCWAdmin -status
returns information like this when a cache grid is not configured.
$ ttcwadmin -status TimesTen Cluster status report as of Thu Nov 11 13:59:20 2010 ==================================================================== TimesTen daemon monitors: Host:HOST1 Status: online Host:HOST2 Status: online ==================================================================== ==================================================================== TimesTen Cluster agents Host:HOST1 Status: online Host:HOST2 Status: online ==================================================================== Status of Cluster related to DSN MYDSN: ==================================================================== 1. Status of Cluster monitoring components: Monitor Process for Active datastore:RUNNING on Host host1 Monitor Process for Standby datastore:RUNNING on Host host2 Monitor Process for Master Datastore 1 on Host host1: RUNNING Monitor Process for Master Datastore 2 on Host host2: RUNNING 2.Status of Datastores comprising the cluster Master Datastore 1: Host:host1 Status:AVAILABLE State:ACTIVE Grid:NO GRID Master Datastore 2: Host:host2 Status:AVAILABLE State:STANDBY Grid:NO GRID ==================================================================== The cluster containing the replicated DSN is online
If a cache grid is configured, then the last section appears as follows:
2.Status of Datastores comprising the cluster Master Datastore 1: Host:host1 Status:AVAILABLE State:ACTIVE Grid:AVAILABLE Master Datastore 2: Host:host2 Status:AVAILABLE State:STANDBY Grid:AVAILABLE
The monitor processes report events and errors to the ttcwerrors.log
and ttcwmsg.log
files. The files are located in the daemon_home
/info
directory. The default size of these files is the same as the default maximum size of the user log. The maximum number of log files is the same as the default number of files for the user log. When the maximum number of files has been written, additional errors and messages overwrite the files, beginning with the oldest file.
For the default values for number of log files and log file size, see "Modifying informational messages" in Oracle TimesTen In-Memory Database Operations Guide.