Oracle
 sql >> Database >  >> RDS >> Oracle

Installazione di RAC per un database con file di dati

Non molto tempo fa, dovevo aggiornare Oracle Clusterware e RDBMS da 11.1.0.7 a 11.2.0.2. Ho un sacco di esperienza con il software Oracle RDBMS, ma sospetto di essere come la maggior parte dei DBA in quanto la mia esperienza Clusterware non è allo stesso livello della mia esperienza RDBMS. Quindi, sebbene non avessi paura di aggiornare il software RDBMS, mi sono avvicinato all'aggiornamento del Clusterware con un certo nervosismo. Certo, questo disagio è nato da un grado inferiore di esperienza con il prodotto. Quindi, prima di tentare la produzione, ho testato, testato e testato il più possibile.
L'aggiornamento di Clusterware è andato liscio grazie a molte pianificazioni e test.

Dopo l'aggiornamento, stavo riflettendo su cosa è andato bene e cosa è andato storto e su cosa avrei potuto fare diversamente in futuro. Mi è venuto in mente che avrei potuto rovinare completamente l'aggiornamento del Clusterware, spazzare via il software Clusterware e comunque essere stato in grado di installare Clusterware da zero e essere stato in grado di far funzionare il mio database RAC. Questo post mostrerà i passaggi che ho eseguito in un ambiente di test per eseguire questa attività. Quindi, se ti trovi con un aggiornamento o un'installazione di Clusterware completamente incasinato, non c'è paura perché finché hai ancora i tuoi file di database, sarai in grado di far funzionare le cose. Se l'aggiornamento del Clusterware non è riuscito, prima di procedere dovrai correggere la causa principale dell'errore. Pertanto, se hai una configurazione di interconnessione del cluster errata o uno spazio di archiviazione non valido per i tuoi dischi di votazione, dovrai risolvere questi problemi e quindi puoi seguire questi passaggi.

Ho un database valido con tutti i miei file di dati nell'archiviazione condivisa accessibile da tutti i nodi del cluster. Il mio test ha due nodi per il cluster. Si presume inoltre che il database sia stato chiuso correttamente. Questo documento presuppone che il nome del database sia ORCL.

Nota:se il database che stai aggiungendo a RAC faceva già parte di RAC, puoi saltare i passaggi 9-11 di seguito. I passaggi 9-11 sono necessari se si converte anche il database da un database a istanza singola a un database Oracle RAC durante l'aggiunta a Clusterware.

Passaggi
1. Fai un backup a freddo dei file di dati del tuo database. In caso succeda qualcosa, puoi sempre ripristinare dal backup semplicemente copiando i file dal supporto.
2. Assicurarsi che i nodi siano stati ripuliti dall'installazione/aggiornamento del Clusterware. Fare riferimento alla nota Metalink 239998.1 per istruzioni dettagliate, se necessario.
3. Installare correttamente Oracle Clusterware. In primo luogo dovresti aver risolto i problemi che causavano il fallimento di questo passaggio.
a. Verificare che il cluster sia attivo e funzionante.
i. $CRS_HOME/bin/crsctl server di stato
1. Tutti i nodi nel cluster devono essere ONLINE.
4. Installa Oracle RDBMS sul cluster.
a. L'OUI dovrebbe rilevare il Clusterware e proporsi di eseguire un'installazione RAC.
5. Avvia il DBCA per creare un database shell. Utilizzeremo il DBCA per configurare tutto in CRS per noi.
a. Scegliere le opzioni per creare un database RAC.
b. Usa lo stesso nome del database esistente.
c. Creare il database della shell su tutti i nodi del cluster.
d. Utilizzare una posizione comune per i file di database, ma non sovrascrivere i file di dati esistenti.
6. Arrestare il database della shell
a. srvctl stop database –d orcl
7. Configura il tuo SPFILE
a. Se hai l'SPFILE del tuo vecchio database:
i. Posiziona il file sul disco condiviso.
ii. Aggiorna $ORACLE_HOME/dbs/initorcl.ora in modo che punti alla posizione SPFILE corretta. Eseguire questa operazione su tutti i nodi
b. Se non si dispone di un SPFILE, creare un PFILE da zero e quindi utilizzare il comando CREATE SPFILE FROM PFILE per creare un SPFILE.
i. Assicurati che il parametro CONTROL_FILES punti alla posizione corretta, non ai file di controllo del database della shell.
c. (Facoltativo) Se si dispone di un file di password, copiarlo nella memoria condivisa e quindi aggiornare il softlink in $ORACLE_HOME/dbs (su tutti i nodi) in modo che punti al file di password. Se non si dispone di un file di password, è possibile crearne uno in un secondo momento, se lo si desidera.
8. Aggiorna CRS con posizione SPFILE (come root)
a. cd $CRS_HOME/bin
b. ./srvctl config database –d orcl
i. L'output dovrebbe dirti che SPFILE si trova nella posizione del database della shell
c. ./srvctl modifica database –d orcl –p /correct_path/spfileorcl.ora
i. Eseguire il passaggio 8b per verificare che la modifica sia avvenuta.
ii. Verificare la modifica anche sull'altro nodo. Dovresti eseguire questo comando di modifica solo una volta per tutti i nodi.
9. Modificare il contenuto dell'SPFILE.
a. sqlplus /nolog
b. connetti / come sysdba
c. create pfile='/home/oracle/pfile.txt' da spfile='/path_to_spfile/spfileorcl.ora';
d. Aprire il pfile in un editor di testo e apportare le seguenti modifiche:
i. Aggiungere:
1. *.cluster_database=true
2. *.cluster_database_instances=2
3. orcl1.instance_number=1
4. orcl2.instance_number=2
5. orcl1.thread=1
6. orcl2.thread=2
ii. Modificare il parametro *.undo_tablespace in orcl1.undo_tablespace
e. Utilizzare pfile per modificare spfile
i. create spfile='/path_to_spfile/spfileorcl.ora' from pfile='/home/oracle/pfile.txt';
10. Crea un nuovo tablespace UNDO per l'altra istanza.
a. export ORACLE_SID=orcl1
b. sqlplus / come sysdba
c. avvio
d. crea undo tablespace undotbs2 datafile '/path/undotbs02.dbf' dimensione 30m;
e. alter system set undo_tablespace=undotbs2 scope=spfile sid='orcl2';
11. Crea log di ripristino per il nuovo thread
a. alter database add logfile thread 2 group 10 ‘/path/redo10.log’ size 50m;
b. alter database add logfile thread 2 group 11 ‘/path/redo11.log’ size 50m;
c. alter database add logfile thread 2 group 12 ‘/path/redo12.log’ size 50m;
d. alter database enable public thread 2;
12. srvctl database di inizio –d orcl

A questo punto, hai ora installato Clusterware da zero e aggiunto un database esistente. Ora che ho un metodo collaudato per prendere qualsiasi set di file di database e aggiungerli a qualsiasi installazione di clusterware, ho abbassato i miei livelli di nervosismo durante l'esecuzione degli aggiornamenti di Clusterware sui sistemi di produzione. Anche se faccio un pasticcio totale, posso spazzare via Clusterware, reinstallarlo e quindi aggiungere il database a Clusterware e avere il mio database RAC attivo e funzionante in pochissimo tempo.