1.7 KiB
1.7 KiB
oracle 数据库 job 操作
停止job force => TRUE
不检查任务是否正在运行强制停止
BEGIN
DBMS_SCHEDULER.STOP_JOB(job_name => 'TEST_JOB', force => TRUE);
END;
删除job force => TRUE
不检查任务是否正在运行强制删除
BEGIN
DBMS_SCHEDULER.DROP_JOB(job_name => 'TEST_JOB');
END;
创建job
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'MC_CH_ISSUE_INFO_CLEAN_NEW',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN MC_CH_ISSUE_INFO_CLEAN_EVD; END;',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=DAILY; BYHOUR=8; BYMINUTE=25;',
enabled => TRUE
);
END;
停止执行计划
BEGIN
DBMS_SCHEDULER.DISABLE('MC_CH_ISSUE_INFO_CLEAN');
END;
运行一个计划
BEGIN
DBMS_SCHEDULER.RUN_JOB('test_job');
END;
关闭sesseion
SELECT
s.sid,
s.serial#,
s.username,
s.osuser,
s.machine,
s.program,
s.sql_id,
l.type,
l.lmode,
l.request
FROM
v$session s
JOIN v$lock l ON s.sid = l.sid
WHERE
l.id1 = (SELECT object_id FROM dba_objects WHERE object_name = 'MKT_TEST')
AND l.type = 'TM'; -- TM 锁表示表锁
SELECT
s.sid,
s.serial#,
s.username,
s.osuser,
s.machine,
s.program,
s.sql_id,
q.sql_text
FROM
v$session s
JOIN v$sql q ON s.sql_id = q.sql_id
WHERE
s.sid =250 -- 替换为实际的 SID
AND s.serial# = 53879; -- 替换为实际的 SERIAL#
--关闭
ALTER SYSTEM KILL SESSION '250,53879';
--强制关闭
ALTER SYSTEM DISCONNECT SESSION '250,53879' IMMEDIATE;
数据库重启
sqlplus / as sysdba SQL> shutdown immediate; SQL> startup;