«

»

Sybase的XP Server

sybase xp_cmdshell aix 某金融业务系统结构非常简单,前端界面组报文通过Tuxedo分发至后端Sybase数据库,调用存储过程处理交易。简单的代价是就是后台数据库无法主动发起任何到第三方的通讯连接或交易。一个可行的方法是使用Sybase的XP Server服务,这样就可使用xm_cmdshell函数来调用系统命令,但要如何配置呢?AIX 5.3下默认安装时,Sybase的bin目录下有XPServer程序,但这只是一个管理工具。网上极少XP Server的配置资料,试了一下,发现还是比较简单的。

得到本数据库的服务名称。

在系统的sysservers表中,将注册此server信息,但此时还无法使用。

修改系统参数:

将xp_cmdshell context由1置为0,允许xp_cmdshell调用。

XP Server不需手工启动,第一次调用xp_cmdshell时将启动xp server服务。

若系统变量的start mail session置位时,xp server在data server启动时将一并启动。

在系统的interfaces或sql.ini(win平台下),添加相应server的注册信息。

端口自设。

此时,在isql或sqladvantg中调用exec sybsystemprocs..xp_cmdshell “ls” 即可正常返回。

以上在Aix 5.3下测试成功。

后发现有次调用命令时失败:

然而xp_cmdshell context值正常,查看服务状态均正常,sybsystemprocs中的扩展存储过程xmd_cmdshell也增加了相应用户的执行权限。

后重启数据库服务,发现起不来,报无法读取servername.cfg文件错误,查看该 文件,发现其为root /system权限用户。修改为sybase:sybase后,数据库启动,xp_cmdshell也正常。

看来可能跟servername.cfg文件属性有关系,难道sp_configure中的变量都在servername.cfg中定义?

1 星2 星3 星4 星5 星 (尚无评分)
Loading...Loading...

相关文章

AIX上为Sybase创建数据库设备 AIX上的存储管理有卷组的概念。若干pv(物理卷)可组成一个vg(卷组),在vg内可创建lv(逻辑卷),在改变lv属...
Sybase SQL中where子句与group by连用时的困惑 在SQL中,对于select语句里的where子句和group by子句的连用,一般原则应该是先执行where条件过滤,再用...
Java调用Sybase存储过程 Sybase数据库有官方的jConnect驱动,也有开源驱动jTDS。jConnect常用的有4.5/5.5/6/7等版本,比如网上常...
Sybase中判断一个串是否为纯数字 在为数据库开发存储过程时,经常需要判断一个字符串是不是纯数字,这样才能安全的进行数据类型转换。但...
Sybase12.5在winxp下的安装,配置及更改字符集 数据库产品在金融行业一般都有较长的生命期。因为以安全稳定为第一要求的金融行业不可能频繁的更换数据...
Sybase事务中的锁 事务和锁无疑是数据库中比较复杂的部份,做个简单的测试看看默认状态下Sybase的事务语句的锁效果。 一个...
Sybase指定字段别名的三种格式 sql语句中对数据库中的表和字段均可指定别名,适当的使用字段别名,可以使sql语句更简明易读,比如为计...
Sybase中清除数据库日志的命令dump tran 在Sybase中,dump database是备份数据库的命令,相应的dump transcation命令通常用于备份日志,但更常用...

发表评论

电子邮件地址不会被公开。