Salta al contenuto

Come posso eseguire un backup RMAN della mia istanza database Amazon RDS per Oracle?

5 minuti di lettura
0

Desidero utilizzare Recovery Manager 8RMAN) per eseguire uno snapshot di un database della mia istanza database Amazon Relational Database Service (Amazon RDS) per Oracle.

Risoluzione

Prima di eseguire un backup RMAN di un'istanza database Amazon RDS per Oracle, tieni presenti le seguenti limitazioni:

  • Quando esegui un backup RMAN dell'istanza database, consumi parte dello spazio di archiviazione allocato all'istanza. Puoi anche utilizzare l'integrazione con Amazon Elastic File System (Amazon EFS) per archiviare i file di backup in uno spazio di archiviazione esteso senza aumentare le dimensioni complessive dello spazio di archiviazione dell'istanza database.
  • Funzionalità come l'opzione parallela per i backup, la compressione dei backup, la convalida del database e il monitoraggio delle modifiche dei blocchi sono disponibili solo per gli utenti della versione Enterprise di Oracle. Per ulteriori informazioni, consulta Oracle Database Editions (Versioni dei database Oracle) sul sito web Oracle.
  • Le funzionalità RMAN non sono supportate per le repliche in lettura di RDS per Oracle, ma nelle repliche in lettura puoi utilizzare il monitoraggio delle modifiche dei blocchi.
  • Devi attivare i backup automatici per le istanze database prima di eseguire un backup RMAN. Poiché i backup RMAN sono operazioni online, il log di archivio deve essere attivato. Quando attivi il backup automatico nell'istanza, imposti anche l'istanza database in modalità log di archivio.

Esegui il backup RMAN dell'istanza database

Utilizza uno di questi metodi per eseguire il backup RMAN dell'istanza database:

Per monitorare la quantità di spazio di archiviazione utilizzata dalla directory, esegui questa query:

SELECT round(SUM(filesize)/1024/1024/1024, 3) SIZE_IN_GB FROM TABLE(rdsadmin.rds_file_util.listdir('<DIRECTORY_NAME>'));

Esegui un backup completo del database dell'istanza

Quando esegui un backup completo del database, esegui il backup di tutti i file di dati dell'istanza, compresi i file di controllo e il file delle procedure archiviate.

Per eseguire un backup completo del database con il nome di tag Full_DB_BACKUP nella directory DATA_PUMP_DIR con i parametri dell'attività predefiniti, esegui questa query:

BEGIN
rdsadmin.rdsadmin_rman_util.backup_database_full(
p_owner => 'SYS',
p_directory_name => 'DATA_PUMP_DIR',
p_tag => 'FULL_DB_BACKUP',
p_rman_to_dbms_output => FALSE);
END;
/

Esegui un backup incrementale del database dell'istanza

I backup incrementali utilizzano un parametro aggiuntivo chiamato p_level. Per eseguire un backup incrementale completo, imposta p_level su 0. Per eseguire un backup differenziale incrementale, imposta p_level su 1. Per ulteriori informazioni, consulta About RMAN incremental backups (Informazioni sui backup incrementali RMAN) sul sito web Oracle.

Come i backup completi, anche i backup incrementali per le istanze database RDS per Oracle hanno parametri comuni che puoi impostare prima di iniziare il backup.

Per eseguire un backup incrementale con il nome di tag MY_INCREMENTAL_BACKUP nella directory DATA_PUMP_DIR con i parametri dell'attività predefiniti, esegui questa procedura:

BEGIN
rdsadmin.rdsadmin_rman_util.backup_database_incremental(
 p_owner => 'SYS',
 p_directory_name => 'DATA_PUMP_DIR',
 p_level => 1,
 p_tag => 'MY_INCREMENTAL_BACKUP',
 p_rman_to_dbms_output => FALSE);
END;
/

Esegui un backup dei log di archivio dell'istanza database

Utilizza il pacchetto Amazon RDS per Oracle rdsadmin_rman_util per eseguire il backup dei log di archivio in base all'intervallo SCN, all'intervallo di numeri di sequenza e all'intervallo di date.

Applica questa procedura per eseguire il backup dei log di archivio dell'istanza nella directory ARCHIVE_LOG_BACKUP con il nome di tag LOG_BACKUP. Per modificare le impostazioni dei backup dei log di archivio, consulta Esecuzione di attività RMAN comuni per le istanze database Oracle.

--creating a directory to store archive log backups

EXEC rdsadmin.rdsadmin_util.create_directory(p_directory_name => 'ARCHIVE_LOG_BACKUP');

--performing archive log backup

BEGIN
rdsadmin.rdsadmin_rman_util.backup_archivelog_all(
 p_owner               => 'SYS',
 p_directory_name      => 'ARCHIVE_LOG_BACKUP',
 p_tag                 => 'LOG_BACKUP',
 p_rman_to_dbms_output => FALSE);
END;
/

Esegui un backup del tablespace dell'istanza database

Utilizza i parametri comuni descritti in Backup di un tablespace per eseguire un backup individuale del tablespace dell'istanza database. Questo esempio di comando esegue il backup del tablespace USERS1 nella directory personalizzata TB_BACKUP con il nome di tag MYTABLESPACE_BACKUP.

BEGIN
    rdsadmin.rdsadmin_rman_util.backup_tablespace(
        p_owner               => 'SYS',
        p_directory_name      => 'TB_BACKUP',
        p_tablespace_name     => 'USERS1',
        p_tag                 => 'MYTABLESPACE_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/

Nota: puoi inoltre utilizzare la procedura rdsadmin_rman_util per eseguire il backup del file di controllo. Per ulteriori informazioni, consulta Backup di un file di controllo.

Monitora i processi di backup RMAN

Per monitorare il backup RMAN, utilizza query SQL o controlla i file di log generati per l'attività RMAN.

Utilizza i seguenti metodi per accedere ai file di log per i processi di backup RMAN:

  • Imposta p_rman_to_dbms_output su TRUE per l'attività RMAN da eseguire. Assicurati di impostare serveroutput su on prima di eseguire il pacchetto rdsadmin_rman_util.

  • Per elencare i file di log delle attività RMAN, consulta la sezione Log ed eventi della console Amazon Aurora e RDS.

  • Se l'attività di backup RMAN è completa, puoi anche eseguire questa query SQL per elencare i log delle attività RMAN. Quindi utilizza la procedura rdsadmin.rds_file_util.read_text_file per leggere i log. Per ulteriori informazioni, consulta Elenco di file.

    column filename format a70
    set linesize 200
    SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('BDUMP')) where filename like '%rman%';
  • Per verificare la dimensione della directory in cui è archiviato il backup RMAN, esegui prima questa query. Quindi monitora il consumo dello spazio di archiviazione.

    SELECT round(SUM(filesize)/1024/1024, 3) SIZE_IN_MB FROM TABLE(rdsadmin.rds_file_util.listdir('<DIRECTORY_NAME>'));
  • Per ottenere lo stato del processo di backup RMAN con il tempo impiegato per completarlo, esegui la seguente query.

    set linesize 500 pagesize 2000
    col Hours format 9999.99
    col STATUS format a10
    select SESSION_KEY, INPUT_TYPE, STATUS,
    to_char(START_TIME,'mm-dd-yyyy hh24:mi:ss') as RMAN_Bkup_start_time,
    to_char(END_TIME,'mm-dd-yyyy hh24:mi:ss') as RMAN_Bkup_end_time,
    elapsed_seconds/3600 Hours from V$RMAN_BACKUP_JOB_DETAILS
    order by session_key;

Informazioni correlate

Esecuzione di varie attività per istanze database Oracle

Esecuzione di attività comuni relative ai log per le istanze database Oracle

File di log del database Amazon RDS per Oracle

AWS UFFICIALEAggiornata 2 anni fa