Skip to Main Content

 

Auswahl  

APEX 20.2 Backups selbst konfigurieren 

Oracle
APEX
APEX 20.1:APEX 20.2
29.04.20 (MP)
05.07.23(MP)
APEX Backup

Passende Schulungen zum Thema

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