Eisen
发表于 2012-05-10 11:40
2BeSybPro老大,他那个sp_setreptostandby的检查结果有点怪啊——使用的warmstandby,但居然是"none",从lz的需求看来,应该要开成"all"才对吧
devilring
发表于 2012-05-10 11:43
我按照2位老大的说法,执行结果如下:
1> sp_setreptable acct
2> go
The replication status for 'acct' is currently true, owner_off.
(return status = 0)
1> sp_config_rep_agent bohai
2> go
Parameter Name Default Config Value Run Value
------------------------------ ------------ ------------------ ---------------
priority 5 5 5
trace flags 0 0 0
scan timeout 15 15 15
retry timeout 60 60 60
batch ltl true true true
send buffer size 2k 2k 2k
ha failover true true true
trace log file n/a n/a n/a
scan batch size 1000 1000 1000
security mechanism n/a n/a n/a
msg integrity false false false
unified login false false false
schema cache growth factor 1 1 1
rs servername n/a JIFEIRS JIFEIRS
skip ltl errors false false false
connect database bohai bohai bohai
msg origin check false false false
short ltl keywords false false false
data limits filter mode stop stop off
msg confidentiality false false false
msg replay detection false false false
mutual authentication false false false
send structured oqids false false false
send warm standby xacts false true true
msg out-of-sequence check false false false
skip unsupported features false false false
rs username n/a bohai_rep_agent bohai_rep_agent
send maint xacts to replicatefalse false false
connect dataserver APCHUANBO3 APCHUANBO3 APCHUANBO3
(29 rows affected)
(return status = 0)
devilring
发表于 2012-05-10 11:44
我按照2位老大的说法,执行结果如下:
1> sp_setreptable acct
2> go
The replication status for 'acct' is currently true, owner_off.
(return status = 0)
1> sp_config_rep_agent bohai
2> go
Parameter Name Default Config Value Run Value
------------------------------ ------------ ------------------ ---------------
priority 5 5 5
trace flags 0 0 0
scan timeout 15 15 15
retry timeout 60 60 60
batch ltl true true true
send buffer size 2k 2k 2k
ha failover true true true
trace log file n/a n/a n/a
scan batch size 1000 1000 1000
security mechanism n/a n/a n/a
msg integrity false false false
unified login false false false
schema cache growth factor 1 1 1
rs servername n/a JIFEIRS JIFEIRS
skip ltl errors false false false
connect database bohai bohai bohai
msg origin check false false false
short ltl keywords false false false
data limits filter mode stop stop off
msg confidentiality false false false
msg replay detection false false false
mutual authentication false false false
send structured oqids false false false
send warm standby xacts false true true
msg out-of-sequence check false false false
skip unsupported features false false false
rs username n/a bohai_rep_agent bohai_rep_agent
send maint xacts to replicatefalse false false
connect dataserver APCHUANBO3 APCHUANBO3 APCHUANBO3
(29 rows affected)
(return status = 0)
2BeSybPro
发表于 2012-05-10 11:48
你的系统是warmstandby而且没有用sp_reptostandby, 以前是用sp_setreptable,现在就用sp_setreptable吧,不然到时stable queue/logsegment满了更糟糕。看一下第三章参考下。
http://infocenter.sybase.com/help/topic/com.sybase.dc31035_1501/pdf/rsadmin_vol_2_ZH.pdf?noframes=true
对不起,我现在没有空了,请Eisen老大帮你设一下sp_setreptable吧。我晚上才能再帮你。
devilring
发表于 2012-05-10 11:48
我现在在服务器上还什么操作都没做呢,我都不知道该怎么操作啊,我随便找了几个表执行sp_setreptable ,状态目前都是true,owner_off. 我到底该怎么做,请2位老大给个具体步骤,谢谢
2BeSybPro
发表于 2012-05-10 11:51
再说一句,如果表在备份服务器上不存在,你要手工创建并赋权给replication user, 请Eisen老大帮帮你了。
devilring
发表于 2012-05-10 12:07
本帖最后由 devilring 于 2012-05-10 12:15 编辑
好的,谢谢,2BeSybPro 老大,你给我的链接的文档我是有的,而且之前我大概看了看,只是我才接触几天,很多地方都不太明白,但是目前情况又很紧急,下周1新系统就要上线了,所以我之前测试在主、备库上都建了个测试表,想测试用什么命令才能把这个表数据同步了,这样我在上线前就能把那些改了结构和新增的表都能做好复制,然后再上线系统;而且我又不想重新建复制定义,那样对我来说可能维护起来更麻烦,所以我一直是想在原有的数据库复制定义的基础上,把这些改动的表加进去,越少改动越好,来实现我的目的,那接下来就请Eisen老大帮我看看该怎么操作吧,
1、比如说我有个xwtest表,表结构变了,那么我怎么先把这个表从原来的复制定义中删除,即取消复制,在我把主、备库的该表结构都修改好后再添加回去;
2、比如我要添加一个新的表复制,那么我在主、备库上都创建好表后,又该怎么把这个表添加到原有的数据库复制定义里
3、通过之前的交流,我觉得可能原有的数据库复制定义的名字是rs_databases,但是现在还没确认,那么我该怎么确认这点
以上3点都还清Eisen老大帮帮我,谢谢
再补充一下,本来之前我自己在做测试的时候,刚开始我测试了create replication definition方式,这个定义倒是创建成功了,然后当我对主库的表做
sp_setreplicate xwtest, true操作的时候,就报错了:
1> sp_setreptable xwrep_test, true
2> go
Msg 9137, Level 16, State 2:
Server 'APCHUANBO3', Procedure 'sp_setreptable', Line 513:
LTM trunc. point not yet established with DBCC SETTRUNC().Until the LTM trunc. point is established, changes to the object 'xwrep_test' may not be replicated.
The replication status for 'xwrep_test' is set to true, owner_off.
然后我又用了下面的命令想要对表进行预订,还是不行
1> create subscription xwrep_test_sub for rep_test with replicate at JIFEI.bohai
2> go
Msg 15249, Level 12, State 0:
Server 'JIFEIRS':
Can not use active or standby connection names for subscriptions
之后我才想到,可能sybase工程不会用这种本办法对一个个表单独进行复制,可能用了什么批量的办法,后来我查资料看到create database replication definition,就猜测他们可能使用的这种数据库复制定义的方式,可以批量对表进行复制,所以我尝试看看能不能将xwrep_test表加到sybase工程师创建的数据库复制定义里去,结果又发现自己不知道这个定义的名称,这才跑到论坛上来请教高手,整个过程就是这样;
devilring
发表于 2012-05-10 12:24
再补充一下,我只需要对新的表和改变结构的表做数据复制就行,无需其它的复制,因为服务空间有限,我估计如果增加了其它的复制选项,日志很快就满,大不了以后但凡又表变化我都在主、备库上自己手动操作就好
Eisen
发表于 2012-05-10 12:27
先不要急,先把目前状况厘清楚——你现在是否复制系统依然工作正常?——就是以前定义的那些复制表依然复制数据,而为定义的复制表依然不复制数据?
Eisen
发表于 2012-05-10 12:30
2. 如果工作正常,那你随便在主点上随便新建一个测试表——
create table test_rs(id int)
go
grant all on test_rs to public
go
然后看看备点上是否也会同步出现该表,这一步用来检测你现在是否已经开启了DDL复制。