Skip to Main Content

Portuguese

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Oracle XE Windows - Erro ao agendar backup (Arch e Full) pelo SQL Developer

RicardoABFeb 13 2020 — edited Feb 14 2020

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

This post has been answered by RicardoAB on Feb 14 2020
Jump to Answer
Comments
Post Details
Added on Feb 13 2020
2 comments
760 views