我的standby是logical 的,用于报表查询.AP人员要求和主库相差不能超过5分钟.我之前是利用windows的排定工作,每5分钟执行一次alter system switch logfile;但最近不知为何,它不执行了.懒得再修复,在oracle里建了一个job来实现.
方式如下:
CREATE OR REPLACE PROCEDURE SYS.DBMS_Alter_LOG is
BEGIN
execute immediate 'alter system switch logfile';
END DBMS_Alter_LOG;
/
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => 'SYS.DBMS_ALTER_LOG;'
,next_date => to_date('14-04-2009 15:26:10','dd/mm/yyyy hh24:mi:ss')
,interval => 'SYSDATE+5/1440 '
,no_parse => TRUE
);
SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
END;
/