Direkt zum Inhalt

Wie kann ich ein RMAN-Backup meiner Amazon RDS für Oracle-DB-Instance erstellen?

Lesedauer: 5 Minute
0

Ich möchte Recovery Manager (RMAN) verwenden, um ein Backup meiner Amazon Relational Database Service (Amazon RDS)-DB-Instance für Oracle zu erstellen.

Lösung

Bevor du ein RMAN-Backup deiner Amazon RDS für Oracle-DB-Instance erstellst, beachte die folgenden Einschränkungen:

  • Wenn du ein RMAN-Backup deiner DB-Instance durchführst, verbrauchst du Speicherplatz aus dem zugewiesenen Speicher dieser Instance. Du kannst auch die Amazon Elastic File System (Amazon EFS)-Integration verwenden, um Backup-Dateien im erweiterten Speicher zu speichern, ohne die Gesamtspeichergröße deiner DB-Instance zu erhöhen.
  • Funktionen wie die Parallel-Option für Backups, Backup-Komprimierung, Datenbankvalidierung und Blockänderungsverfolgung sind nur für Benutzer von Oracle Enterprise Edition verfügbar. Weitere Informationen findest du unter Oracle Database Editions auf der Oracle-Website.
  • RMAN-Funktionen werden für RDS für Oracle-Lesereplikate nicht unterstützt, du kannst aber Blockänderungsverfolgung für Lesereplikate verwenden.
  • Du musst automatisierte Backups für deine DB-Instances aktivieren, bevor du ein RMAN-Backup durchführst. Da RMAN-Backups Online-Vorgänge sind, muss das Archivprotokoll aktiviert sein. Wenn du automatisierte Backups für deine Instance aktivierst, versetzt du die DB-Instance auch in den Archive Log Mode.

RMAN-Backup deiner DB-Instance durchführen

Verwende eine der folgenden Methoden, um das RMAN-Backup deiner DB-Instance durchzuführen:

Führe die folgende Abfrage aus, um die vom Verzeichnis belegte Speichermenge zu überwachen:

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

Vollständiges Datenbank-Backup deiner DB-Instance durchführen

Wenn du ein vollständiges Datenbank-Backup durchführst, sicherst du alle Datendateien in deiner DB-Instance. Dies umfasst die Kontrolldateien und die Datei mit gespeicherten Prozeduren.

Führe die folgende Abfrage aus, um ein vollständiges Datenbank-Backup mit dem Tag-Namen Full_DB_BACKUP im Verzeichnis DATA_PUMP_DIR mit Standard-Aufgabenparametern durchzuführen:

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;
/

Inkrementelles Datenbank-Backup deiner DB-Instance durchführen

Inkrementelle Backups verwenden einen zusätzlichen Parameter namens p_level. Setze p_level auf 0, um ein vollständiges inkrementelles Backup durchzuführen. Setze p_level auf 1, um ein differenzielles inkrementelles Backup durchzuführen. Weitere Informationen findest du unter Informationen zu inkrementellen RMAN-Backups auf der Oracle-Website.

Wie vollständige Backups verfügen inkrementelle Backups für RDS für Oracle-DB-Instances über gemeinsame Parameter, die du vor dem Start des Backups festlegen kannst.

Führe das folgende Verfahren aus, um ein inkrementelles Backup mit dem Tag-Namen MY_INCREMENTAL_BACKUP im Verzeichnis DATA_PUMP_DIR mit Standard-Aufgabenparametern durchzuführen:

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;
/

Archivprotokoll-Backup deiner DB-Instance durchführen

Verwende das Paket rdsadmin_rman_util von Amazon RDS für Oracle, um deine Archivprotokolle basierend auf SCN-Bereich, Sequenznummernbereich und Datumsbereich zu sichern.

Führe das folgende Verfahren aus, um Archivprotokolle für deine Instance im Verzeichnis ARCHIVE_LOG_BACKUP mit dem Tag-Namen LOG_BACKUP zu sichern. Weitere Informationen zum Ändern der Einstellungen für deine Archivprotokoll-Backups findest du unter Allgemeine RMAN-Aufgaben für Oracle-DB-Instances ausführen.

--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;
/

Tablespace-Backup deiner DB-Instance durchführen

Verwende die unter Tablespace sichern beschriebenen allgemeinen Parameter, um ein einzelnes Tablespace-Backup deiner DB-Instance durchzuführen. Der folgende Beispielbefehl sichert den Tablespace USERS1 im benutzerdefinierten Verzeichnis TB_BACKUP mit dem Tag-Namen 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;
/

Hinweis: Du kannst auch das Verfahren rdsadmin_rman_util verwenden, um das Backup der Kontrolldatei durchzuführen. Weitere Informationen findest du unter Kontrolldatei sichern.

RMAN-Backup-Aufträge überwachen

Um das RMAN-Backup zu überwachen, verwende SQL-Abfragen oder prüfe die Protokolldateien, die für die RMAN-Aufgabe generiert werden.

Verwende die folgenden Methoden, um auf die Protokolldateien für RMAN-Backup-Aufträge zuzugreifen:

  • Setze p_rman_to_dbms_output für die RMAN-Aufgabe, die du ausführen möchtest, auf TRUE. Stelle sicher, dass du serveroutput auf on setzt, bevor du das Paket rdsadmin_rman_util ausführst.

  • Um die RMAN-Aufgabenprotokolldateien aufzulisten, überprüfe den Abschnitt Protokolle und Ereignisse in der Amazon Aurora- und RDS-Konsole.

  • Wenn der RMAN-Backup-Auftrag abgeschlossen ist, kannst du auch die folgende SQL-Abfrage ausführen, um die RMAN-Aufgabenprotokolle aufzulisten. Verwende anschließend das Verfahren rdsadmin.rds_file_util.read_text_file, um die Protokolle zu lesen. Weitere Informationen findest du unter Dateien aufführen.

    column filename format a70
    set linesize 200
    SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('BDUMP')) where filename like '%rman%';
  • Um die Verzeichnisgröße zu überprüfen, in dem das RMAN-Backup gespeichert ist, führe zuerst die folgende Abfrage aus. Überwache dann den Speicherverbrauch.

    SELECT round(SUM(filesize)/1024/1024, 3) SIZE_IN_MB FROM TABLE(rdsadmin.rds_file_util.listdir('<DIRECTORY_NAME>'));
  • Führe die folgende Abfrage aus, um den Status des Backup-Auftrags mit der benötigten Zeit für den Abschluss des RMAN-Backup-Auftrags aufzulisten.

    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;

Ähnliche Informationen

Verschiedene Aufgaben für Oracle-DB-Instances durchführen

Allgemeine protokollbezogene Aufgaben für Oracle-DB-Instances durchführen

Amazon RDS für Oracle-Datenbankprotokolldateien

AWS OFFICIALAktualisiert vor 2 Jahren