转载

使用ECS中的crontab配合RDS for PPAS实现数据库任务管理

由于在RDS for PPAS中使用DBMS_JOB及DBMS_SCHEDULER配置比较复杂,因此在进行Oracle迁移时如果没有大量使用以上两个功能,我们可能通过ECS进行crontab配置实现数据库中的任务管理。

实验环境

操作系统:阿里云ECS,AliLinux 6.x数据库:阿里云RDS,AliCloudDB RDS for PPAS 9.3

准备工作

在执行脚本时,为避免脚本中要求输入数据库所有者密码,先在root用户的家目录配置一个.pgpass文件,以实现本地无密码登陆

# touch .pgpass # vim .pgpass ~/.pgpass: <RDS中的内网DNS地址>:<RDS端口>:<数据库名>:<用户名>:<登陆密码> 

需要注意该文件的权限:

# chmod 0600 ~/.pgpass 

一个数据库操作脚本rds4ppas_job_demo.sh

/opt/myppas_job/rds4ppas_job_demo.sh的内容:

psql -h <RDS中的内网DNS地址> -p <RDS端口> -U <用户名> <数据库名> -c " select.... update... delete... DECLARE     ... BEGIN     ...     DBMS_OUTPUT.PUT_LINE(...); END; " 

赋予执行权限

# chmod 0700 /opt/myppas_job/rds4ppas_job_demo.sh 

进行crontab配置

# crontab -e 

编辑crontab中的内容

0 * * * *    /opt/myppas_job/rds4ppas_job_demo.sh 

以下为crontab对任务定期执行的时间控制说明:

-- 5个控制位代表:分 时 日 月 周 -- 每五分钟执行  */5 * * * * 每小时执行     0 * * * * 每天执行        0 0 * * * 每周执行       0 0 * * 0 每月执行        0 0 1 * * 每年执行       0 0 1 1 * 

声明:云栖社区站内文章,未经作者本人允许或特别声明,严禁转载,但欢迎分享。

原文  http://yq.aliyun.com/articles/6351
正文到此结束
Loading...