首页 > 代码库 > sybase代理表 跨服务器数据同步
sybase代理表 跨服务器数据同步
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
sybase代理表 跨服务器数据同步