Veeam & Oracle RMAN Plugin Best Practices e esperienza d’uso

La conservazione dei dati di backup di un database di tipo Oracle è sempre complessa. Il mondo dei DBA Oracle è fortemente inclinato a restare chiuso nel guscio della confort zone e riuscire a penetrarlo non è mai troppo semplice.

Intanto si chiedono perché, se qualsiasi tool di backup utilizza i comandi RMAN, si debbano affidare ad altre persone quando possono fare tutto loro.

Oggi vado a presentare uno scenario reale di installazioni su VM Oracle Linux.

Ma comincio col mostrare lo schema di come funziona il backup di Oracle con il plugin

SCENARIO:

Tutte le macchine su cui è presente Oracle sono VM Linux su OLVM per cui era necessario provvedere all’installazione degli agent di tipo File System e dei Plug-in per Oracle RMAN.

I database erano sia di tipo RAC che singoli database.

A tutte le vm è stata aggiunta una scheda di rete su una VLAN dedicata al backup che si connette direttamente al VBR server.

Il Plug-in può funzionare in due modalità: modalità standalone e modalità gestita.

Nel mio caso ho utilizzato la modalità gestita con la quale è possibile automatizzare l’installazione e l’upgrade del plug-in su più server attraverso i Protection group.

La cosa fondamentale da tenere presente sono i prerequisiti che si rendono necessari al corretto funzionamento di tutte le fasi ossia:

  1. Installazione e configurazione
  2. Backup
  3. Restore

Installazione e configurazione

Tutte le configurazioni sono prese dalla documentazione ufficiale https://helpcenter.veeam.com/docs/backup/plugins/planning_and_preparation_oracle.html?ver=120

Innanzi tutto considerato che Veeam esegue delle query sul DB Oracle per la raccolta di informazioni statistiche su RMAN, Oracle può decidere di utilizzare spazio in alcune tabelle temporanee.

Quindi il primo passaggio da effettuare sul DB Oracle è quello di configurare la Temp Tablespace per evitare la carenza di spazio su di esse.

È possibile verificare la dimensione dello spazio delle tabelle temporanee con la seguente query SQL seguente:

SELECT * FROM DBA_TEMP_FREE_SPACE;

Oppure creare una nuova Temp Tablespace con il comando:

CREATE TEMPORARY TABLESPACE TEMP_NEW TEMPFILE ‘/DATA/database/ifsprod/temp_01.dbf’ SIZE 500m autoextend on next 10m maxsize unlimited;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP_NEW;

Per configurare Veeam Plug-in su un computer Linux o Unix, è necessario utilizzare una utenza locale che faccia parte del gruppo OSDBA (tipicamente chiamato “dba”) e che abbia i privilegi di SYSDBA.

Ma non basta.

Infatti sono FONDAMENTALI anche questi permessi a livello di sistema operativo:

La directory /opt/veeam deve essere scrivibile.

L’opzione di mount NOEXEC deve essere disabilitata per le directory /var e /tmp.

Per installare il plug-in, utilizzare il comando sudo o un utente con privilegi di root.

Quelli sopra indicati sono i permessi per la sola installazione del plugin.

E’ necessario poi aggiungere anche altri permessi per la gestione che si trovano qui: https://helpcenter.veeam.com/docs/backup/plugins/plan_and_manage_permissions.html?ver=120#computer-with-veeam-plug-in-for-oracle-rman

In particolare

Permessi per la folder $ORACLE_HOME devono essere settati con comando chmod a 775.

The OS user account has the primary membership in the Oracle Inventory Group (oinstall) group.

NOTA: Ho appurato che anche se oinstall non è il gruppo primario “spesso” funziona tutto.

A questo punto siamo pronti all’installazione del plugin.

Ho scelta la strada più semplice per l’installazione ovvero ho creato un Protection Group al cui interno inserivo di volta in volta i server su cui era necessario eseguire l’operazione e nelle specifiche del PG ho impostato che venisse effettuata l’installazione dell’Agent Linux FS e del plug-in RMAN

 

Ho volontariamente lasciato senza la spunta l’auto-update e l’eventuale reboot visto che si tratta di macchine in produzione.

Il risultato, se tutti i prerequisiti sono rispettati è il seguente:

Subito dopo l’installazione parte il processo di rescan delle macchine presenti nel PG e in questa fase viene verificata la presenza di una istanza Oracle.

Lo scanning delle istanze da parte di Veeam avviene in due modi:

  1. Se è presente un file oratab, viene scansionato il contenuto. Per essere identificati correttamente, i database devono essere elencati come ORACLE_SID:ORACLE_HOME.

Se il database è elencato come DB_UNIQUE_NAME:ORACLE_HOME o il file oratab è vuoto il consiglio è quello di aggiungere la entry. Questo velocizza le operazioni.

  1. Se il file oratab non presenta alcuna riga di configurazione, viene usato il comando srvctl di Oracle e catturato il suo output.

Troubleshooting: Nel caso in cui i permessi 775 sulla $ORACLE_HOME non fossero presenti si otterrebbe una mancata visualizzazione delle istanze presenti sui server.

ATTENZIONE: Una annotazione specifica riguarda le installazioni di Oracle RAC.

E’ necessario installare il Plugin for RMAN su tutti i nodi Oracle RAC per poter garantire i backup da ogni singolo nodo.

Completata la fase di installazione si rende necessario impostare i permessi di accesso verso il repository da parte degli agent:

Di default l’impostazione sul repository di backup è impostata su Deny to everyone

Nella finestra Access Permission, è importante specificare a chi si desidera concedere le giuste autorizzazioni al repository di backup ed è possibile scegliere tra:

Allow to everyone – selezionare questa opzione se si desidera concedere l’accesso al repository a qualsiasi utente. Onestamente, per motivi di sicurezza, questa opzione non è consigliata per gli ambienti di produzione.

Allow to the following accounts or groups only – selezionare questa opzione se si desidera che solo utenti specifici possano archiviare i backup in questo repository.

Quindi ho aggiunto le utenze utilizzate per il backup.

Configurazioni di rete

La rete, anche per il plug-in RMAN, è fondamentale per garantire delle prestazioni ottimali del backup.

Veeam consiglia, ove possibile, di configurare le seguenti impostazioni di rete:

Item Value Comments
Jumbo Frames Enable Veeam Repository and Oracle Servers
Network Speed Mutiple 10 Gbps cards ideally dedicated layer 2 network for backup operation
IPV6 Disable IPv6 should be disabled on Oracle Database server when possible

General Troubleshooting

Sul server dove è installato il plugin si possono verificare i logs nelle seguenti cartelle:

/tmp/veeam_plugin_logs/

/var/log/VeeamBackup/

/tmp/OracleProxyLogs/

Le configurazioni del plugin sono verificabili nel file /opt/veeam/VeeamPluginforOracleRMAN/veeam_config.xml

BACKUP

Il job di backup è stato creato direttamente dall’interfaccia del VBR Server.

E’ stato creato un job di backup per ogni database aggiungendo sempre l’instanza che veniva trovata

Attenzione: è necessario specificare il numero di canali RMAN anche nelle impostazioni avanzate nella tab Oracle (vedi immagine)

E inoltre la configurazione più importante per la parte degli archive logs.

RESTORE

Anche per la restore ci siamo affidati all’interfaccia di Veeam grazie all’Explorer per Oracle.

Trattandosi di backup effettuato con Agent non è possibile effettuare la pubblicazione istantanea o la restore istantanea ma ci sono solo queste opzioni

Dopo aver scelto la tipologia di restore da effettuare e inserito il target server su cui effettuare la restore la procedura chiede di specificare alcuni settaggi per l’istanza.

Poiché i test effettuati prevedevano la restore su altro server è stato necessario scegliere la seconda opzione indicando un nome differente per l’istanza

 

Altro passaggio importante è legato al momento in cui si vuole effettuare la restore.

Ho testato le prime due possibilità, ovvero la restore all’ultimo backup disponibile e la restore da una apposita sequenza.

In entrambi i casi è stato verificato che la restore si è completata con successo mantenendo gli archive logs come da richiesta (tutti nel primo caso, fino alla swquenza indicata nel secondo).

Quindi è partito il check per verificare se i path sul server esistono oppure dvono essere creati, e l’ultimo passaggio è indicare il numero dei channel da utilizzare per la restore.

ATTENZIONE: Prima di avviare la restore su un altro server è necessario specificare le credenziali di un account utente con cui è stato creato il backup.

Eseguire il seguente comando:

OracleRMANConfigTool –set-auth-data-for-restore

Verrà chiesto di selezionare un metodo di autenticazione per accedere al backup.

Quindi per accedere ai file di backup utilizzando le apposite credenziali digitare 1:

Select authentication type or disable the functionality:

  1. To disable the functionality
  2. Credentials
  3. Recovery token

Enter authentication type number:

1

  1. Quindi verrà chiesto di inserire le credenziali:

Enter username:

Enter password for <username>:

Ref: https://helpcenter.veeam.com/docs/backup/plugins/restore_other_server_rman.html?ver=120#specifying-credentials

About Antonio D'Andrea

Backup System Engineer Senior at Sorint.lab VEEAM VUG Italian Leader Lavoro nell'informatica dal 1998 e sono professionalmente predisposto a nuove conoscenze e approfondimenti.