问题描述:
Can't open a connection to site 'SYB_BACKUP',see the errorlog file in the ASE directory。现在想备份数据库但是提示这个错误。
参考网络资料大概是由于 ASE 安装/服务初始化程序的 BUG 导致的。在创建服务时,ASE 会创建一个名为类似 XXXX_BS 的备份服务,同时会在 master.sysservers 中插入一条对应记录。以服务名 CUTEBEAR 为例。
比较interfaces 文件和 sysservers 中的记录:
1、interfaces 文件内容:
CUTEBEAR_BS
master tcp ether CUTEBEAR_LINUX 5001
query tcp ether CUTEBEAR_LINUX 5001
2、sysservers 的记录:
(select srvname, srvnetname from sysservers where srvname='SYB_BACKUP')
srvname srvnetname
--------------------------------------------------------------
SYB_BACKUP CUTEBEAR_BS 通常默认的备份服务器就是 SYB_BACKUP 。在 load/dump 时,ASE 通过 sysservers 获取备份服务器对应 interfaces 的信息,然后在 interfaces 文件中搜索该服务的实际位置(IP和端口)。在此例中,ASE 通过 sysservers 得到 interfaces 中的服务名为 CUTEBEAR_BS,然后在interfaces 中获取该服务的物理信息。如果 ASE 无法通过 sysservers 中的 srvnetname 在 interfaces 中获取相关信息,则会报上面的错误。
解决方法:
方法一:修改 interfaces 文件,将服务名改为sysservers.srvnetname 对应的值;
方法二:修改 sysservers 中相应记录的 srvnetname 的值为 interfaces 文件中的服务名。
这里我修改的是sysservers也就是系统表里面的的值:
1、在server config 中:获取本机sybase备份服务器名称:xaobai_BS
2、执行 “ sp_addserver SYB_BACKUP,null,xaobai_BS ”
“go”
执行上面那句话就可以了,利用如下语句可查看修改结果:
1 use master
2 go
3 select * from sysservers
修改完成后重新启动sybase的服务。可以先手动备份试试看,然后再使用备份软件备份即可。