TimesTen 数据库复制学习:6. 利用STORE关键字设定复制网络传输的属性

利用STORE关键字,可以在CREATE ACTIVE STANDBY PAIR, ALTER ACTIVE STANDBY PAIR, CREATE REPLICATION, 和 ALTER REPLICATION 设置复制的属性,如超时,压缩,commit行为,表定义检查,return service,对于classic复制,还可以设置表一级的数据冲突

设定return service的超时

缺省的超时为10秒,可用RETURN WAIT TIME设定超时,例如:

Command> ALTER ACTIVE STANDBY PAIR
 > ALTER STORE master1 SET RETURN WAIT TIME 25;

当然,在应用中也可以用ttRepSyncSet达到同样效果:

Command> CALL ttRepSyncSet (0x01, 25, 1);

将超时恢复为缺省:

Command> CALL ttRepSyncSet(NULL, 45, NULL);

以下是classic复制中一个双向复制的例子:

CREATE REPLICATION bidirect
ELEMENT a DATASTORE
    MASTER databaseA ON "system1"
    SUBSCRIBER databaseB ON "system2"
      RETURN TWOSAFE
ELEMENT b DATASTORE
    MASTER databaseB ON "system2"
    SUBSCRIBER databaseA ON "system1"
      RETURN TWOSAFE
STORE databaseA RETURN WAIT TIME 30
STORE databaseB RETURN WAIT TIME 30;

DISABLE RETURN

DISABLE RETURN设定当复制的错误达到一定阈值时,停止return service

Command> ALTER ACTIVE STANDBY PAIR
 > ALTER STORE master1 SET DISABLE RETURN ALL 10;

RESUME RETURN

当从commit到acknowledge的时间小于RESUME RETURN设定的值时(milliseconds),恢复return service,例如:

Command> CREATE ACTIVE STANDBY PAIR
 > master1,
 > master2
 > RETURN RECEIPT
 > STORE master1
 > DISABLE RETURN ALL 5
 > RESUME RETURN 8;

RETURN SERVICES {ON | OFF} WHEN [REPLICATION] STOPPED

当复制停止时,设定是继续保持return service打开还是关闭return service。

无论如何,都不会影响通讯恢复后,数据的同步

DURABLE COMMIT

一般在return service被DISABLE RETURN掉后,可以设置DURABLE COMMIT以保证数据不丢失。例如:

Command> CREATE ACTIVE STANDBY PAIR
 > master1,
 > master2
 > RETURN RECEIPT
 > STORE master1
 > DISABLE RETURN ALL 5
 > DURABLE COMMIT ON
 > RESUME RETURN 8;

LOCAL COMMIT ACTION

只对TWOSAFE有效,可以设置为缺省的 NO ACTION或本地提交:COMMIT

 复制表的列定义

参与复制的表的列定义可以不必完全一致,指的是列的顺序,物理定义可以不一致(通过alter table增加列达到一致的定义),但列名,列数据类型,key定义必须一致。

如果TABLE DEFINITION CHECKING设为EXACT,则必须完全一致;如果设置为RELAX,则可以不一致。

EXACT的性能比RELAX性能更好,并且是缺省的设置。

用处不大,略过。

复制压缩

只对STORE中指定的数据库发出的数据流进行压缩,例如:

CREATE ACTIVE STANDBY PAIR dsn1 ON "host1", dsn2 ON "host2"
  SUBSCRIBER dsn3 ON "host3"
  STORE dsn1 ON "host1" COMPRESS TRAFFIC ON;

CREATE ACTIVE STANDBY PAIR dsn1 ON "host1", dsn2 ON "host2"
  SUBSCRIBER dsn3 ON "host3"
STORE dsn1 ON "host1" COMPRESS TRAFFIC ON
STORE dsn2 ON "host2" COMPRESS TRAFFIC ON;

端口设置

使用PORT设定侦听从对方传来的更新的端口,缺省是动态分配的。

设定从远端复制代理的等待超时

缺省的超时为120秒。推荐使用。略过

设定transaction log错误阈值

缺省是0,表示没有限制。

You can establish a threshold value that, when exceeded, sets an unavailable database to the failed state before the available transaction log space is exhausted

看来与日志空间有关

少用,略过

配置网络

网络带宽的需求与数据更新的频率与量有关。

Transactions are sent between replicated databases in batches. A batch is created whenever there is no more data in the transaction log buffer in the master database, or when the current batch is roughly 256 KB.

这句说的应该是异步模式

复制使用的TCP/IP协议

在复制中,必须指定主机名,操作系统将主机名转换为1个或多个IP 地址。

When specifying the host for a database in a replication element, you should always use the name returned by the hostname command, as replication uses the same host name to verify that the current host is involved in the replication scheme. Replication schemes may not be created that do not include the current host.

若主机有多个网络接口,可以用ROUTE 来指定复制用接口。通过IP地址指定

设定不同的网络端口,一是为了负载均衡,二则可用来做错误切换。

以下是一个错误切换的例子,当PRIORITY 1的一对接口失效时,可以用作为备份的PRIORITY 2接口来接管:

CREATE ACTIVE STANDBY PAIR dns1, dns2
ROUTE MASTER dsn1 ON "host1" SUBSCRIBER dsn2 ON "host2"
  MASTERIP "192.168.1.100" PRIORITY 1
  MASTERIP "192.168.1.101" PRIORITY 2
  SUBSCRIBERIP "192.168.1.200" PRIORITY 1
  SUBSCRIBERIP "192.168.1.201" PRIORITY 2;
时间: 2024-10-12 21:32:06

TimesTen 数据库复制学习:6. 利用STORE关键字设定复制网络传输的属性的相关文章

从数据库读取数据后利用反射为对应的实体类的属性赋值

1.连接数据库并关闭连接(jdbctools.java) package com.xiaojie.dao; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.sql.DataSource; import com.mchange.

TimesTen 数据库复制学习:7. 管理Active Standby Pair(无缓存组)

Active Standby Pair是TimesTen复制的一种固定模式,就是1个active到1个standby,再到0个或127个subscriber,如下图: 配置 Active Standby Pair (不带缓存组) 大致步骤如下: 1. 创建数据库 2. 使用CREATE ACTIVE STANDBY PAIR创建复制 3. 调用Call ttRepStateSet('ACTIVE'),将active数据库的角色设为ACTIVE 4. 调用Call ttRepStart, 启动复制

TimesTen 数据库复制学习:2. 配置Active Standby Pair

本文为一个动手实验,配置Active Standby Pair,配置3个数据库, master, standby和一个subscriber.拓扑如下: 在本实验中,为简化,三个数据库皆位于同一主机. 创建DSN [ODBC Data Sources] master1=TimesTen 11.2.2 Driver master2=TimesTen 11.2.2 Driver subscriber1=TimesTen 11.2.2 Driver [master1] Driver=/home/orac

TimesTen 数据库复制学习:10. 定义classic复制

设计高可用系统 复制的目标为: 1. 提供一个或多个复制数据库,保证数据可以为应用所用 2. 提供复制数据库用于恢复 3. 负载均衡 4. 无中断的软件升级和维护 classic replication scheme支持以下形式: Unidirectional - 这个和ASP有和区别,会切换角色吗 Bidirectional split workload - 双向,属于互备型,两个数据库负责不同的工作负载 Bidirectional distributed workload - 双向,属于双活

TimesTen 数据库复制学习:16. 一个缓存组,复制,客户端自动切换的串烧实验

简介 这时一个集只读,AWT缓存组,Active Standby 复制,client auto failover为一体的集成实验. 整个过程来至于Doc ID 1359840.1, 本文基于此文档按照自己的环境重做了一遍,并更正了其中的小错误,增加了自己的理解. 本文省略了在Oracle端设置缓存组的过程,可以参见前面的文章. 搭建的环境为虚拟机 timesten-hol 上安装了两个TimesTen实例, 实例名分别为tt1122和ttnew, 分别驻留在端口53392(缺省)和55555 t

TimesTen 应用层数据库缓存学习:18. 利用TimesTen实现Sharding或数据分区

考虑到恢复和磁盘加载到内存的速度,单个TimesTen数据库可以缓存的数据一般不超过100G,如果需要缓存的数据较大,一般可以利用多个TimesTen来实现数据分区或分片(Sharding). 虽然TimesTen有Cache Grid即Global Cache Group的概念,但由于其还不太成熟,一般采用手工分区的方式,即通过应用服务器定向到指定的TimesTen的方式. 以下给出了只读和读写数据分区的例子. 另外强调一点,TimesTen没有Oracle Partition的概念. Tim

TimesTen 数据库复制学习:9. 更改Active Standby Pair

在Active Standby Pair中复制DDL语句 在以下的例子中,active master为cachedb2, standby master为cachedb1 在Active Standby Pair复制数据库对象 DDLReplicationLevel 连接属性可以控制复制对象的行为. DDLReplicationLevel = 1:不复制表,索引和同义词的create 和 drop,只复制复制表的添加和删除列操作 DDLReplicationLevel = 2: 缺省,复制表,索引

TimesTen 数据库复制学习:1. TimesTen复制概述

本文为TimesTen数据库复制系列的第一篇. 什么是复制 复制就是在多个数据库中存在多份数据拷贝,对性能影响最小的同时保证数据高可用,除了数据恢复外,还可以均衡工作负载,以最大化性能和实现滚动升级和维护 TT复制的实现是在master和subscriber数据库都有复制代理,一个负责读,一个负责加载,数据在rep agent间传递 TT推荐的方法是ASP(active standby pair),TT支持复制整库,部分表,cache group, sequence等.ASP是唯一支持复制cac

TimesTen 应用层数据库缓存学习:12. 管理缓存环境

缓存和复制代理的启停和状态查看 cache agent的作用是将监控Oracle中数据的变化,并更新到TimesTen.因此,对于只读和AWT缓存组,cache agent都是必需的. cache agent的启停 ttisql> call ttcachestart ttisql> call ttcachestop 或者 $ ttadmin -cachestart DSN $ ttadmin -cachestop DSN replication agent的启停 ttisql> call