博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

Unix爱好者家园

卓越源代码  
   sdccf.cublog.cn
关于作者  
姓名:sdccf
职业:chinapost
年龄:36
位置:sd
个性介绍:

我的分类  




Informix IDS 11系统管理(918考试)认证指南,第8部分:面向管理员的SQL特性(3)

SQL 管理 API 函数

SQL 管理 API 是内置的 SQL 管理 API 函数,可通过 SQL 的 EXECUTE Ffunction 语句完成管理性任务,该语句可以模仿 Dynamic Server 的各种管理命令行实用工具。

ADMINTASK 内置函数只在每个 Dynamic Server 实例的 sysadmin 数据库中做了定义。这些函数只能由用户 Informix 调用。

使用相同参数列表调用 admin( )task( ) 函数的结果是相同的;只是返回的值不同:

  • task() UDR 返回描述返回状态的字符串
  • admin() UDR 返回一个整数返回状态,表示到 command_history 表的链接
    • 如果该值大于 0,则命令成功执行,并将一个新行插入到 command_history 表
    • 如果该值为 0,表示命令成功,但是 Dynamic Server 不会把新行插入到 command_history 表
    • 如果该值小于 0,表示命令失败,但是仍然将新行插入到 command_history 表中

表 1. sysadmin 数据库中的 command_history 表
数据类型 说明
cmd_number serial 每行的惟一 ID
cmd_exec_time datetime year-to-second 发出命令的时间
cmd_user varchar 执行命令的用户
cmd_hostname varchar 执行命令的主机的名称
cmd_executed varchar 执行的命令
cmd_ret_status integer 返回代码
cmd_ret_msg lvarchar 返回消息

当向 ADMINTASK 函数指定 size 参数时,可以使用下面的单位说明:


表 2. ADMIN 或 TASK 函数 size 参数的单位说明
符号 对应的单位
B Bytes(= 2 的 0 次方)
KB Kilobytes(= 2 的 10 次方)
MB Megabytes(= 2 的 20 次方)
GB Gigabytes(= 2 的 30 次方)
TB Terabytes(= 2 的 40 次方)
PB Petabytes(= 2 的 50 次方)

使用 ADMIN 或 TASK 函数的示例

命令 oncheck -ce 等效于以下 SQL 语句:

EXECUTE FUNCTION task('check extents');

函数 admin() 也可以实现相同的结果:

EXECUTE FUNCTION admin('check extents');

命令 onspaces -c -d dbspace2 -p /informix/chunks/dbs2.00 -o 0 -s 20000 等价于以下 SQL 语句:

EXECUTE FUNCTION task('create dbspace','dbspace2','/informix/chunks/dbs2.00','20MB');
    
    (expression)  Space 'dbspace2' added.

注:当使用函数 task() 时,返回值为描述状态的字符串)。

也可以使用函数 admin() 实现相同结果:

EXECUTE FUNCTION admin('create dbspace','dbspace2','/informix/chunks/dbs2.00','20MB');
    
    (expression)  114

注:返回值为 114,可在 command_history 表中找到)。


清单 10. 在 command_history 表中查找返回值
                    
    SELECT  * FROM command_history WHERE cmd_number = 114
    
    cmd_number      114
    cmd_exec_time   2007-05-10 20:13:22
    cmd_user        informix
    cmd_hostname    gavea.usfl.ibm.com
    cmd_executed    create dbspace
    cmd_ret_status  0
    cmd_ret_msg     Space 'dbspace2' added.
    
    1 row(s) retrieved.

 发表于: 2008-05-31,修改于: 2008-05-31 18:25 已浏览175次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:3.16703

京ICP证041476号