Nie tak dawno temu musiałem uaktualnić Oracle Clusterware i RDBMS z 11.1.0.7 do 11.2.0.2. Mam mnóstwo doświadczenia z oprogramowaniem Oracle RDBMS, ale podejrzewam, że jestem jak większość administratorów baz danych, ponieważ moje doświadczenie w Clusterware nie jest na tym samym poziomie, co moje doświadczenie w RDBMS. Więc chociaż nie obawiałem się aktualizacji oprogramowania RDBMS, podszedłem do aktualizacji Clusterware z pewną dozą nerwowości. Trzeba przyznać, że ten niepokój zrodził się z niższego stopnia doświadczenia z produktem. Dlatego przed przystąpieniem do produkcji testowałem, testowałem i testowałem tyle, ile mogłem.
Aktualizacja Clusterware przebiegła sprawnie dzięki wielu planom i testom.
Po aktualizacji zastanawiałem się, co poszło dobrze, a co poszło nie tak i co mogę zrobić inaczej w przyszłości. Przyszło mi do głowy, że mogłem całkowicie schrzanić aktualizację Clusterware, zniszczyć oprogramowanie Clusterware, a mimo to być w stanie zainstalować Clusterware od zera i uruchomić moją bazę danych RAC. Ten post pokaże kroki, które podjąłem w środowisku testowym, aby wykonać to zadanie. Więc jeśli znajdziesz się z całkowicie schrzanioną aktualizacją lub instalacją Clusterware, nie ma obaw, ponieważ tak długo, jak masz pliki bazy danych, będziesz mógł wszystko uruchomić. Jeśli aktualizacja Clusterware nie powiodła się, przed kontynuowaniem będziesz musiał naprawić główną przyczynę niepowodzenia. Jeśli więc masz złą konfigurację połączenia klastra lub nieprawidłową pamięć dla dysków głosujących, musisz rozwiązać te problemy, a następnie wykonać następujące kroki.
Mam poprawną bazę danych, w której wszystkie moje pliki danych w pamięci współużytkowanej są dostępne dla wszystkich węzłów w klastrze. Mój test ma dwa węzły dla klastra. Zakłada się również, że baza danych została całkowicie zamknięta. W tym artykule przyjęto, że nazwa bazy danych to ORCL.
Uwaga:Jeśli baza danych, którą dodajesz do RAC, była już częścią RAC, możesz pominąć poniższe kroki 9-11. Kroki 9-11 są wymagane, jeśli podczas dodawania do Clusterware konwertujesz również bazę danych z bazy danych o jednym wystąpieniu do bazy danych Oracle RAC.
Kroki
1. Wykonaj zimną kopię zapasową plików danych bazy danych. Jeśli coś się stanie, zawsze możesz przywrócić dane z kopii zapasowej, po prostu kopiując pliki z nośnika.
2. Upewnij się, że węzły zostały wyczyszczone po instalacji/uaktualnieniu Clusterware. W razie potrzeby zapoznaj się z Notatką Metalink 239998.1, aby uzyskać szczegółowe instrukcje.
3. Zainstaluj poprawnie Oracle Clusterware. W pierwszej kolejności powinieneś naprawić problemy, które spowodowały niepowodzenie tego kroku.
Sprawdź, czy klaster jest uruchomiony i działa.
ja. Serwer stanu $CRS_HOME/bin/crsctl
1. Wszystkie węzły w klastrze powinny być w trybie ONLINE.
4. Zainstaluj Oracle RDBMS w klastrze.
OUI powinien wykryć Clusterware i zaproponować wykonanie instalacji RAC.
5. Uruchom DBCA, aby utworzyć bazę danych powłoki. Użyjemy DBCA, aby skonfigurować dla nas wszystko w CRS.
Wybierz opcje tworzenia bazy danych RAC.
b. Użyj tej samej nazwy, co Twoja istniejąca baza danych.
c. Utwórz bazę danych powłoki na wszystkich węzłach w klastrze.
d. Użyj wspólnej lokalizacji dla plików bazy danych, ale nie zastępuj istniejących plików danych.
6. Zamknij bazę danych powłoki
srvctl stop baza danych –d orcl
7. Skonfiguruj swój SPFILE
Jeśli masz SPFILE swojej starej bazy danych:
ja. Umieść plik na dysku współdzielonym.
ii. Zaktualizuj $ORACLE_HOME/dbs/initorcl.ora, aby wskazywał poprawną lokalizację SPFILE. Zrób to na wszystkich węzłach
b. Jeśli nie masz SPFILE, utwórz plik PFILE od podstaw, a następnie użyj polecenia CREATE SPFILE FROM PFILE, aby utworzyć SPFILE.
i. Upewnij się, że parametr CONTROL_FILES wskazuje prawidłową lokalizację, a nie pliki kontrolne bazy danych powłoki.
c. (Opcjonalnie) Jeśli masz plik haseł, skopiuj go do współużytkowanej pamięci masowej, a następnie zaktualizuj dowiązanie programowe w $ORACLE_HOME/dbs (we wszystkich węzłach), aby wskazywało plik haseł. Jeśli nie masz pliku haseł, możesz utworzyć go później, jeśli chcesz.
8. Zaktualizuj CRS z lokalizacją SPFILE (jako root)
cd $CRS_HOME/bin
b. ./srvctl config baza danych –d orcl
i. Dane wyjściowe powinny informować, że SPFILE znajduje się w lokalizacji bazy danych powłoki
c. ./srvctl modyfikuj bazę danych –d orcl –p /poprawna_ścieżka/spfileorcl.ora
i. Wykonaj krok 8b, aby sprawdzić, czy nastąpiła zmiana.
ii. Sprawdź również zmianę w drugim węźle. To polecenie modyfikacji należy uruchomić tylko raz dla wszystkich węzłów.
9. Zmodyfikuj zawartość SPFILE.
sqlplus /nolog
b. połącz / jako sysdba
c. utwórz pfile=’/home/oracle/pfile.txt’ z spfile=’/ścieżka_do_spfile/spfileorcl.ora’;
re. Otwórz plik pfile w edytorze tekstu i wprowadź następujące zmiany:
ja. Dodaj:
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. Zmień parametr *.undo_tablespace na orcl1.undo_tablespace
e. Użyj pfile, aby zmienić spfile
ja. utwórz spfile=’/ścieżka_do_spfile/spfileorcl.ora’ z pfile=’/home/oracle/pfile.txt’;
10. Utwórz nową przestrzeń tabel UNDO dla drugiej instancji.
eksport ORACLE_SID=orcl1
b. sqlplus / jako sysdba
c. uruchomienie
re. utwórz undo tablespace undobs2 plik danych „/ścieżka/undotbs02.dbf” rozmiar 30m;
mi. zmień zestaw systemowy undo_tablespace=undotbs2 scope=spfile sid=’orcl2′;
11. Utwórz logi powtórzeń dla nowego wątku
a. zmień bazę danych dodaj logfile thread 2 group 10 ‘/path/redo10.log’ rozmiar 50m;
b. zmień bazę danych dodaj logfile thread 2 group 11 ‘/path/redo11.log’ rozmiar 50m;
c. zmień bazę danych dodaj logfile thread 2 group 12 ‘/path/redo12.log’ size 50m;
re. zmienić bazę danych włączyć wątek publiczny 2;
12. srvctl startowa baza danych –d orcl
W tym momencie zainstalowałeś Clusterware od podstaw i dodałeś do niego istniejącą bazę danych. Teraz, gdy mam sprawdzoną metodę pobierania dowolnego zestawu plików bazy danych i dodawania go do dowolnej instalacji oprogramowania klastrowego, obniżyłem swój poziom nerwowości podczas wykonywania aktualizacji oprogramowania klastrowego w systemach produkcyjnych. Nawet jeśli zrobię totalny bałagan, mogę zdmuchnąć Clusterware, zainstalować go ponownie, a następnie dodać bazę danych do Clusterware i błyskawicznie uruchomić moją bazę danych RAC.