sybase ASE 代理表  跨服务器数据同步 


    之前双做了sybase服务器数据同步,使用的代理表。近期更换server1,一开始安装sybase时本地服务器名不同,server1的数据直接dump,完成后可以读取数据,但在执行代理表数据插入本地表中时报错。查询后

select @@servername

本地名为db3

查询原本地服务器名为charge

删除原名

sp_dropserver db3


设置新名,即原server1名

sp_addserver charge,local


重启sybase 生效。


再次执行 存储过程,数据同步以及插入成功。


另:本人有sybase版本,12.5.2。 另有12.5.3中文版补丁升级包,网上查询数日无果,恢复硬盘数据得到。使用ok。有需要的联系我:chenzy501@163.com


详细建立代理表同步步骤如下(借鉴部分):


1、确认系统 Component Integration Services (CIS) 是否配置正确。


   a 开启CIS组件

 

    use master 

    sp_configure "enable cis", 1 

    如果设置了此选项,需要重新启动server,才能生效。ASE-12后此功能组件默认开启。


    b 配置RPC


     在ASE-15中,此设置默认是0,需要开启


   sp_configure "cis rpc handling", 1 

 


    c 设置CIS的允许最大连接数


       在ASE-15中,此设置默认是0,最好调到20以上。


   sp_configure "max cis remote connections", 20 

   d 设置CIS的允许最大连接数

2、在双方服务器interfaces中添加对方服务器信息

    vi /syb64bit/ASE-15/中的interfaces文件

    添加本地服务器名称

    使用isql连接进入服务器Server1,Server2

    1>select @@servername

    2>go

    

    确定服务器本地名称已经生效

    如果返回NULL,

    

    1>sp_addserver Server_name,local

    2>go

    Server_name应该跟interfaces中所用服务器名称一致


    删除已存在服务器本地名

   sp_dropserver Server_name


    重新启动服务器,让本地名称生效, 确认 CIS 集成服务已经启动。

3、添加远程服务器信息及登录信息

 a 添加远程服务器信息

在Server1上执行如下命令:

isql -Usa -P -SServer1

exec sp_addserver Server2, ASEnterprise, Server2 


b. 添加远程登录信息

isql -Usa -P -SServer1

exec sp_addremotelogin Server2, sa, sa 

exec sp_remoteoption Server2, sa, sa, trusted, true 

go

或者

isql -Usa -P -SServer1

exec  sp_addexternlogin Server2, sa, sa , xxxxxx  (xxxxxx为远程服务器Server2上sa的口令)  (可以不是sa,该用户要具有登录权限)

 

4、建代理表

    在Server2数据库pubs2建立表t_testproxy

    create table t_testproxy (id int,name char(10))

    在Server1数据库test中添加代理表信息

     use test

     go

     create proxy_table t_testproxy at "Server2.pubs2.dbo.t_testproxy"


     代理表名与原表名可以不同

 

5、 脚本

 

  a  成功脚本

    sp_addserver SHZ_TULIP01_SRV,ASEnterprise,SHZ_TULIP01_SRV 

 

    sp_addexternlogin SHZ_TULIP01_SRV,tulip,tulip,password

 

    create proxy_table tulip.USR00NOC at "SHZ_TULIP01_SRV.tulipdb.tulip.USR00NOC"

 

    grant select on tulip.USR00NOC to tulip

   b  失败时的删除脚本

   sp_dropserver SHZ_TULIP01_SRV

 

   sp_dropexternlogin SHZ_TULIP01_SRV,tulip

   

   drop table tulip.USR00NOC