当前位置:文档之家› sybase replication使用技巧

sybase replication使用技巧

SYBASE Replication Server高级使用指南
复制服务器技巧汇总__常用配置
1. 复制分区partition越大越好,大小应该为数据流量的6倍,一般可以设为2G.
2. 最大线程数应该大于连接数(数据库和复制服务器)乘以2加3。

3. 复制内存内存加大。

注意事项
1. ASE要建立专门用于复制的sa用户,而且账号密码要和复制服务器的一模一样。

2. _RSSD_prim账号缺少sa权限,导致RSM不能访问复制服务器的配置。

3. RSM客户端置需要配置ID_SERVER及它的数据库地址。

SYBASE复制服务器技巧汇总__常用操作
1. 迁移复制服务器
a) 将相关数据库(RSSD数据库及复制数据库)的复制代理断开sp_stop_rep_agent db_name(ASE) 或是suspend log transfer from {data_server.database|all}
b) quiesce队列admin quiesce_force_rsi; 使用admin quiesce_check检查
c) 删除正在使用的复制分区drop partition partition_name;
d) 停掉相关的复制服务器(或是挂起路由)suspend route to replication_server; e) 迁移复制数据库以及RSSD数据库,服务器名称要和以前的一致,
重新建立复制服务器的ASE用户,修改连接配置文件。

f) 对RSSD数据库以及复制数据库的第二截断点归零use db_name go sp_stop_rep_agent db_name go dbcc settrunc(‘ltm’,’ignore’) go
use RSSD_db_name go rs_zeroltm data_server,database; go use db_name go dbcc settrunc(‘ltm’,’valid’) go
g) 增加复制分区add partition partition_name on ‘device_name’with size size;
h) 重建队列Rebuild queues go Igore loss from data_server.database [to data_server.database|replication_server];
i) 恢复复制代理sp_start_rep_agent db_name;(ASE)
2. 建立默认错误处理类。

SYBASE复制服务器技巧汇总__故障处理
1. 队列阻塞。

如果DSI线程DOWN掉的话,连续执行resume connection to data_server.database skip transactoin跳过阻塞事务,直至DSI线成能够正常工作。

否则,监测队列是否正常。

使用admin who,sqt;察看info 列此数值形如******x:y,******x 即为此队列号,如果是负数,则说明此队列事务有问题,
需要破置队列。

y=1,代表是处队列,y=2,代表是入队列。

(???不确定???) 使用admin who,sqm;察看First Seg.block Last Seg.block 以及Next read,
三个列的数值打效应为fast
SYBASE复制服务器技巧汇总__常用命令
1. 察看运行状态admin health; admin who; admin who_is_down; admin who_is_up; admin who,sqm; admin who ,sqt;
2. 察看复制服务器配置rs_config(ASE); rs_helpdb(ASE); rs_helperror(ASE); rs_helpdb(ASE);
rs_helppub(ASE);
rs_helppubsub(ASE); rs_helpsub(ASE); rs_helprep(ASE); rs_helprepdb(ASE); re_helpreptable(ASE); rs_helproute(ASE); admin disk_space(ASE);
3. 恢复运行resume connection to data_server.database [skip transaction|executetransaction] (恢复DSI进程);
sp_configure ‘enable rep agent threads’,1(ASE); sp_config_rep_agent ‘enable’(ASE); sp_start_rep_agent db_name(ASE);
4. 挂起运行sp_configure ‘enable rep agent threads’,0(ASE); sp_config_rep_agent ‘disable’(ASE); sp_stop_rep_agent db_name(ASE);
5 用户权限create user user_name set password{ passwd|null};grant sa to user_name; drop user user_name;
sysadmin sqm_purge_queue, q_number, q_type
go
sysadmin sqm_purge_queue q_number,q_type
注:q_number是队列编号,q_type是出、入站的标识(0--出,1--入)
上述两个参数可通过admin who,sqm 语句查到
如何清除SYBASE RSP中所有的出站或入站队列中的数据?
1、Replication Server以独立模式启动(改批处理加“-M”参数启动);
2、用SQLADV联接RSP Server;
3、执行下面的语句:
sysadmin sqm_purge_queue q_number,q_type
注:q_number是队列编号,q_type是出、入站的标识(0--出,1--入)
上述两个参数可通过admin who,sqm 语句查到
小心:上面的操作会删除指定队列、类型的所有数据。

SYBASE 复制队列不断增长
复制状态正常,怎么清除队列,取消复制事务:
1、检查你的数据库的第2截断点,复制数据库一定卡在比较长时间前了。

做dump tran xxx with truncate_only估计日志截断不了。

2、admin disk_space看你的状态,估计快被占用满了
3、rebuild queues重建队列。

4、停止复制代理
5、在复制数据库上,ignore loss from 远端_RS_RSSD to 中心_RSSD
ignore loss from 中心数据库to 远端数据库
6、admin disk_space现在看看占用情况,应该空间被释放出来了
7、你所有参与复制系统的表,已经不同步了,因为队列已经被清空了,数据得你想办法另外同步,比方说bcp out再in到中心
8、引起这个情况的原因,可能是表的主键等约束引起的,因为要在中心写的数据,结果发现违反唯一或者其他条件,导致写不了,
结果队列卡在那里了,越积越多最后撑死。

检查你的复制表的错误,这个可以在复制数据库的错误日志上看到。

相关主题