Skip to Main Content
 
Titelbild Muniqsoft Training

Search Results

Oracle Tipp Text

APEX 20.2 Backups selbst konfigurieren

Bereich:APEX, Version: ab APEX 20.1:APEX 20.2, Letzte Überarbeitung: 29.04.2020

Keywords:APEX Backup

Das neue Oracle APEX 20.1 hat uns ja wieder mit vielen neuen Funktionen überrascht. Eines davon ist die autoamtische Backup-Funktionalität.
Nur leider ist diese sehr wenig konfigurierbar.

Sie können einstellen, wieviele Backups pro APP behalten werden sollen.

Der Default sind 25 Backups pro App

SELECT apex_200100.WWV_FLOW_PLATFORM.GET_PREFERENCE('MAX_APPLICATION_BACKUPS')
FROM dual;
--oder für die neuere Version APEX 20.2
SELECT apex_200200.WWV_FLOW_PLATFORM.GET_PREFERENCE('MAX_APPLICATION_BACKUPS')
FROM dual;

=>25
Ändern können Sie die Anzahl mittels:

BEGIN
apex_instance_admin.set_parameter('MAX_APPLICATION_BACKUPS','5');
END;


Eine Übersicht der bereits existierenden Backups erhalten Sie durch:

SELECT flow_id,name,apex_util.filesize_mask(doc_size) as doc_size,created_on
FROM flows_files.wwv_flow_file_objects$ f
WHERE file_type='FLOW_BACKUP'
ORDER BY created_on ;


Für die nächtlichen Backup verantwortlich, ist der Job mit Namen wwv_flow_backup.main:


SELECT job_name,job_action,repeat_interval,run_count
FROM dba_scheduler_jobs
WHERE owner='APEX_200200';


Dieser läuft jede Nacht um 02:00 Uhr

Sie können jedich auch manuell ein Backup erstellen durch:

BEGIN wwv_flow_backup.application (
p_batch_id          =>1,
p_application_id    =>100,
p_application_name  =>'MyApp',
p_security_group_id =>1234567890,
p_last_updated_on   =>sysdate,
p_description       =>'Mein Montags Backup ');
COMMIT;
END;


Auch können Backup manuell gelöscht werden (Hier die Appliaktionen 11000 und 11020:

BEGIN
FOR c In (select  b.id,f.security_group_id,f.flow_id,f.created_on
FROM flows_files.wwv_flow_file_objects$ f, apex_200200.WWV_FLOW_BACKUPS$ b
WHERE f.id=b.object_id
AND file_type='FLOW_BACKUP'
AND flow_id IN (11000,11020))  LOOP
dbms_output.put_line('Remove :'||c.flow_id);
wwv_flow_api.set_security_group_id(c.security_group_id);
apex_200100.wwv_flow_backup.remove(
  p_application_id=>c.flow_id,
  p_security_group_id=>c.security_group_id,
  p_backup_id=>c.id);
END LOOP;
COMMIT;
END;


Oder alternativ löschen wir alle APEX Backups, die älter als 100 Tage sind:

DECLARE
v_tage IN:=100;
BEGIN
FOR c In (select  b.id,f.security_group_id,f.flow_id,f.created_on
FROM flows_files.wwv_flow_file_objects$ f, apex_200200.WWV_FLOW_BACKUPS$ b
WHERE f.id=b.object_id
AND file_type='FLOW_BACKUP'
AND b.created_on<sysdate-v_tage)  LOOP
dbms_output.put_line('Remove :'||c.flow_id);
wwv_flow_api.set_security_group_id(c.security_group_id);
apex_200200.wwv_flow_backup.remove(
  p_application_id=>c.flow_id,
  p_security_group_id=>c.security_group_id,
  p_backup_id=>c.id);
END LOOP;
COMMIT;
END;


Weitere Tipps und Tricks zu APEX 20.1 und APEX 20.2 erhalten Sie natürlich in einen unserer 6 verschiedenen APEX-Kurse... Online oder bei uns Vorort



Weitere Interessente Artikel zum Thema:


Empfohlene Schulungen zum Thema: