0] Schedule a single SQL DML
Under SYSTEM
user.
Management
Run a DBMS_SCHEDULER
job
EXEC
dbms_scheduler.run_job('TRUNC_AUDIT_TRAIL');
0.1 every
Week/Month
-
Week : WED 11:30
-- execute a single
Delete every week
BEGIN
DBMS_SCHEDULER.CREATE_JOB
(
job_name => 'DEL_DDL_LOG_31',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN delete
ADB.ddl_log where ddl_date < sysdate-31 ; END;',
start_date => to_timestamp('29/05/2013
11:00:00', 'dd/mm/yyyy
hh24:mi:ss'),
repeat_interval => 'FREQ=DAILY;BYDAY=WED;BYHOUR=11;BYMINUTE=30;',
enabled => TRUE,
comments => 'AUC 290513:
Delete ADB.ddl_log to keep 31 days');
END;
/
-
or MONTH : WED 10:00
-- execute a single
Delete every Month
BEGIN
DBMS_SCHEDULER.CREATE_JOB
(
job_name => 'DEL_DDL_LOG_60',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN delete
ADB.ddl_log where ddl_date < sysdate-60 ; END;',
start_date => to_timestamp('12/02/2014
10:00:00', 'dd/mm/yyyy
hh24:mi:ss'),
repeat_interval => 'FREQ=MONTHLY;BYDAY=WED;BYHOUR=10;BYMINUTE=00;',
enabled => TRUE,
comments => 'AUC 120214:
Delete ADB.ddl_log to keep 60 days');
END;
/
0.2 every
30 minutes at Working hours
Prepare
target table then create job :
create table ADB.CPT_SESS_APP
( APPL varchar2(32) , SESS number , DAT date ) tablespace ADB_DAT
-- truncate table
ADB.CPT_SESS_APP ;
-- insert into
ADB.CPT_SESS_APP select schemaname , count(1) , sysdate from v$session group by
schemaname order by 2
-- execute a single
Insert every 30 minutes at Working hours
BEGIN
DBMS_SCHEDULER.CREATE_JOB
(
job_name => 'CPT_SESS_APP',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN insert into
ADB.CPT_SESS_APP select schemaname , count(1) , sysdate from v$session group by
schemaname order by 2; END;',
start_date => to_timestamp('22/05/2013
16:30:00', 'dd/mm/yyyy
hh24:mi:ss'),
repeat_interval => 'FREQ=DAILY;
BYDAY=MON,TUE,WED,THU,FRI;BYHOUR=7,8,9,10,11,12,13,14,15,16,17,18,19,20;
BYMINUTE=0,30;',
enabled => TRUE,
comments => 'AUC 220513:
Compte Sessions par Applications');
END;
/
A more SQL
complex one :
drop table ADB.CPT_SESS_APP
;
create table ADB.CPT_SESS_APP
( APP varchar2(32) , TOT_SESS number , SCHEMA_NAME varchar2(32) , SESSIONS number , MODULE varchar2(64) , DAT date ) tablespace ADB_DAT ;
BEGIN
DBMS_SCHEDULER.DROP_JOB (job_name=> 'CPT_SESS_APP');
END;
/
-- execute a single Insert every 30 minutes at Working
hours
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'CPT_SESS_APP',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN insert into ADB.CPT_SESS_APP select
substr(decode(schemaname,''INSER'',''HFB'',''NUC'',''SPE5'',''CNX'',''SPE5'',''VTFSTN'',''HMP'',schemaname),1,3)
APP,
sum(cnt) over (partition by substr(schemaname,1,3) order by null ) total_app , schemaname , cnt , module , sysdate from (
select decode(upper(module),''ABYFONCI.EXE'',''MPL'',''ABYLA.EXE'',''MPL'',''MENUPAR.EXE'',''TTS3'',''MENUELEV.EXE'',''TTS3'',''MAPINFOW.EXE'',''TTS3'',''THE MUSEUM SYSTEM'',''UMS'',schemaname) SCHEMANAME,
count(1) cnt , MODULE , sysdate from v$session
where module not in (''SQL Developer'') and module not like ''TOAD%''
and username not in (''DBSNMP'',''SYS'',''SYSMAN'',''SYSTEM'')
group by schemaname , module order by 1
)
order by 1; END;',
start_date => to_timestamp('22/05/2013 16:30:00', 'dd/mm/yyyy hh24:mi:ss'),
repeat_interval => 'FREQ=DAILY; BYDAY=MON,TUE,WED,THU,FRI;BYHOUR=7,8,9,10,11,12,13,14,15,16,17,18,19,20;
BYMINUTE=0,30;',
enabled => TRUE,
comments => 'AUC 240513: Compte Sessions par
Applications');
END;
/
0.3 every
2 Hours
Prepare
target table then create job :
create table APP.CPT_T_TEMP
( DAT date , TOTAL integer , ERREUR integer , OK integer ) tablespace APP_DAT
-- execute a single Insert every 2 Hours
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'CPT_T_TEMP',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN
insert into APP.CPT_T_TEMP select sysdate,TOT.T,ERR.E,OK.O from ( select
count(1) T from T_TEMP )TOT,( select count(1) E from T_TEMP where CODE_ERREUR =
-1 )ERR,( select count(1) O from T_TEMP where CODE_ERREUR = 0 )OK ; END;',
start_date =>
to_timestamp('01/06/2015
12:00:00', 'dd/mm/yyyy
hh24:mi:ss'),
repeat_interval => 'FREQ=DAILY;BYHOUR=00,02,04,06,08,10,12,14,16,18,20,22;BYMINUTE=0;',
enabled => TRUE,
comments => '010615:
Compte T_TEMP');
END;
/
0.4
daily Refresh of MV & copy to a table
BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB
(
job_name => 'SAT_VM_REFRESH_02'
,start_date =>
TO_TIMESTAMP_TZ('2014/11/13
02:00:00.000000 +01:00','yyyy/mm/dd
hh24:mi:ss.ff tzh:tzm')
,repeat_interval
=> 'FREQ=DAILY'
,end_date => NULL
,job_class => 'DEFAULT_JOB_CLASS'
,job_type => 'PLSQL_BLOCK'
, job_action => 'BEGIN dbms_mview.refresh(''APP.MV_BUSINESS01'',''C'',atomic_refresh=>FALSE)
; EXECUTE IMMEDIATE ''TRUNCATE TABLE APP.T_BUSINESS01'' ; insert into APP.T_BUSINESS01
select * from APP.MV_BUSINESS01 ; END;'
,comments => 'AUC 210715: Refresh VM'
);
END ;
/
1] Schedule a PL/SQL
1.1 Daily
- Recreate Text Indexes
Under the
applicative user, create a procedure to recreate Text Indexes
CREATE OR REPLACE Procedure appli.tms_sp_resync_text_indexes authid current_user as
Begin
For curs in (Select idx_name From
ctx_user_indexes Order By idx_name)
Loop
dbms_output.put_line('sync index:'||curs.idx_name);
execute immediate 'begin
ctx_ddl.sync_index('''||curs.idx_name||''');end;';
End Loop;
End;
/
Test this
Enter
user-name: appli
SQL>
set serveroutput on ;
BEGIN APPLI.tms_sp_resync_text_indexes; END;
sync
index:ACQJUSTIFICATION_29
sync
index:ACQJUSTIFICATION_89
…
sync
index:VALUATIONNOTES_89
sync
index:VALUE_8
PL/SQL
procedure successfully completed.
SQL>
exit
Under
SYSTEM, grant right to user
grant create job to appli;
Under the
applicative user, create a dbms_scheduler Job to daily call the Procedure
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'APPLI_RESYNC_TEXT_IDX',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN tms_sp_resync_text_indexes; END;',
start_date => trunc(sysdate)+14/24, /* 16:00
*/
repeat_interval => 'FREQ=DAILY',
enabled => TRUE,
comments => 'AUC 200412: Resync des Index Intermedia');
END;
/
PL/SQL
procedure successfully completed.
1.2 Daily
- Refresh MVs
-- under SYSTEM
BEGIN
DBMS_SCHEDULER.DROP_JOB ('APP_REFRESH_VM') ;
END;
/
BEGIN
DBMS_SCHEDULER.CREATE_JOB
(
job_name => 'APP_REFRESH_VM',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN
dbms_mview.refresh(''APP.VM_DEM_ABS'',''C'',atomic_refresh=>FALSE) ;
dbms_mview.refresh(''APP.VM_JOUR'',''C'',atomic_refresh=>FALSE,PARALLELISM=>4)
; END;',
start_date => trunc(sysdate)+2/24, /* 04:00 */
repeat_interval => 'FREQ=DAILY',
enabled => TRUE,
comments => 'AUC 090414:
Refresh des 2 VMs APP');
END;
/
1.3
Execute a PL once using the Oracle Scheduler
SQL> grant scheduler_admin to APP_USER ;
SQL> conn APP_USER
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'DWH_VALID_DATA_CHECK',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN PKG_DWHTOOL.DWH_VALID_DATA_CHECK ;
END;',
repeat_interval => NULL,
enabled => FALSE,
comments => 'AUC 271114: Check Talend');
END;
/
PL/SQL procedure successfully completed.
SQL> exec
dbms_scheduler.enable('DWH_VALID_DATA_CHECK') ;
PL/SQL procedure successfully completed.
1.4
Gather statistics once a day using a Stored Procedure
-
Write the Procedure : using a
technical owner [ADB], with invoker’s right :
We’re
gathering statistics on Partition with the procedure given name.
Begin and
End of the Proc execution will be logged in a table, and return code.
CREATE OR REPLACE procedure ADB.PR_CD13_HR_PART_GATHER_STATS ( MON IN VARCHAR2 , RETOUR OUT NUMBER )
authid current_user
----------------------------------------------------------------------
-- type : Procedure
-- invoker's right ( HR )
--
-- Output :
-- * 0 OK
-- * 1 NO DATA FOUND
-- * 2 Technical
error ORA-
-- create table ADB.CD13_HR_PART_GATHER_STATS_ERR (DTE
DATE,RET NUMBER,MSG VARCHAR2(64)) ;
-- grant all ON ADB.CD13_HR_PART_GATHER_STATS_ERR TO HR ;
-- grant execute ON ADB.PR_CD13_HR_PART_GATHER_STATS TO HR ;
-- grant select on ADB.CD13_HR_PART_GATHER_STATS_ERR TO HR ;
--
-- test
--declare
--num number ;
--begin
--ADB.PR_CD13_HR_PART_GATHER_STATS(num) ;
--dbms_output.put_line('RET_COD = '||num) ;
--end;
--/
--
--exec DBMS_STATS.GATHER_TABLE_STATS ( 'HR','TABLE1','MT201809',DBMS_STATS.AUTO_SAMPLE_SIZE,null,'FOR
ALL INDEXED COLUMNS SIZE AUTO',2,'ALL',TRUE);
--exec DBMS_STATS.GATHER_TABLE_STATS ( 'HR','TABLE2','MT201809',DBMS_STATS.AUTO_SAMPLE_SIZE,null,'FOR
ALL INDEXED COLUMNS SIZE AUTO',2,'ALL',TRUE);
---------------------------------------------------------------------
-- 15/10/2018 Creation
----------------------------------------------------------------------
AS
my_sqlerrm VARCHAR2(2000);
l_err_code NUMBER;
ct integer;
ig number;
chaine varchar2(1024);
BEGIN
retour := 0;
my_sqlerrm := NULL;
-- ig :=11;
insert into ADB.CD13_HR_PART_GATHER_STATS_ERR values (sysdate,retour,'PR_CD13_HR_PART_GATHER_STATS
Begin traitement');
commit ;
-- EXECUTE IMMEDIATE 'BEGIN DBMS_STATS.GATHER_TABLE_STATS (
''HR'',''TABLE1'',''MT2018'||ig||''',DBMS_STATS.AUTO_SAMPLE_SIZE,null,''FOR ALL
INDEXED COLUMNS SIZE AUTO'',2,''ALL'',TRUE); END; ' ;
EXECUTE IMMEDIATE 'BEGIN
DBMS_STATS.GATHER_TABLE_STATS ( ''HR'',''TABLE1'','''||MON||''',DBMS_STATS.AUTO_SAMPLE_SIZE,null,''FOR
ALL INDEXED COLUMNS SIZE AUTO'',2,''ALL'',TRUE); END; ' ;
EXECUTE IMMEDIATE 'BEGIN
DBMS_STATS.GATHER_TABLE_STATS ( ''HR'',''TABLE2'','''||MON||''',DBMS_STATS.AUTO_SAMPLE_SIZE,null,''FOR
ALL INDEXED COLUMNS SIZE AUTO'',2,''ALL'',TRUE); END; ' ;
insert into ADB.CD13_HR_PART_GATHER_STATS_ERR values (sysdate,retour,'PR_CD13_HR_PART_GATHER_STATS
End traitement');
COMMIT ;
-- gestion des erreurs
EXCEPTION
WHEN NO_DATA_FOUND THEN
retour :=1;
my_sqlerrm:=substr(sqlerrm,1,100);
dbms_output.put_line ('traitement: KO - sortie : '||my_sqlerrm);
insert into ADB.CD13_HR_PART_GATHER_STATS_ERR
values (sysdate,retour,'PR_CD13_HR_PART_GATHER_STATS traitement: KO
- sortie : '||my_sqlerrm);
commit;
WHEN OTHERS THEN
retour :=2;
my_sqlerrm:=substr(sqlerrm,1,100);
dbms_output.put_line ('traitement: KO - sortie : '||my_sqlerrm);
insert into ADB.CD13_HR_PART_GATHER_STATS_ERR
values (sysdate,retour,'PR_CD13_HR_PART_GATHER_STATS traitement: KO
- sortie : '||my_sqlerrm);
commit;
END;
/
-
Create Log table and Give the
appropriate rights to the execution owner :
create table ADB.CD13_HR_PART_GATHER_STATS_ERR
(DTE DATE,RET NUMBER,MSG VARCHAR2(64)) ;
grant all ON ADB.CD13_HR_PART_GATHER_STATS_ERR TO HR ;
grant execute ON ADB.PR_CD13_HR_PART_GATHER_STATS TO HR ;
grant select on ADB.CD13_HR_PART_GATHER_STATS_ERR TO HR ;
-
Test the execution
declare
num number ;
begin
ADB.PR_CD13_HHR_PART_GATHER_STATS('MT201811',num)
;
dbms_output.put_line('RET_COD =
'||num) ;
end;
/
-
Schedule the Procedure
-- under SYSTEM
grant CREATE JOB TO HR ;
-- under HR
BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB
(
job_name => 'CD13_HR_PART_GATHER_STATS'
,start_date => TO_TIMESTAMP_TZ('2018/10/15 15:08:00.000000 +01:00','yyyy/mm/dd hh24:mi:ss.ff tzh:tzm')
,repeat_interval
=> 'FREQ=DAILY'
,end_date => NULL
,job_class => 'DEFAULT_JOB_CLASS'
,job_type => 'PLSQL_BLOCK'
,
job_action => 'declare num
number ; begin ADB.PR_CD13_HR_PART_GATHER_STATS(num) ; end;'
,comments => 'AUC
181015: Gather Stats avant Paye'
);
END ;
/
exec dbms_scheduler.enable('CD13_HR_PART_GATHER_STATS');
-- under SYSTEM
revoke CREATE JOB FROM HR ;
2] How to run an RMAN Backup from a Stored Procedure – one shot with
the Scheduler
For the
Batch Concern subject, I needed to have a new procedure that kills long running
session responsible for the over-generation of archivelogs and that runs a RMAN
Backup + Delete of the Archivelogs :
-
Kill call « app_admin.kill_long_running_session »
from Batch Concern Post
-
RMAN : « call
rman_backup_ar.ksh » from RMAN Backup Post
2.1
Reminder
START_DATE The START_DATE parameter specifies the first date that the job should be run.
If both the START_DATE and REPEAT_INTERVAL parameters are NULL, the job will be run as soon
as it is enabled.
The START_DATE parameter
is used as a reference date when the REPEAT_INTERVAL
parameter
uses a
calendaring expression. In this situation, the job will run on the first date
that matches
the
calendaring expression and is on or
after the date specified in the START_DATE
parameter.
The Scheduler
cannot guarantee that a job will execute at an exact time, because
the system
may be overloaded and thus resources may be unavailable.
REPEAT_INTERVAL The REPEAT_INTERVAL parameter specifies how often the job should
be
repeated. This parameter can be specified using either a calendaring or a
PL/SQL expression.
If this parameter is NULL, the job will run only once (at the scheduled start
time).
ENABLED The ENABLED parameter specifies whether the job is created in an enabled state. A
value of TRUE means the
job will be enabled. By default, all jobs are created disabled, so the
default
value for this parameter is FALSE. A disabled job will exist as an object in the database,
but it will never be processed by the job coordinator.
2.2
Pre-requisite : Unix Rights & Configuration File
$
ls -l $ORACLE_HOME/rdbms/admin/externaljob.ora
-rw-r----- 1 root
dba 1534 Dec 22
2005
/oracle/10GDB/rdbms/admin/externaljob.ora
$
ls -l $ORACLE_HOME/bin/extjob
-rwsr-x--- 1 root ?
dba 700321 May 27
2011 /oracle/10GDB/bin/extjob
$
cat $ORACLE_HOME/rdbms/admin/externaljob.ora
#
$Header: externaljob.ora 16-dec-2005.20:47:13 rramkiss Exp $
#
#
Copyright (c) 2005, Oracle. All rights reserved.
#
NAME
# externaljob.ora
#
FUNCTION
# This configuration file is used by
dbms_scheduler when executing external
# (operating system) jobs. It contains the
user and group to run external
# jobs as. It must only be writable by the
owner and must be owned by root.
# If extjob is not setuid then the only
allowable run_user
# is the user Oracle runs as and the only
allowable run_group is the group
# Oracle runs as.
#
#run_user
= nobody
#run_group
= nobody
run_user
= oracle
run_group
= dba
2.3
Create the Job : one-shot execution of the Shell script
$ cat job.sql
begin
DBMS_SCHEDULER.CREATE_JOB
(
job_name => 'purge_archivelogs',
job_type => 'EXECUTABLE',
job_action => '/bin/ksh',
number_of_arguments
=> 1,
enabled => false,
comments => 'Backup and Purge
Archivelogs when Nagios Volume Threshold is reached');
end;
/
exec dbms_scheduler.set_job_argument_value('PURGE_ARCHIVELOGS',
1, '/work/oracle/<base>/rman/rman_backup_ar.ksh');
exec
dbms_scheduler.enable('PURGE_ARCHIVELOGS');
Run the job
& check for the Backup execution
SQL> @job
PL/SQL procedure
successfully completed.
PL/SQL procedure
successfully completed.
PL/SQL procedure
successfully completed.
SQL> !ps -ef
| grep rman
oracle 8126616 24248460 66 11:40:22 -
0:01 rman @/work/oracle/INSTORA1/rman/scr/rma_bck_arc_noc.scr
log=/work/oracle/<base>/rman/log/rma_bck_arc_noc_070512_09:40:22.log
oracle 18939962 1 0 11:40:22 -
0:00 extjob <BASE> 22347882 -exec /bin/ksh /work/oracle/<base>/rman/rman_backup_ar.ksh
oracle 22085660 20709604 0
11:40:27 pts/0 0:00 /usr/bin/bash -c ps -ef | grep rman
oracle
24248460 18939962 0 11:40:22 -
0:00 /bin/ksh /work/oracle/<base>/rman/rman_backup_ar.ksh
2.4 Plug
the job in PL/SQL procedure
Grants under
SYS user
SQL> grant create job to system ;
SQL> grant create any job to system ;
SQL> grant CREATE EXTERNAL JOB to
system ;
SQL> grant SELECT ON SYS.V_$INSTANCE to
system ;
CREATE OR REPLACE package app_admin
as
-- app : Trigramme
Application
-- exécution sous compte
Exploitation ( ex: BTC_USR ) ou Nagios NAG_USR
-- Needed Rights , under
SYS user :
-- GRANT EXECUTE ON
SYS.DBMS_SERVICE TO SYSTEM; GRANT SELECT ON
SYS.DBA_OBJECTS TO SYSTEM; GRANT SELECT ON SYS.DBA_ROLE_PRIVS TO SYSTEM ;
-- GRANT SELECT ON SYS.V_$ACTIVE_SERVICES to system ; GRANT
SELECT ON SYS.V_$LOCKED_OBJECT TO
SYSTEM; GRANT SELECT ON SYS.V_$SESSION TO SYSTEM; grant alter system to system
;
-- GRANT SELECT ON SYS.V_$TRANSACTION TO SYSTEM; GRANT SELECT ON SYS.V_$SESS_IO TO SYSTEM; GRANT EXECUTE ON
SYS.DBMS_SYSTEM TO SYSTEM;
-- grant create job to
system ; grant create any job to system ; grant CREATE EXTERNAL JOB to system ;
grant SELECT ON SYS.V_$INSTANCE to system ;
-- 20/03/11 AUC Création
-- 05/01/12 Validée par
DC
-- 11/06/12 AUC mode
CRITICAL ajout kill_long_running_session lancée par Nagios pour éviter
saturation des archivelogs
-- 04/07/12 mode WARNING
Kill + ajout du backup RMAN
procedure
kill_long_run_plus_backup_RMAN;
procedure
kill_long_running_session;
procedure stop_app
(app in varchar2);
procedure
start_app (app in varchar2);
procedure
before_btc (app in varchar2);
procedure
before_btc_all ;
end;
/
procedure kill_long_run_plus_backup_RMAN
is
rma_scr varchar2(64) ;
instanc varchar2(16) ;
begin
-- This message goes to the alert log
sys.dbms_system.ksdwrt(2, ' Called Procedure app_admin.kill_long_run_plus_backup_RMAN');
select lower(instance_name) into instanc from v$instance ;
rma_scr := '/work/oracle/'||instanc||'/rman/rman_backup_ar.ksh' ;
kill_long_running_session ;
-- This message goes to
the alert log
sys.dbms_system.ksdwrt(2, ' Procedure
app_admin.kill_long_run_plus_backup_RMAN: launch RMAN Backup '||rma_scr);
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'purge_archivelogs',
job_type => 'EXECUTABLE',
job_action => '/bin/ksh',
number_of_arguments => 1,
enabled => false,
comments => 'Backup and Purge Archivelogs when Nagios
Volume Threshold is reached');
dbms_scheduler.set_job_argument_value('PURGE_ARCHIVELOGS', 1, ''||rma_scr||'');
dbms_scheduler.enable('PURGE_ARCHIVELOGS');
end kill_long_run_plus_backup_RMAN;
2.5
Run
Open an IO
intensive session
-- create table t_intensive ( a int ) ;
truncate table t_intensive ;
BEGIN
DECLARE
m NUMBER;
BEGIN
FOR i IN 1..100000 LOOP
FOR j IN 1..10000 LOOP
m := sqrt(4567);
insert into t_intensive values (m)
;
END LOOP;
commit ;
dbms_lock.sleep(10); -- sleep about 10 seconds
execute immediate ('truncate table t_intensive') ;
END LOOP;
END;
END;
/
SQL>
set serveroutput on
SQL>
execute system.app_admin.kill_long_run_plus_backup_RMAN ;
Kill
top Block Change and Active session
Kill
session username: SCOTT alter system kill session '993,13980'
PL/SQL
procedure successfully completed.
SQL>
!ps -ef | grep rman
oracle 19267836 17432588 0 15:40:40
pts/0 0:00 grep rman
oracle 22085772 1
0 15:40:34 - 0:00 extjob <BASE> 18350102 -exec
/bin/ksh /work/oracle/<base>/rman/rman_backup_ar.ksh
oracle 23068746 24313948 54 15:40:34 -
0:02 rman @/work/oracle/<base>/rman/scr/rma_bck_arc_noc.scr
log=/work/oracle/<base>/rman/log/rma_bck_arc_noc_070612_13:40:34.log
oracle 24313948 22085772 0 15:40:34 -
0:00 /bin/ksh /work/oracle/<base>/rman/rman_backup_ar.ksh
Alert.log
Thu Jul 12
14:59:10 GMT+02:00 2012Thread 1 advanced to log sequence 86975 (LGWR switch)
Current log# 4 seq# 86975 mem# 0: /data/<base>/log41<BASE>.dbf
Current log# 4 seq# 86975 mem# 1: /data/<base>/log42<BASE>.dbf
Thu Jul 12
14:59:18 GMT+02:00 2012 Called Procedure
app_admin.kill_long_run_plus_backup_RMAN
Called Procedure
app_admin.kill_long_running_session: Kill top Block Change and Active session
Procedure app_admin.kill_long_running_session:
SCOTT sqlplus@sr-dev-1 (TNS V1-V3) block_changes: 25260823 alter system kill
session '993,13980'
Procedure
app_admin.kill_long_run_plus_backup_RMAN: launch RMAN Backup /work/oracle/<base>/rman/rman_backup_ar.ksh
Thu Jul 12
12:59:23 UTC 2012
ALTER
SYSTEM ARCHIVE LOG