您的位置:首页 > 运维架构

SYBASE备份报错:Can't open a connection to site 'SYB_BACKUP',see the error log file in the ASE directory

2015-06-25 15:12 716 查看

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的服务,再次备份即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: