Eseguire il backup di un database nello storage degli oggetti mediante RMAN

Questo articolo spiega come utilizzare Recovery Manager (RMAN) per gestire i backup del database del sistema DB nel proprio storage degli oggetti.

Per eseguire il backup del servizio, dovrai creare un bucket di storage degli oggetti per i backup, generare una password per il servizio, installare il modulo di backup di Oracle Database Cloud, quindi configurare RMAN per l'invio dei backup al servizio. Il modulo di backup è un'interfaccia di backup su nastro (SBT) del sistema perfettamente integrata con RMAN, pertanto è possibile utilizzare i noti comandi RMAN per eseguire operazioni di backup e ripristino.

Si noterà Swift indicato nella console e nell'URL dell'endpoint per il servizio. Questo perché il modulo di backup viene in genere utilizzato per eseguire il backup in Oracle Database Backup Cloud Service, che è un'area di memorizzazione degli oggetti Swift OpenStack.

Suggerimento

Su un sistema DB a nodo singolo, puoi utilizzare DBCLI per eseguire il backup nello storage degli oggetti. Si tratta di un'alternativa all'installazione del modulo di backup e all'utilizzo di RMAN per i backup. Per ulteriori informazioni, vedere Comandi Objectstoreswift. Tenere presente che i comandi dbcli non sono disponibili per i sistemi DB RAC a più nodi.

Prerequisiti

Avrai bisogno di:

  • Un sistema DB e un database di cui eseguire il backup.
  • La rete cloud (VCN) del sistema DB deve essere configurata con accesso allo storage degli oggetti:
    • Per l'accesso allo storage degli oggetti nella stessa area del sistema DB: Oracle consiglia di utilizzare un gateway di servizi.
    • Per l'accesso allo storage degli oggetti in un'area diversa da quella del sistema DB: utilizzare un gateway Internet. Il traffico di rete tra il sistema DB e lo storage degli oggetti non esce dal cloud e non raggiunge mai la rete Internet pubblica.

    Per ulteriori informazioni, consulta la VCN e subnet.

  • Bucket di storage degli oggetti esistente da utilizzare come destinazione di backup. Puoi usare la console o l'API di storage degli oggetti per creare il bucket.

    Per ulteriori informazioni, vedere Gestione dei bucket.

  • Token di autenticazione generato da OCI. Per generare la password, puoi utilizzare la console o l'API IAM.

    Per ulteriori informazioni, vedere Utilizzo dei token di autenticazione in Gestione delle credenziali utente.

  • Il nome utente (specificato quando si installa e si utilizza il modulo di backup) deve disporre dell'accesso a livello di tenancy allo storage degli oggetti. Un modo semplice per farlo è aggiungere il nome utente al gruppo Administrators. Tuttavia, ciò consente l'accesso a tutti i servizi cloud. Un amministratore deve invece creare un criterio simile al seguente che limiti l'accesso solo alle risorse necessarie nello storage degli oggetti per il backup e il ripristino del database:

    Allow group <group_name> to manage objects in compartment <compartment_name> where target.bucket.name = '<bucket_name>'
    
    Allow group <group_name> to read buckets in compartment <compartment_name>

    Per ulteriori informazioni sull'aggiunta di un utente a un gruppo, vedere Gestione dei gruppi. Per ulteriori informazioni sui criteri, consulta la Guida introduttiva ai criteri.

Installare il modulo di backup nel sistema DB

  1. SSH al sistema DB.
    ssh -i <SSH_key_used_when_launching_the_DB_system> opc@<DB_system_IP_address_or_hostname>
  2. Eseguire il login come utente opc.
    login as: opc
  3. sudo all'utente oracle.
    sudo su - oracle
  4. Spostarsi nella directory che contiene il file opc_install.jar del modulo di backup.
    cd /opt/oracle/oak/pkgrepos/oss/odbcs
  5. Usare la seguente sintassi di comando per installare il modulo di backup.
    java -jar opc_install.jar -opcId <user_id> -opcPass '<auth_token>' -container <bucket_name>;-walletDir ~/hsbtwallet/ -libDir ~/lib/ -configfile ~/config -host https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>

    Di seguito sono riportati i parametri disponibili.

    Parametro Descrizione
    -opcId

    Nome utente per l'account utente di Oracle Cloud Infrastructure, ad esempio: -opcId <username>@<example>.com.

    Questo è il nome utente utilizzato per collegarsi alla console.

    Il nome utente deve essere un membro del gruppo Administrators, come descritto nella sezione Prerequisiti.

    È inoltre possibile specificare il nome utente tra apici. Ciò potrebbe essere necessario se il nome contiene caratteri speciali, ad esempio: -opcId 'j~smith@<example>.com'

    Assicurarsi di utilizzare apici semplici e non apostrofi inclinati.

    -opcPass

    Token di autenticazione generato utilizzando la console o l'API IAM, tra apici, ad esempio: -opcPass <password>

    Assicurarsi di utilizzare apici semplici e non apostrofi inclinati.

    Per ulteriori informazioni, vedere Gestione delle credenziali utente.

    Questa non è la password per l'utente di Oracle Cloud Infrastructure.

    -container

    Nome di un bucket esistente nello storage degli oggetti da utilizzare come destinazione di backup, ad esempio: -container DBBackups

    -walletDir

    La directory in cui lo strumento di installazione creerà un Oracle Wallet contenente il nome utente e il token di autenticazione di Oracle Cloud Infrastructure.

    -walletDir ~/hsbtwallet crea il wallet nella directory home dell'utente corrente (oracle).

    -libDir

    La directory in cui è memorizzata la libreria SBT. La directory deve esistere già prima di eseguire il comando. Questo parametro determina il download della libreria SBT più recente.

    -libDir ~/lib/ downloads the libopc.so file to the current user's home directory, for example, /home/oracle/lib/libopc.so.

    -configfile

    Il nome del file dei parametri di inizializzazione che verrà creato dallo strumento di installazione. Questo file verrà utilizzato come riferimento dai job RMAN.

    -configfile ~/config crea il file nella directory home dell'utente corrente, ad esempio /home/oracle/config.

    -host

    URL dell'endpoint a cui devono essere inviati i backup:

    https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>

    dove object_storage_namespace è lo spazio di nomi dello storage degli oggetti della tenancy. Per ulteriori informazioni, vedere Informazioni sugli spazi di nomi dello storage degli oggetti.

    Non aggiungere una barra dopo lo spazio di nomi dello storage degli oggetti.

    Per cercare il nome dell'area, vedere Aree e domini di disponibilità.

Configura RMAN

Questo argomento descrive come configurare RMAN in modo che utilizzi il bucket come destinazione di backup predefinita. Di seguito si presume che si sia ancora connessi al sistema DB.

  1. Nel sistema DB, impostare le variabili di ambiente ORACLE_HOME e ORACLE_SID utilizzando la utility oraenv.
    . oraenv
  2. Connettersi al database con RMAN.
    rman target /
  3. Configurare RMAN per utilizzare il dispositivo SBT e puntare al file config creato durante l'installazione del modulo di backup. Qui viene mostrato un comando di esempio per un database della versione 12.
    CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 
        'SBT_LIBRARY=/home/oracle/lib/libopc.so, 
        SBT_PARMS=(OPC_PFILE=/home/oracle/config)';
  4. Configurare RMAN in modo che utilizzi SBT_TAPE per impostazione predefinita. L'esempio seguente abilita il backup automatico dei control file e degli spfile in SBT_TAPE e configura la cifratura. Esistono altre impostazioni che possono essere applicate all'installazione, ad esempio compressione, numero di canali di backup e recupero da utilizzare, criteri di conservazione dei backup, criteri di eliminazione dei log archiviati e altro ancora. Per ulteriori informazioni sulla scelta delle impostazioni appropriate, consultare la documentazione di Oracle Backup and Recovery relativa alla versione di Oracle in uso.
    CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;
    CONFIGURE BACKUP OPTIMIZATION ON;
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F';
    CONFIGURE ENCRYPTION FOR DATABASE ON;

    Nota

    I backup devono essere cifrati. La cifratura verrà specificata quando si esegue un backup. Si riceverà un errore se un backup non viene cifrato.

Una volta completata la configurazione RMAN, è possibile utilizzare gli stessi comandi RMAN utilizzati regolarmente per i backup su nastro.

Eseguire il backup del database

In questo argomento vengono forniti esempi di comandi di backup comunemente utilizzati.

  1. Impostare la cifratura del database:
    SET ENCRYPTION IDENTIFIED BY "password" ONLY;

    Tenere presente che questa impostazione non è permanente. È necessario impostarla per ogni nuova sessione RMAN.

  2. Eseguire il backup del database e dei log di archivio. Di seguito sono riportati alcuni comandi di esempio. Per ulteriori informazioni sulla scelta di una procedura di backup che soddisfi le proprie esigenze, consultare la documentazione di Oracle Backup and Recovery relativa alla versione di Oracle in uso. Assicurarsi di eseguire regolarmente il backup per ridurre al minimo la potenziale perdita di dati e includere sempre una copia dello spfile e del control file. Si noti che l'esempio seguente utilizza backup incrementali a più sezioni, una funzionalità introdotta in 12c. Quando si utilizza 11g, omettere la clausola section size.
    BACKUP INCREMENTAL LEVEL 0 SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
    BACKUP INCREMENTAL LEVEL 1 SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
    BACKUP INCREMENTAL LEVEL 1 CUMULATIVE SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
  3. Esegui spesso il backup dei log di archiviazione per ridurre al minimo la potenziale perdita di dati e conservare più copie di backup come precauzione.
    BACKUP ARCHIVELOG ALL NOT BACKED UP 2 TIMES;

Al termine del job di backup, è possibile visualizzare i file di backup nel bucket nella console nella pagina Memorizzazione selezionando Storage degli oggetti.