TimesTen 数据库复制学习:4. 定义Active Standby Pair复制策略

master数据库状态

可以使用ttRepStateGet 得到数据库的复制状态/角色
ACTIVE - active master,主库,可读写
STANDBY - active standby,备库,只读
IDLE - 所有数据库的初始状态,其实subscriber也是这个状态,只读
其它的状态有FAILED 和 RECOVERING

克隆数据库(初始化)

使用ttRepAdmin -duplicate 实现数据库的初始克隆。
需要两个数据库有相同的instance administrator,源库还需要一个具有ADMIN权限的用户

源库中的ADMIN权限用户建立示例:

CREATE USER repadmin IDENTIFIED BY timesten;
GRANT ADMIN TO repadmin;
ttRepAdmin -duplicate -from dsn1 -host host1 dsn2

可以复制带cache group的数据库,使用-keepCG或-nokeepCG

active standby pair的限制

在初始化阶段,standby库是通过duplicate active数据库得到
每个数据库都最好位于不同的主机上
为保证复制性能,网络延迟建议建议<100ms
复制数据库所在主机之间必须设置时间同步,必须保证其时间差异<250ms,否则复制报错

Read-only subscribers can be created only by duplicating the standby database,除非standby不可用,这时可以通过active克隆
从standby到subscriber的复制是异步的
standby和subscriber是只读的
如果ASP复制使用的不是RETURN TWOSAFE,那么failover后,新的standby只能通过克隆新的active得到。如果使用的是RETURN TWOSAFE,那么可以利用 automated master catch-up 特性。

最多127个subscriber

带有压缩列的表不能复制

ALTER ACTIVE STANDBY PAIR只能在active master中执行,执行后,standby和subscriber必须重新生成

定义数据库DSN

DataStore名是大小写敏感的,其它的没什么可说的。
Table requirements for active standby pairs

active standby pairs对于表的要求

复制的表需满足以下条件之一,这点和Cache Group是一样的,Cache Group也是一种复制,只不过是在TimesTen和Oracle之间。
* 有primary key
* 非空的唯一索引

带压缩列的表不能复制。

定义active standby pair复制策略

使用CREATE ACTIVE STANDBY PAIR语句,执行此语句的用户必须有ADMIN权限。只有instance admin才可以克隆数据库以初始化。
此语句可定义复制的传输模式,如同步,异步和准同步。
定义整库复制,还是指定表的复制,序列或缓存组的复制。

指定active standby pair中的数据库

Command> CREATE ACTIVE STANDBY PAIR master1 on host1, master2 on host2
       > SUBSCRIBER subscriber1 on host3, ... , SUBSCRIBER subscribern on hostn;

定义active standby pair网络传输模式

即定义return service,可以是缺省的no return, return receipt或return twosafe

设置active standby pair中的STORE属性

可以在CREATE ACTIVE STANDBY PAIR 或 ALTER ACTIVE STANDBY PAIR指定STORE属性。
包括设定return service,压缩,超时等。

配置active standby pair的网络接口

一般在多网卡时使用

 使用 automatic client failover(自动客户端切换)

Automatic client failover is for use in High Availability scenarios with a TimesTen active standby pair replication configuration. If failure of the active TimesTen node results in the original standby node becoming the new active node, then automatic client failover feature automatically transfers the application connection to the new active node.

类似于Oracle RAC中的服务定义,客户端将active和standby看做一个整体,客户端总是指向active master,无论是最初的active master,还是其失效后新接管的active master。

在复制中包含表和去除表

也就是说,active standby pair 既可以整库复制,也可选择表复制。例如:

INCLUDE TABLE employees, departments, jobs
EXCLUDE TABLE ttuser.tab1, ttuser.tab2
EXCLUDE CACHE GROUP ttuser.cg1, ttuser.cg2
EXCLUDE SEQUENCE ttuser.seq1, ttuser.seq2

An active standby pair replicates an entire database by default.

这里需要强调一点,就是对于ASP复制,只有一个复制scheme,尽管你可以选择复制部分表。

在active standby pair中复制带有外键的表

和Cache Group是类似的,active standby pair 可以复制有外键关联的一组表,最顶层的表称为根表。

物化视图的复制

当复制对象是物化视图时,只有事实表才会复制。

Sequence的复制

缺省就是复制的,除非你将其排除在外。

你可能感兴趣的:(timesten,数据库复制)