zq5143 发表于 2009-06-21 01:55

一个复制服务器的棘手问题~!

错误描述:在创建复制定义和预定的过程中(跑脚本,有数百项预定),当用isql连上RS执行admin who命令时,长时间无动静(不能返回结果)。创建预定过程也停止了。当用ctrl+c退出连接时,则日志报以下错误:
E. 2009/06/21 01:37:34. ERROR #60024 USER(sa) - seful/cm.c(5166)
      Synchronization model MUTEX, element CMGlobalCMMutex was interrupted waiting for a lock. (5155)eneric/useful/sync.c.
E. 2009/06/21 01:37:34. ERROR #60036 USER(sa) - seful/cm.c(5173)
      Failed to acquire lock on sync element 'CMGlobalCMMutex'. Info 7.
当重启RS后暂时正常,在后来的某个时间段登录RS执行任何命令时,RS又没有响应。日志又报以上的错误。
RS中的复制节点有20个左右。
望高手给于指导!

[ 本帖最后由 zq5143 于 2009-6-21 19:37 编辑 ]

WFCJZ 发表于 2009-06-21 18:47

看得有些晕,能再说清楚一下吗?

D_D_D_D 发表于 2009-06-22 15:06

基本正常,为这件事咨询过sybase的人,我以前有个点,后台执行复制定义用了2周的时间...

看看数据库中的lock,还有队列是否在走,能看到还差多少没有执行完。

zq5143 发表于 2009-06-22 15:55

原帖由 D_D_D_D 于 2009-6-22 15:06 发表 http://bbs3.chinaunix.net/images/common/back.gif
基本正常,为这件事咨询过sybase的人,我以前有个点,后台执行复制定义用了2周的时间...

看看数据库中的lock,还有队列是否在走,能看到还差多少没有执行完。

复制定义前天已经跑完了,服务已经跑了两天了,但是还是时不时地出现以上的错误(登录RS,执行任何命令都没反映,这时日志没有抱错;当按ctrl+c时,日志则报“Synchronization model MUTEX, element CMGlobalCMMutex was interrupted waiting for a lock”),这时没办法只好重启RS,但是重启之后不久又出现同样的问题。后来调大了 num_msgqueues, num_mutexes这两个参数也不行。但是相同的软硬件平台,相同的脚本。在其它省的实施中也都没有问题啊~很奇怪~

[ 本帖最后由 zq5143 于 2009-6-22 16:17 编辑 ]

D_D_D_D 发表于 2009-06-22 16:17

登录复制服务器后,随便执行个命令,然后到数据库里sp_who一下,看看有没有进程锁等待

最好还是在复制服务器里看下sqm的read和next的数

另:数据库日志有报错么

zq5143 发表于 2009-06-22 16:30

原帖由 D_D_D_D 于 2009-6-22 16:17 发表 http://bbs3.chinaunix.net/images/common/back.gif
登录复制服务器后,随便执行个命令,然后到数据库里sp_who一下,看看有没有进程锁等待

最好还是在复制服务器里看下sqm的read和next的数

另:数据库日志有报错么

1。你说是在哪个数据库里执行sp_who?源节点?RSSD库?
2。sqm中这个时候RS中的入栈队列已经不动了,其实这时候源节点还有交易。admin who,sqm和admin who,sqt可以执行,但是admin health和admin who不能执行,就像死了一样,这时RS日志还没有抱错,当按ctrl+c时,RS日志则抱那个错误。只有重启RS才能暂时解决问题。
3。所有的ASE数据库日志均没有抱错

hobbylu 发表于 2009-06-22 16:41

看看你的复制参数配置

zq5143 发表于 2009-06-22 19:42

原帖由 hobbylu 于 2009-6-22 16:41 发表 http://bbs3.chinaunix.net/images/common/back.gif
看看你的复制参数配置

RS15.2 on linux:
configure replication server set memory_limit to "2047"
go
configure replication server set num_client_connections to "128"
go
configure replication server set cm_max_connections to "128"
go
configure replication server set num_threads to "128"
go
configure replication server set sts_cachesize to "2000"
go
configure replication server set sqt_max_cache_size to "10485760"
go
configure replication server set ha_failover to 'on'
go
configure replication server set num_msgqueues to "1000"
go
configure replication server set num_mutexes to "2048"
go

zq5143 发表于 2009-06-25 11:30

和网络设置有关吗?

twtynky 发表于 2009-06-27 10:28

应该是你的复制脚本有问题。预订的时候有没有带上without materialization
这样的话就不需要几天的预订时间。其实这么长的时候是同步数据的
页: [1] 2
查看完整版本: 一个复制服务器的棘手问题~!