Prezados (as),
Estou com um dilema há algum tempo:
Como deixar de usar o Task Scheduler do Windows para agendar e executar a tarefa diária e programada, (a cada 20 minutos, por exemplo) de backup no RMAN usando o SQL Developer.
Já aprendi que devo criar uma Credencial primeiro para que o Job funcione, criei uma credencial com o mesmo login/senha do domínio e inclusive deixei este mesmo usuário como o usuário de startup do OracleJobSchedulerXE.
BEGIN
sys.dbms_credential.create_credential(
username => 'usuario_logonas',
password => '123deuerrooutravez',
database_role => 'SYSDBA',
windows_domain => 'GLOBAL',
comments => 'Credential to run RMAN jobs',
enabled => true,
credential_name => '"SYSTEM"."RMAN_JOBCREDENTIAL"'
);
END;
Até aqui, creio que esteja tudo certo, infelizmente não tenho como saber se a credencial está funcional (se alguém souber como testar NO WINDOWS, por gentileza me ajude).
Agora a criação do Job, como já apanhei bastante, percebi que, mesmo logando como sys, os Job dentro deste esquema não funcionam "bem", então estou criando ambos (jobs e credentials) no SYSTEM.
Seguem abaixo os scripts de criação dos Jobs de Backup Full e Archive logs:
--Job de agendamento diario de Backup Full - RMAN
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => '"SYSTEM"."RMAN_FULL_BACKUP"',
job_type => 'BACKUP_SCRIPT',
job_action => 'run {
allocate channel c1 device type disk;
allocate channel c2 device type disk;
show all;
host ''del E:\Backup\xe\FULL\OraLab$XE*.RMAN /Q'';
host ''move /Y E:\Backup\xe\ARCH\OraLab$XE*.RMAN E:\Backup\xe\ARCH\TSM\'';
crosscheck backup;
delete noprompt expired backup;
sql ''alter system archive log current'';
backup copies 2 as compressed backupset
archivelog all not backed up
maxsetsize=5G
tag ''ARCH''
format ''E:\Backup\xe\ARCH\OraLab$XE_ARCH_%u_%p.rman'',''E:\Backup\xe\FULL\OraLab$XE_ARCH_%u_%p.rman''
delete all input;
backup as copy current controlfile format ''E:\Backup\xe\FULL\OraLab$XE_CF_CONTROL01.CTL.RMAN'' reuse;
backup as copy current controlfile format ''E:\Backup\xe\ARCH\OraLab$XE_CF_CONTROL01.CTL.RMAN'' reuse;
backup as compressed backupset
DATABASE
tag ''DAILY_FULL''
format ''E:\Backup\xe\FULL\OraLab$XE_DB_%u_%p.rman'';
sql ''alter system archive log current'';
backup copies 2 as compressed backupset
archivelog all not backed up
maxsetsize=5G
tag ''ARCH''
format ''E:\Backup\xe\ARCH\OraLab$XE_ARCH_%u_%p.rman'',''E:\Backup\xe\FULL\OraLab$XE_ARCH_%u_%p.rman''
delete all input;
sql "create pfile=''''E:\Backup\xe\FULL\OraLab$XE_PFILE.TXT.RMAN'''' from spfile";
sql "alter database backup controlfile to trace as ''''E:\Backup\xe\FULL\OraLab$XE_CF_CONTROL01.TXT.RMAN'''' REUSE";
backup spfile format ''E:\Backup\xe\FULL\OraLab$XE_SPFILE.RMAN'';
backup as copy current controlfile format ''E:\Backup\xe\FULL\OraLab$XE_CF_CONTROL01.CTL.RMAN'' reuse;
backup as copy current controlfile format ''E:\Backup\xe\ARCH\OraLab$XE_CF_CONTROL01.CTL.RMAN'' reuse;
restore spfile validate;
restore controlfile validate;
restore database validate;
release channel c1;
release channel c2;
}
',
number_of_arguments => 0,
start_date => NULL,
end_date => NULL,
enabled => FALSE,
credential_name => '"SYSTEM"."RMAN_JOBCREDENTIAL"',
auto_drop => FALSE,
comments => 'Tarefa diaria de backup completo feita as 21hs');
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"SYSTEM"."RMAN_FULL_BACKUP"',
attribute => 'restartable', value => TRUE);
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"SYSTEM"."RMAN_FULL_BACKUP"',
attribute => 'parallel_instances', value => TRUE);
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"SYSTEM"."RMAN_FULL_BACKUP"',
attribute => 'store_output', value => TRUE);
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"SYSTEM"."RMAN_FULL_BACKUP"',
attribute => 'job_priority', value => '1');
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"SYSTEM"."RMAN_FULL_BACKUP"',
attribute => 'logging_level', value => DBMS_SCHEDULER.LOGGING_RUNS);
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"SYSTEM"."RMAN_FULL_BACKUP"',
attribute => 'raise_events', value => '39');
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"SYSTEM"."RMAN_FULL_BACKUP"',
attribute => 'max_failures', value => 2);
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"SYSTEM"."RMAN_FULL_BACKUP"',
attribute => 'max_runs', value => 2);
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"SYSTEM"."RMAN_FULL_BACKUP"',
attribute => 'max_run_duration', value => to_dsinterval('+00 04:00:00.000000'));
DBMS_SCHEDULER.enable(
name => '"SYSTEM"."RMAN_FULL_BACKUP"');
END;
---------------------------------------------------------------------------------------------------------------------------------------------------------------
--Job de agendamento a cada 20 min. de Backup Archive Logs - RMAN
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => '"SYSTEM"."RMAN_ARCH_BKP"',
schedule_name => '"SYS"."MINUTELY_ARCHIVELOG_BACKUP"',
job_type => 'BACKUP_SCRIPT',
job_action => 'run {
allocate channel c1 device type disk;
allocate channel c2 device type disk;
backup copies 1 as compressed backupset
archivelog all not backed up
maxsetsize=4G
tag ''ARCH''
format ''E:\Backup\xe\ARCH\OraLab$XE_ARCH_%u_%p.rman''
delete all input;
backup as copy current controlfile format ''E:\Backup\xe\ARCH\OraLab$XE_CF_CONTROL01.CTL.RMAN'' reuse;
delete noprompt archivelog until time ''sysdate-1/1440'' ;
release channel c1;
release channel c2;
}
',
number_of_arguments => 0,
enabled => FALSE,
credential_name => '"SYSTEM"."RMAN_JOBCREDENTIAL"',
auto_drop => FALSE,
comments => 'Tarefa de backup de Archive Logs que executa a cada 20 minutos');
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"SYSTEM"."RMAN_ARCH_BKP"',
attribute => 'credential_name', value => '"SYSTEM"."RMAN_JOBCREDENTIAL"');
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"SYSTEM"."RMAN_ARCH_BKP"',
attribute => 'restartable', value => TRUE);
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"SYSTEM"."RMAN_ARCH_BKP"',
attribute => 'store_output', value => TRUE);
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"SYSTEM"."RMAN_ARCH_BKP"',
attribute => 'logging_level', value => DBMS_SCHEDULER.LOGGING_RUNS);
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"SYSTEM"."RMAN_ARCH_BKP"',
attribute => 'raise_events', value => '2');
DBMS_SCHEDULER.enable(
name => '"SYSTEM"."RMAN_ARCH_BKP"');
END;
Mensagens de erro:
Job - RMAN_ARCH_BKP: ORA-27369: job of type EXECUTABLE failed with exit code: Couldn't fork process
Job - RMAN_FULL_BACKUP: ORA-27369: job of type EXECUTABLE failed with exit code: Couldn't fork process