2008年7月19日星期六

SYBASE Replication System安装与维护

前言
   Replication System是近年来sybase推出的新产品,同样Oracle也有自己的replication System,我公司在Chinanet骨干网及许多省网上也采用了该技术。98年世界杯期间,其数据库系统中就采用了该技术,自98年七月以来我在吉林,辽宁,河南诸省相继恢复了复制的运行,其工作正常。以下内容是我的经验,仅供诸位参考。

  一. RS(复制服务器)概述

  1. 数据分布与复制

  RS(复制服务器)通过网络在多个数据服务器(DS)间异步地复制数据,可保证这些分布数据的一致性和完整性。

  在一个简单的复制系统中有一个RS,一个PDS(主点DS),一个或多个RDS(复制点DS),当PDS上DB中数据发生变化后,由RS将其变化复制到RDS(复制点DS)中相应DB中去,这样PDB中的数据被分布到RDB中去,达到数据分布与复制的目的。一个复杂的复制系统中有多个RS,复制在它们之间定向进行。

  2. 复制及数据分布的优点

  a. 提高访问效率

  如果分布在WAN上的用户只在一台DB(数椐库)上访问数据,会由于网络或用户过多等原因,造成较低的效率(瓶颈)。如果WAN及DB终断时,用户会访问不到数据,而如果把数据复制到用户本地DB上,用户可用LAN的速度访问DB,用户的访问请求也被合理分散了。即便WAN有问题,主点DB数据改变会存放于稳定对列中,一旦WAN正常后PDB可自动恢复复制数据到RDB。

  b. 灾难备份

  当PDB,PDS出问提后,用户可以从RDB中访问数椐。

  3. RS机制

  a. 用户将事务提交给 PDB(数据变化),该事务汇入PDB之log

  b. log被读出并传至RS中,log作读出标记

  c. RS接收log、判断、组装、发送到RDB

  d. RDB收到相应log后执行复制约定

  e. RDB执行完复制约定后,RS恢复一系列状态

  4. RS基本模式

  RS根据应用可分为

  a. 单向复制:一个主点,一个或若干复制点,一个RS

  b. 双向复制:两个DB均为主点,两个RS,可分两种情况

  ¬ 两个DB中的表分别为主点表,属于双向中的单向

  ­ 两个DB中的表全为主点表,不保证一致性。其一致性应由编程解决。

  又可分为表级复制与warm standby

  表级:只对DB中的指定的表复制

  warm standby:可对DB中所有表复制

  warm standby是对表级的一个扩展,只有SQL Server 11.03以上才有该功能。我们用的模式为warm standby方式,其做用是做灾难备份。

  5. RS系统的组成:(真对warm standby)

  a. SQL Server做为RS的寄宿Server、RS将在上面建立自己的DB(RSSD)

  b. PDS、PDB、RDS、RDB

  c. LTM:log日志传输管理进程,在PDB中被标记的log传到RS上,RSSD需要,PDB需要,RDB不需要

  d. 稳定对例:RS处理PDB之log存放处

  二. RS的安装与配置:(一律以SYBASE身份操作)

  (由于安装界面很多,且繁锁,这里只作提示性描述,其配置也多基于实际情况调整。)

  1. PDB、RDB之准备

  a. 按实际情况调整SQL设置:mem,lock.

  b. 检验PDB与RDB之状态 ,是否同步,如:table、dbsize、log size。可用bcp同步。

  c. 清空两DB之log

  d. 备份主DB

  2. 安装RS

  a. 确定自己机器的档次

  b. 从光盘下载RS软件

  c. 安装RS

  并在RS中建立逻辑连接,RS库size 50M、log size 100M。稳定对列空间需1G以上(此数据乃经验之谈,但小于300M系统将不易管理。)

  d. 在RS上添加主DB,及复制点DB

  注:在两DB中维护用户应取同样的名字、口令及SUID

  e. 在两DB中对维护用户授权

  f. 在主点DB中建立复制约定

  g. 用admin who

   health

   disk_space

   logical_status

  等命令查看复制状况,如无异常显示,表示复制建立成功,PDB与RDB间已有复制关系。

  三. RS系统的起动与关闭

  1. 起动RS:start server -f RUN_RS

  起动PDB之ltm startserver -f RUN_aiontmng_ltm

  起动RS之 ltm starserver -f RUN_RS_RSSD_ltm

  2. 停止RS系统

  停止RS:

  isql -Usa –SRS

  Passwd:

  1> shutdown

  2>go

  停止ltm :

  isql -Usa -SSYBASE1_aiantmng_ltm

  Passwd:

  1> shutdown

  2>go

  3. 检查RS有关进程:

  ps -u Sybase

  四. 维护与常见故障解决

  RS系统维护十分重要。

  1. 维护监控手段

  在RS中用

  a. admin who 看所有进程是否正常

  down,suspent,active,awaiting

  b. admin logical_statas看逻辑连接方向

  c. admin health看连接状态

  d. admin disk_space看稳定对列及空间占用率,

  e. 看RS. Lg里面有error. Warnning等记录,有每次复制开始及结束时间,有资源问题的记录。

  2. 常见故障现象与解决方法

  a. 在RS中用admin who看到有进程suspend ,可能是由于网络长时间中断, 队列阻塞引起。

  解决:首先解决故障,再用Resume命令恢复suspend进程。

  b. admin disk_space时队列长时间塞满(2小时以上),是由于 稳定对列空间不足,log塞满空间,稳定对列被塞死,原因是主点DB一次执行了大数据量事务或由于网络终断,复制点出问题,导致多次log在稳定对列中引起阻塞。

   解决:增加稳定对列。或停止复制连接,再重配RS,以清空对列。

  c. 复制点CPU占用率一直在100%(时间长达24小时以上),稳定对列中有数据(在复制完成后,稳定对列是自动清空的)这一般是由于复制点资源被耗尽(log、mem、¼)

   解决:可检查复制点机器资源,增加相应资源。重起RDS。

  d. 主点DB删不掉log,稳定对列空间占满

  由于稳定对列塞死,无法从PDB log中读取log,而为保证一致性,未读入稳定对列的log就无法删除。

   解决:检查稳定对列为何塞死,解决相应问题。应急措施可增加稳定对列空间,删掉主点部分log使主点可继续工作,再解决RS系统上问题,如没空间可增加,先去掉复制:

  用dbcc setturnc (ltm、ignore)

  解决问题后需重新设置RS系统。

没有评论: