devilring 发表于 2012-05-10 10:57

这样吧,我把之前执行的几个命令结果集都再发一遍,请各位高手再看看
我的目的也很明确,因为我猜测服务器上原有的复制机制是使用的数据库复制(create database replication definition)这种批量的方式,所以想在现有的数据库复制定义下,增加或删除所需要复制的表,我已经测试过,在主库创建一个表,备库是不会同步创建的,而且我问询过之前sybase工程师安装时我单位在现场的同事,他也告诉我考虑到日志量问题当初仅设置为数据复制;以下是之前各位高手让我执行的命令和结果:
1>rs_helprep                                                                                                         
2>go                                                                                                                  
Replication Definition Name    PRS      Primary DS.DB             Primary Table      Replicate Table      Type   
---------------------------    ---      -------------             -------------      ---------------      ----   
rs_classes                     JIFEIRS    JIFEI_RSSD.JIFEIRS_RSSD   rs_classes                              Tbl   
rs_columns                     JIFEIRS    JIFEI_RSSD.JIFEIRS_RSSD   rs_columns                              Tbl   
rs_databases                   JIFEIRS    JIFEI_RSSD.JIFEIRS_RSSD   rs_databases                              Tbl   
rs_dbreps                      JIFEIRS    JIFEI_RSSD.JIFEIRS_RSSD   rs_dbreps                                 Tbl   
rs_dbsubsets                   JIFEIRS    JIFEI_RSSD.JIFEIRS_RSSD   rs_dbsubsets                              Tbl   
rs_erroractions                JIFEIRS    JIFEI_RSSD.JIFEIRS_RSSD   rs_erroractions                           Tbl   
rs_funcstrings               JIFEIRS    JIFEI_RSSD.JIFEIRS_RSSD   rs_funcstrings                            Tbl   
rs_functions                   JIFEIRS    JIFEI_RSSD.JIFEIRS_RSSD   rs_functions                              Tbl   
rs_objects                     JIFEIRS    JIFEI_RSSD.JIFEIRS_RSSD   rs_objects                              Tbl   
rs_routes                      JIFEIRS    JIFEI_RSSD.JIFEIRS_RSSD   rs_routes                                 Tbl   
rs_systext                     JIFEIRS    JIFEI_RSSD.JIFEIRS_RSSD   rs_systext                              Tbl   
                                                                                                                     
Sybase RSMServer_JIFEIRS_RSMReplication Definition Name    PRS                  Type Creation Date                  
---------------------------    ---                  ---- -------------                                                
rs_databases                   JIFEIRS            TblJan 18 20085:21PM                                          
                                                                                                                     
1>rs_helprep rs_databases                                                                                             
2>go                                                                                                                  
                                                                                                                     
PDS.DB               Primary Table      Replicate Table                                                            
------               -------------      ---------------                                                            
JIFEI_RSSD.JIFEIRS_R rs_databases         rs_databases                                                               
                                                                                                                     
Col. Name            Rep. Col. Name       Datatype   Len.      Pri. Col.   Searchable                              
---------            --------------       --------   ----------- ----------- -----------                              
dsname               dsname               varchar             30         1         0                              
dbname               dbname               varchar             30         1         0                              
dbid               dbid               int                  4         1         0                              
dist_status          dist_status          tinyint            1         1         0                              
src_status         src_status         tinyint            1         1         0                              
attributes         attributes         tinyint            1         0         0                              
errorclassid         errorclassid         binary               8         1         0                              
funcclassid          funcclassid          binary               8         1         0                              
prsid                prsid                int                  4         1         1                              
rowtype            rowtype            tinyint            1         0         1                              
sorto_status         sorto_status         tinyint            1         1         0                              
ltype                ltype                char               1         1         0                              
ptype                ptype                char               1         1         0                              
ldbid                ldbid                int                  4         1         0                              
enable_seq         enable_seq         int                  4         1         0                              
                                                                                                                     
Function Name                  FString Class                  FString Source FString Name                           
-------------                  -------------                  -------------- ------------                           
rs_delete                      rs_sqlserver_function_class    Class Defaultrs_delete                              
rs_insert                      rs_sqlserver_function_class    Class Defaultrs_insert                              
rs_select                      rs_sqlserver_function_class    Class Defaultrs_select                              
rs_select_with_lock            rs_sqlserver_function_class    Class Defaultrs_select_with_lock                     
rs_truncate                  rs_sqlserver_function_class    Class Defaultrs_truncate                              
rs_update                      rs_sqlserver_function_class    Class Defaultrs_update                              
                                                                                                                     
Subscription Name       Replicate DS.DBOwner      Creation Date                                                   
-----------------       --------------------      -------------                                                   
                                                                                                                     
                                                                                                                     
                                                                                                                     
1>rs_helpdbrep                                                                                                      
2>go                                                                                                                  
DB Rep.Def. NamePrimary DS.DBPrimary RS Rep.DDL   Rep.Sys.    Rep.Table   Rep.Func.   Rep.Tran.   Creation Date
--------------------------------------- ----------- ----------- ----------- ----------- ----------- -------------

Eisen 发表于 2012-05-10 10:59

哦。那么看来不是MSA,而是warmstandby,那你先照2BeSybPro老大说的,先到主点库那里用
sp_reptostandby dbname看看显示

devilring 发表于 2012-05-10 11:07

回复19楼,我单位的复制服务器并没有出错,一直正常运行着,数据复制也正常,现在的情况是我们有个应用系统升级了,表结构变化了,还新增加了些表,所以我想把这些表结构变化的表先从原有的数据库复制定义里去掉,然后修改完表结构,并添加好新增表,再把这些表添加到数据库复制定义里;而且不用create replication definition 和create subscription 这种方式,用alter database replication definition这种批量的方式,这是我通过这几天自己看资料找到的最快的办法,而且改动也少,但是我不知道是否可行,而且又不太会用这些命令,也不知道怎么找到原有的数据库复制定义的defname,所以发帖子请教,问问高手们我这种思路对不对,如果对请告诉我命令怎么用,越详细越好,谢谢!
再次注明下:我没有安装介质,没有测试环境,只有一个正常运行的生产环境,而且生产环境的rm图形界面的客户端坏了(Sybase RSMServer_JIFEIRS_RSM)服务启动不了了,所以我无法通过可视化界面来操作,只有使用后台命令

2BeSybPro 发表于 2012-05-10 11:07

你的系统绝对是warmstandby,所有命令和数据应该自动复制。rs_helprepdb是不会有结果的。表不会同步创建是因为数据滞后(latency)。
在Replication server上跑下面的命令。

admin health
go

admin disk_space
go

admin who,sqm
go
admin who,sqt
go

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

1> admin health                                                                                                                  
2> go                                                                                                                           
Mode             QuiesceStatus                                                                                                
---------------- -------- --------                                                                                             
NORMAL         TRUE   HEALTHY                                                                                                
1> admin disk_space                                                                                                               
2> go                                                                                                                           
Partition                  Logical                         Part.Id   Total SegsUsed Segs   State                           
-------------------------- ------------------------------- ----------- ----------- ----------- -------------------------------   
d:\device\SD_JIFEIRS_04    SD_JIFEIRS_04                           104      2000         0 ON-LINE//                        
d:\device\SD_JIFEIRS_02    SD_JIFEIRS_02                           102      2000         0 ON-LINE//                        
d:\device\SD_JIFEIRS_01    SD_JIFEIRS_01                           101      2000         0 ON-LINE//                        
d:\device\SD_JIFEIRS_03    SD_JIFEIRS_03                           103      2000         1 ON-LINE//                        

1> admin who,sqm                                                                                                                  
2> go                                                                                                                              
Spid State                Info                           DuplicatesWrites      Reads       Bytes       B Writes    B Filled   
---- -------------------- -------------------------------------------- ----------- ----------- ----------- ----------- -----------
   10 Awaiting Message   108:1 APCHUANBO3.bohai                  7330   197980799   388566052 -1970069355    14154325    13191558
    9 Awaiting Message   108:0 APCHUANBO3.bohai                     0         0         0         0         0         0
    8 Awaiting Message   101:0 JIFEI_RSSD.JIFEIRS_RSSD            0         0         0         0         0         0

B Reads   B Cache   Save_Int:Seg    First Seg.Block   Last Seg.BlockNext Read   Readers   Truncs      
----------- ----------- --------------- ----------------- --------------- ----------- ----------- -----------
   26707585    11860150 0:782285      782285.21         782285.21       782285.22.0         2         2
          0         0 strict:0      0.1               0.0             0.1.0               1         1
          0         0 0:0             0.1               0.0             0.1.0               1         1

1> admin who,sqt                                                                                                                                                                                             
2> go                                                                                                                                                                                                         
Spid State                Info                           Closed      Read      Open      Trunc       Removed   Full      SQM Blocked First TransParsed      SQM ReaderChange Oqids Detect Orphans
---- -------------------- ------------------------------ ----------- ----------- ----------- ----------- ----------- ----------- ----------- ------------------------ ----------- ------------ --------------
   17 Awaiting Wakeup      108:1DIST APCHUANBO3.bohai             0         0         0         0         0         0         1                        0         0            0            0
   12 Awaiting Message   101 JIFEI_RSSD.JIFEIRS_RSSD            0         0         0         0         0         0         0                        0         0            0            1
   11 Awaiting Message   108 APCHUANBO3.bohai                     0         0         0         0         0         0         0                        0         0            0            1
176 Awaiting Message   110 JIFEI.bohai                        0         0         0         0         0         0         0                        0         1            1            0

2BeSybPro 发表于 2012-05-10 11:18

你的9137错误是因为命令错,用了引号不正确。

create database replication definition ....
with primary at ....
replicate tables in ('userA.t1', 'userA.t2')

It should be:

create database replication definition ....
with primary at ...
replicate tables in (userA.t1, userA.t2)

Warmstandby不要用create database replication definition,for warmstandby replication definition不是必须的(只是为了提高性能)。

devilring 发表于 2012-05-10 11:18

在主数据库执行结果如下:
1> use bohai                                          
2> go                                                
1> sp_reptostandby bohai                              
2> go                                                
The replication status for database 'bohai' is 'NONE'.
(return status = 0)                                 

2BeSybPro 发表于 2012-05-10 11:28

正如我最先估计的一样,你的系统用的是warmstandby和sp_setreptable。你必须用sp_setreptable手工设置表复制。

Eisen 发表于 2012-05-10 11:34

本帖最后由 Eisen 于 2012-05-10 11:36 编辑

2BeSybPro 发表于 2012-05-10 11:28 static/image/common/back.gif
正如我最先估计的一样,你的系统用的是warmstandby和sp_setreptable。你必须用sp_setreptable手工设置表复制 ...

对。不过,估计他在alter table后,之前sp_setreptable的标记都没了,
lz你到bohai那个库上去,挨个对你希望复制的表执行
sp_setreptable tablename检查一下复制标记状态。

另外,还去你主点库bohai上执行
sp_config_rep_agent bohai
看看有否开启"send warm standby xacts"

devilring 发表于 2012-05-10 11:37

回复25楼:
1、高手老大,你说的那个什么用了引号不正确,可是那存储过程也不是我写的啊,是系统里自带的啊。。。。。这是咋回事
2、create database replication definition 命令和 alter database replication definition 命令,我用省略号是因为我不会啊,你就别用省略号了吧,麻烦给我写个例子吧,既然2BeSybPro老大和Eisen老大都认为我说的在原有数据库复制定义的基础上增加和删除需要复制的表这种方式可行,那就请给我个用alter database replication definition 来实现的例子吧,你们千万别省略,我省略是我不懂啊。。。。。。。
3、再就是想个办法让我能确认并找到现有的数据库复制定义的rep_defname,这样我就明了了
以下是我的主服务器、备份服务器,rs服务器的名字:
主:server名apchuanbo3,数据库名:bohai
备:server名jifei,数据库名:bohai
rs:jifeirs,jifei_rssd,jifei_rsm
页: 1 2 [3] 4 5 6 7 8
查看完整版本: sybase replication server问题(急!急!)