Oracle调度程序

Oracle调度程序

调度程序体系结构:

使用dbms_scheduler包来管理调度程序

dba_scheduler_jobs查询所有调度程序作业

cjq0后台进程调度作业执行

job_queue_processes限制调度作业的最大数,设置为0将不会运行调度程序

需要角色SCHEDULER_ADMIN     

调度程序可以是存储过程,也可以是shell脚本和操作系统命令

dbms_scheduler.create_job创建作业

dbms_scheduler.create_program创建程序 

dbms_scheduler.create_schedule创建时间表

dbms_scheduler.create_job_class创建作业类

dbms_scheduler.create_window创建窗口

创建一个作业:

create table times(time1 date);

alter session set nls_date_format=’yyyy-mm-dd hh24:mi:ss’;

begin

dbms_scheduler.create_job(

job_name=>’savedate’,

job_type=>’plsql_block’,

job_action=>’insert into times values(sysdate);’,

start_date=>sysdate,

repeat_interval=>’freq=minutely;interval=1′,

enabled=>true,

auto_drop=>false);

 end;

 /

exec dbms_scheduler.disable(‘savedate’);

exec dbms_scheduler.drop_job(‘savedate’);

create table test(cnt number);

create or replace procedure mypro as

begin

insert into test values(1);

commit;

end mypro;

/

begin

dbms_scheduler.create_job(

job_name=>’insertnum’,

job_type=>’stored_procedure’,

job_action=>’mypro’,

start_date=>sysdate,

repeat_interval=>’freq=minutely;interval=1′,

enabled=>true,

auto_drop=>false);

 end;

 /

全球化功能设置

五个全球化功能设置级别(从低到高)

数据库,实例,客户端环境,会话,语句

数据字典:select * from nls_database_parameters where parameter=’NLS_CHARACTERSET’;

相关参数:show parameter nls

修改显示语言

设置操作系统环境变量

echo $NLS_LANG

export NLS_LANG=”SIMPLIFIED CHINESE_CHINA.ZHS16GBK”    –AL32UTF8

alter session set nls_date_format=’YYYY-MON-DD’;

alter session set nls_date_language=’SIMPLIFIED CHINESE’;

如果要修改字符集,在修改之前使用csscan扫描数据,获取可能存在问题的报告

以sysdba运行csminst.sql

cd $ORACLE_HOME/rdbms/admin

@csminst.sql

csscan system/oracle full=y tochar=zhs16gbk

如果要修改字符集,目标数据库字符集必须是原数据库的超集

修改字符集需要将数据库启动到mount模式

shutdown immediate;

startup mount;

ALTER SYSTEM ENABLE RESTRICTED SESSION; 

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 

ALTER SYSTEM SET AQ_TM_PROCESSES=0; 

alter database open;

ALTER DATABASE CHARACTER SET  INTERNAL_USE  al32utf8;

shutdown immediate;

!注意将参数修改回去

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=1000;

ALTER SYSTEM SET AQ_TM_PROCESSES=10;

chenj

发表评论