如何在Sybase ASE上定时调度一个存储过程

  • 来源: 赛迪网 作者: 若水   2008-04-22/13:28
  • 问题:怎样才能在Sybase ASE 12.5.3上定时调度一个存储过程?

    解答:

     

    正常情况下,在数据库中定时执行存储过程主要有以下三种方式:

    1、自己编写写一个Java程序,通过JDBC去掉用存储过程;

    2、编写Unix Shell脚本,通过数据库接口调用存储过程,并将这个Shell脚本递交给Crontab调度;

    3、使用数据库自身的定时调度机制,而这个在不同的数据库系统下又有不同的实现方法。

     

    综合比较后,第3种方法是最简便快捷的。例如Oracle数据库中的复制任务,ASIQ数据库中的Event等都可以定时执行某个任务。但在Sybase ASE种则稍微有些复杂,因为ASE数据默认安装的时候是不支持任务的自动调度的,需要额外的步骤安装配置任务调度器(Job Scheduler)。而且,任务的自动调度也是在ASE 12.5.1及以后的版本才支持的。

    ASE Job Scheduler的安装配置方法如下:

    1、安装Job Scheduler

    Job Scheduler的安装主要分以下几步:

    a. 创建数据库设备sybmgmtdev ,该设备至少要60MB大小,通常建议100MB.

    b. 运行installjsdb脚本 ,命令格式:

    isql –Usa –Psa_password –Sservername –i $SYBASE/$SYBASE_ASE/scripts/installjsdb

    c. 在Interface文件中加入JS_AGENT Server的信息

    hyl_jsagent

    master tcp ether server_machine 14231

    query tcp ether server_machine 14231

    d. 在sysservers表中加入Js_Agent ,命令格式:

    sp_addserver SYB_JSAGENT,null,hyl_jsagent

    e. 使Job Scheduler生效,命令格式:

    sp_configure "enable job scheduler",1

    f. 启动Job Scheduler,可以重启ASE服务器,或者用以下命令:

    use sybmgmtdb

    go

    sp_js_wakeup "start_js",1

    go

    在这些步骤完成之后,用Sybase Central登陆ASE后,就可以在图形界面上看到Job Scheduler得功能菜单了。但这个时候还不能定义并执行Job,还需要以下一些配置。

     

    2、配置任务调度用户

    a.增加任务调度用户的login

    sp_addlogin job_operator ,'123456', sybmgmtdb

    go

     

    b.增加任务调度用户

    sp_adduser job_operator

    go

     

    c.给用户赋予任务调度的角色

    sp_role 'grant',js_admin_role,job_operator

    go

    sp_role 'grant',js_user_role,job_operator

    go

    sp_modifylogin job_operator,'add default role',js_user_role

    go

    sp_modifylogin job_operator,'add default role',js_admin_role

    go

    问题:怎样才能在Sybase ASE 12.5.3上定时调度一个存储过程?

    解答:

     

    正常情况下,在数据库中定时执行存储过程主要有以下三种方式:

    1、自己编写写一个Java程序,通过JDBC去掉用存储过程;

    2、编写Unix Shell脚本,通过数据库接口调用存储过程,并将这个Shell脚本递交给Crontab调度;

    3、使用数据库自身的定时调度机制,而这个在不同的数据库系统下又有不同的实现方法。

     

    综合比较后,第3种方法是最简便快捷的。例如Oracle数据库中的复制任务,ASIQ数据库中的Event等都可以定时执行某个任务。但在Sybase ASE种则稍微有些复杂,因为ASE数据默认安装的时候是不支持任务的自动调度的,需要额外的步骤安装配置任务调度器(Job Scheduler)。而且,任务的自动调度也是在ASE 12.5.1及以后的版本才支持的。

    ASE Job Scheduler的安装配置方法如下:

    1、安装Job Scheduler

    Job Scheduler的安装主要分以下几步:

    a. 创建数据库设备sybmgmtdev ,该设备至少要60MB大小,通常建议100MB.

    b. 运行installjsdb脚本 ,命令格式:

    isql –Usa –Psa_password –Sservername –i $SYBASE/$SYBASE_ASE/scripts/installjsdb

    c. 在Interface文件中加入JS_AGENT Server的信息 #p#分页标题#e#

    hyl_jsagent

    master tcp ether server_machine 14231

    query tcp ether server_machine 14231

    d. 在sysservers表中加入Js_Agent ,命令格式:

    sp_addserver SYB_JSAGENT,null,hyl_jsagent

    e. 使Job Scheduler生效,命令格式:

    sp_configure "enable job scheduler",1

    f. 启动Job Scheduler,可以重启ASE服务器,或者用以下命令:

    use sybmgmtdb

    go

    sp_js_wakeup "start_js",1

    go

    在这些步骤完成之后,用Sybase Central登陆ASE后,就可以在图形界面上看到Job Scheduler得功能菜单了。但这个时候还不能定义并执行Job,还需要以下一些配置。

     

    2、配置任务调度用户

    a.增加任务调度用户的login

    sp_addlogin job_operator ,'123456', sybmgmtdb

    go

     

    b.增加任务调度用户

    sp_adduser job_operator

    go

     

    c.给用户赋予任务调度的角色

    sp_role 'grant',js_admin_role,job_operator

    go

    sp_role 'grant',js_user_role,job_operator

    go

    sp_modifylogin job_operator,'add default role',js_user_role

    go

    sp_modifylogin job_operator,'add default role',js_admin_role

    go


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多