Eisen 发表于 2012-05-10 12:31

3. 如果备点上没有出现该表,那么你在备点上同样手工创建该表,并赋权给public
再去主点上执行
sp_setreptable test_rs,true
go
看看什么结果

devilring 发表于 2012-05-10 13:28

不好意思,刚才吃饭去了,你说的步骤我都执行了:
1、现在复制系统是正常的,原来定义的表都能复制数据
2、我创建了新表,在主库上创建了,然后在备份库上没创建,等了大概5分钟,备库没出现
3、我就在备库上也创建了该表,并赋权public,然后在主库上做了sp_setreptable xwrep_test,true
如下:
1> create table xwrep_test(id int)
2> go
1> grant all on xwrep_test to public
2> go
1> sp_setreptable xwrep_test,true
2> go
The replication status for 'xwrep_test' is set to true, owner_off.
(return status = 0)

devilring 发表于 2012-05-10 13:30

不好意思,刚才吃饭去了,你说的步骤我都执行了:
1、现在复制系统是正常的,原来定义的表都能复制数据
2、我创建了新表,在主库上创建了,然后在备份库上没创建,等了大概5分钟,备库没出现
3、我就在备库上也创建了该表,并赋权public,然后在主库上做了sp_setreptable xwrep_test,true
如下:
1> create table xwrep_test(id int)
2> go
1> grant all on xwrep_test to public
2> go
1> sp_setreptable xwrep_test,true
2> go
The replication status for 'xwrep_test' is set to true, owner_off.
(return status = 0)

Eisen 发表于 2012-05-10 13:35

你现在主点上,执行
insert xwrep_test values(1)
insert xwrep_test values(10)
go
然后看看备库上
select * from xwrep_test
go

devilring 发表于 2012-05-10 13:46

哇,居然自己就同步过去了,在备份库有数据了,看来我之前测试有问题,因为我考虑到以后可能要切换服务的问题,所以在备份服务器上也对测试表做了sp_setreptable xwrep_test,true操作,而且还是现在备份服务器上做的,然后再在主服务器上做的,结果在主服务器上做sp_setreptable xwrep_test,true操作的时候就报了Msg 9137错误,是不是不能在主、备库上都使用这个命令打开表的复制属性???
既然这样,那么新增表的问题解决,那么请问在已定义过的表,修改表结构了,我需要怎么做,还请step by step的教我,非常感谢!!!!

devilring 发表于 2012-05-10 13:52

我现在明白9137错误是怎么回事儿了,我刚才又在备份库上尝试使用sp_setreptable xwrep_test,true命令,结果又报了这个错误,看来同时指定复制属性,只有先被指定的才会生效,难怪我之前测试的时候插入数据不能同步

Eisen 发表于 2012-05-10 14:06

本帖最后由 Eisen 于 2012-05-10 14:12 编辑

先别激动。后面还有呢
你在主点上执行
alter table xwrep_test add str varchar(10) null
go
sp_setreptable xwrep_test
go
看看啥结果

devilring 发表于 2012-05-10 14:12

刚才我自己又做了如下测试:
1、把主库的表结构修改了,增加了一个字段,然后把备库也增加了一个字段
2、在主库update新增字段的值,发现update操作在备库同步了
3、然后我又做了个测试在主库使用bcp导出数据,然后在导入,结果主库4条数据,备库没同步,还是2条数据,是否是因为bcp不写日志的缘故?
4、然后我再主库执行delete操作,删除了4条数据,发现备库依然没有同步,还是2条数据
5、我手动把备库数据删除,然后在主库插入2条数据,发现备库依然无法同步,也就是说经过我使用bcp后,测试表的同步失效了,这种情况我该如何处理?
6、实际的新系统改造的表和新增的表可能数据会比较多,既然bcp不能用,我本就打算在主服务器上建立一个测试库,先将数据bcp到测试库,然后从测试库使用sql将数据再insert或update到正式库,不过这里有个问题,因为数据库日志问题,所以在执行这些操作过程中,我可能会用truncate db with no_log来清除日志,这样一来是不是我做的insert或update操作就同步不过去了???

devilring 发表于 2012-05-10 14:15

哦,我还是按照老大你说的来,这就去

Eisen 发表于 2012-05-10 14:15

本帖最后由 Eisen 于 2012-05-10 14:35 编辑

别急着自己乱来嘛,跟着我一步步走啊。
你这样一来,很可能已经将复制系统的DSI已经给弄停掉了,这样要弄得你现有的正常的复制整体停掉的。你赶快先去看看admin health的结果
页: 1 2 3 4 [5] 6 7 8
查看完整版本: sybase replication server问题(急!急!)