SYBASE备份报错:Can't open a connection to site 'SYB_BACKUP',see the error log file in the ASE directory
问题原因:
该问题是由于SYBASE的ASE 安装/服务初始化程序的 BUG 导致的。在创建服务时,ASE 会创建一个名为类似 XXXX_BS 的备份服务,同时会在 master.sysservers 中插入一条对应记录。以服务名 XXXX 为例。 下面是 interfaces 文件和 sysservers 中的记录:
sql.ini/interfaces(WINDOWS平台为sql.ini文件,Linux平台为interfaces文件) 文件内容:
[XXXX_BS]
master=NLWNSCK, 192.168.1.100,5001
query=NLWNSCK, 192.168.1.100,5001
sysservers 的记录:
(select srvname, srvnetname from sysservers where srvname='SYB_BACKUP')
srvname srvnetname
------------------------------ --------------------------------
SYB_BACKUP XXXX_BS
通常默认的备份服务器就是 SYB_BACKUP 。在 load/dump 时,ASE 通过 sysservers 获取备份服务器对应 sql.ini/interfaces 的信息,然后在 sql.ini/interfaces 文件中搜索该服务的实际位置(IP和端口)。在此例中,ASE 通过 sysservers 得到 sql.ini/interfaces 中的服务名为 XXXX_BS,然后在sql.ini/interfaces 中获取该服务的物理信息。如果 ASE 无法通过 sysservers 中的 srvnetname 在 sql.ini/interfaces 中获取相关信息,则会报上面的错误。
解决办法:
方法二:修改 sql.ini/interfaces 文件,将服务名改为 sysservers.srvnetname 对应的值;
方法二:修改 sysservers 中相应记录的 srvnetname 的值为 sql.ini/interfaces 文件中的服务名。 这里我修改的是sysservers也就是系统表里面的的值:
1、在server config 中:获取本机sybase备份服务器名称:XXXX_BS
2、 参照以下执行(windows)
>C:\sybase\EJB-12_5\bin>isql.exe –Usa –P
>sp_dropserver SYB_BACKUP
>go
>sp_addserver SYB_BACKUP,null,xxxx_BS
>go
执行上面那句话就可以了,利用如下语句可查看修改结果:
1 use master
2 go
3 select srvname,srvnetname from sysservers where srvname='SYB_BACKUP'
修改完成后重新启动sybase的服务,再次备份即可。