免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4142 | 回复: 5
打印 上一主题 下一主题

怎样得到服务器端建立的真实服务名称??各位大侠? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-10 10:32 |只看该作者 |倒序浏览
只从sybase ASE 的dsedit建立的连接服务名(或者在与之对应的ini文件内)如何获知服务器端建立的服务名称?
12.5以及以下的版本好像连select @@servername都不能返回正确结果,我只在12.52上测试可以正确返回.
而从sysservers系统表查询的服务名称,在12.5及以下的版本也是独独缺少主服务名称,这是怎么回事呢?
各位高手谁清除,请给详细讲讲?

论坛徽章:
0
2 [报告]
发表于 2007-07-10 11:01 |只看该作者
servername 分为逻辑 servername 和物理 servername
1.RUN_server 文件中的"-sservername" 提供了操作系统下发 showserver 命令显示的servername.
2.当我们发命令 sp_addserver Logical_servername,null 或 local,Physical_servername
   其中:null指远程, local指本地即自己, Physical_servername应是dsedit所编辑的interface中的名字,注意大小写敏感
3.select @@servername 显示的是自己的 Logical_servername

那么为什么这样做?就像生活中有个人叫"牛得水",可能有人叫他"牛局",也有人叫他"小牛",还有人叫他"得水"

论坛徽章:
0
3 [报告]
发表于 2007-07-10 13:22 |只看该作者
感谢楼上,本来打算从本地建立的连接服务名已经服务连接的ip或者机器名以及端口,想办法得到服务器的本地服务名,用来远程启动或者关闭服务器的服务.看来由本地dsedit自定义连接服务得到服务器本地服务名比较困难啊.

论坛徽章:
0
4 [报告]
发表于 2007-07-10 13:26 |只看该作者
小弟是在做个数据库工具,第一步是获取本地dsedit的服务列表,然后根据服务列表来发送sc指令使服务启动或者停止.现在就是需要把服务列表中的非本机服务名转换为该服务的服务器的真正服务名.有没有办法?假如在服务器上的该服务没有启动的时候,是不能用sybase的命令才查到的.假使用sybase命令能查到的话.有没有除了sybase命令之外的其他办法来得到真正的服务名呢?

论坛徽章:
0
5 [报告]
发表于 2007-07-18 15:41 |只看该作者

回复 #1 9544516 的帖子

ASE 12.5版本以后会在数据库服务创建时自动的使用 sp_addserver ServerName,local 命令为服务增加名称,所以你可以使用select @@servername查到,一般来说与物理名称一致。而12.5版本以前没有这个特性需要手工执行sp_addserver命令才行。

对你的建议是 为每个ASE服务增加正确的servername信息,然后就可以通过select @@servername 来确认了

论坛徽章:
6
水瓶座
日期:2014-06-04 03:34:37水瓶座
日期:2014-06-17 13:20:31数据库技术版块每日发帖之星
日期:2016-07-09 06:20:00数据库技术版块每日发帖之星
日期:2016-07-17 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
6 [报告]
发表于 2009-12-09 22:12 |只看该作者
sc start/stop sybsql_servername
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP