Auswahl  

APEX 20.2 Backups selbst konfigurieren 

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

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