sql >> Databasteknik >  >> RDS >> Oracle

Installera RAC för en databas med datafiler

För inte så länge sedan behövde jag uppgradera Oracle Clusterware och RDBMS från 11.1.0.7 till 11.2.0.2. Jag har massor av erfarenhet av Oracle RDBMS-programvaran, men jag misstänker att jag är som de flesta DBA:s eftersom min Clusterware-upplevelse inte är på samma nivå som min RDBMS-upplevelse. Så även om jag inte var rädd för att uppgradera RDBMS-programvaran, närmade jag mig Clusterware-uppgraderingen med en viss grad av nervositet. Denna oro föddes visserligen ur en lägre grad av erfarenhet av produkten. Så innan jag började med produktionen testade jag, testade och testade så mycket jag kunde.
Uppgraderingen av Clusterware gick smidigt tack vare massor av planering och testning.

Efter uppgraderingen reflekterade jag över vad som gick rätt och vad som gick fel, och vad jag kunde göra annorlunda i framtiden. Det slog mig att jag kunde ha totalt skruvat ihop Clusterware-uppgraderingen, blåst bort Clusterware-mjukvaran och ändå kunnat installera Clusterware från början och kunnat få igång min RAC-databas. Det här inlägget kommer att visa stegen jag tog i en testmiljö för att göra den här uppgiften. Så om du befinner dig med en helt skruvad uppgradering eller installation av Clusterware är det ingen rädsla eftersom så länge du fortfarande har dina databasfiler, kommer du att kunna få igång saker och ting. Om din Clusterware-uppgradering misslyckades måste du åtgärda grundorsaken till felet innan du fortsätter. Så om du hade en dålig klustersammankopplingskonfiguration eller ogiltigt lagringsutrymme för dina röstningsdiskar, måste du åtgärda dessa problem och sedan kan du följa dessa steg.

Jag har en giltig databas med alla mina datafiler i delad lagring tillgänglig för alla noder i klustret. Mitt test har två noder för klustret. Det antas också att databasen stängdes av rent. Detta dokument antar att databasens namn är ORCL.

Obs:Om din databas som du lägger till i RAC redan var en del av RAC, kan du hoppa över steg 9-11 nedan. Steg 9-11 krävs om du också konverterar databasen från en eninstansdatabas till en Oracle RAC-databas samtidigt som du lägger till den i Clusterware.

Steg
1. Ta en kall säkerhetskopia av dina databasdatafiler. Om något händer kan du alltid återställa från säkerhetskopian genom att helt enkelt kopiera filerna från media.
2. Se till att noderna rensas upp från Clusterware-installationen/uppgraderingen. Se Metalink Note 239998.1 för detaljerade instruktioner om det behövs.
3. Installera Oracle Clusterware korrekt. Du borde ha åtgärdat problemen som gjorde att det här steget misslyckades i första hand.
a. Kontrollera att klustret är igång.
i. $CRS_HOME/bin/crsctl statusserver
1. Alla noder i klustret ska vara ONLINE.
4. Installera Oracle RDBMS på klustret.
a. OUI bör upptäcka Clusterware och erbjuda att utföra en RAC-installation.
5. Starta DBCA för att skapa en skaldatabas. Vi använder DBCA för att ställa in allt i CRS åt oss.
a. Välj alternativen för att skapa en RAC-databas.
b. Använd samma namn som din befintliga databas.
c. Skapa skaldatabasen på alla noder i klustret.
d. Använd en gemensam plats för databasfilerna, men skriv inte över dina befintliga datafiler.
6. Stäng av skaldatabasen
a. srvctl stoppa databasen –d orcl
7. Ställ in din SPFILE
a. Om du har din gamla databas SPFILE:
i. Placera filen på delad disk.
ii. Uppdatera $ORACLE_HOME/dbs/initorcl.ora för att peka på rätt SPFILE-plats. Gör detta på alla noder
b. Om du inte har en SPFILE, skapa en PFILE från början och använd sedan kommandot CREATE SPFILE FROM PFILE för att skapa en SPFILE.
i. Se till att parametern CONTROL_FILES pekar på rätt plats, inte skaldatabasens kontrollfiler.
c. (Valfritt) Om du har en lösenordsfil, kopiera den till delad lagring och uppdatera sedan mjuklänken i $ORACLE_HOME/dbs (på alla noder) för att peka på lösenordsfilen. Om du inte har en lösenordsfil kan du skapa en senare om så önskas.
8. Uppdatera CRS med SPFILE-plats (som root)
a. cd $CRS_HOME/bin
b. ./srvctl config databas –d orcl
i. Utdata bör berätta för dig att SPFILE finns på platsen för skaldatabasen
c. ./srvctl ändra databas –d orcl –p /correct_path/spfileorcl.ora
i. Gör steg 8b för att verifiera att ändringen har skett.
ii. Verifiera ändringen på den andra noden också. Du ska bara behöva köra det här modifieringskommandot en gång för alla noder.
9. Ändra SPFILE:s innehåll.
a. sqlplus /nolog
b. ansluta / som sysdba
c. skapa pfile=’/home/oracle/pfile.txt’ från spfile=’/path_to_spfile/spfileorcl.ora’;
d. Öppna p-filen i en textredigerare och gör följande ändringar:
i. Lägg till:
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. Ändra parametern *.undo_tablespace till orcl1.undo_tablespace
e. Använd pfilen för att ändra spfilen
i. skapa spfile=’/path_to_spfile/spfileorcl.ora’ från pfile=’/home/oracle/pfile.txt’;
10. Skapa ett nytt UNDO-tabellutrymme för den andra instansen.
a. exportera ORACLE_SID=orcl1
b. sqlplus / as sysdba
c. uppstart
d. skapa ångra tabellutrymme undotbs2 datafil '/path/undotbs02.dbf' storlek 30m;
e. ändra systemuppsättning undo_tablespace=undotbs2 scope=spfile sid=’orcl2′;
11. Skapa omloggar för den nya tråden
a. ändra databas lägg till loggfil tråd 2 grupp 10 '/path/redo10.log' storlek 50m;
b. ändra databas lägg till loggfil tråd 2 grupp 11 '/path/redo11.log' storlek 50m;
c. ändra databas lägg till loggfil tråd 2 grupp 12 '/path/redo12.log' storlek 50m;
d. ändra databas aktivera offentlig tråd 2;
12. srvctl starta databasen –d orcl

Vid det här laget har du nu installerat Clusterware från början och lagt till en befintlig databas till den. Nu när jag har en beprövad metod att ta vilken uppsättning databasfiler som helst och lägga till dem i alla klusterprograminstallationer, har jag sänkt min nervositetsnivå när jag utför Clusterware-uppgraderingar på produktionssystem. Även om jag gör en total röra av saker, kan jag blåsa bort Clusterware, installera om det och sedan lägga till databasen i Clusterware och få min RAC-databas igång på nolltid.


  1. Effekten av query_post_execution_showplan Extended Event i SQL Server 2012

  2. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Kommunikationslänk misslyckades

  3. Använda SQL Server Profiler | SQL Server Performance Felsökning -5

  4. MySQL:Hur går jag med i samma bord flera gånger?