sql >> Databasteknik >  >> RDS >> Oracle

Helt ny produktionsdatabas

Då och då, oavsett vilket företag jag arbetar för, blir jag ombedd att skapa en ny produktionsdatabas. Jag arbetade med just den här uppgiften idag när jag började fundera på hur mycket arbete det var att skapa en helt ny databas i det förflutna, hur mycket DBCA hanterar för oss idag och hur mycket som fortfarande är kvar att göra.

För närvarande har vi en utvecklings- och testdatabas för vår tredjepartsapplikation. Vi kommer att rulla ut applikationen till produktion i slutet av veckan så jag fick i uppdrag att sätta upp en produktionsversion av denna databas. Produktionsdatabasservern är ett 3-nods RAC-kluster som redan har ställts in för mig eftersom vi för närvarande kör två andra databaser på klustret. Så detta sparar mig steget att installera och konfigurera Grid Infrastructure och RDBMS-mjukvaran. Men när jag började sätta upp databasen började jag tänka på hur mycket arbete jag fortfarande hade kvar att göra. Och eftersom vi sällan skapar helt nya produktionsdatabaser är vissa av dessa uppgifter inte lika lätta att komma ihåg som andra. Nedan följer stegen jag gick igenom idag för att få igång produktionsdatabasen.

1. Med hjälp av dev/test-databaserna som min guide bestämde jag mina krav på minne och disklagring.
2. Jag verifierade att produktions-RAC-klustret hade tillräckligt med minne för att stödja de nya databasinstanserna.
3. Jag arbetade med min lagringsadministratör för att få den nödvändiga disklagringen monterad på klustret.
4. Jag startade sedan DBCA för att skapa den helt nya databasen. Jag gick igenom guiden och fyllde i lämpliga värden och lät sedan DBCA göra sin magi.
5. Jag gillar verkligen inte hur DBCA låter mig skapa/tilldela redo-loggar så efter att databasen skapats skapade jag mina egna redo-logg-grupper (multiplexerade förstås) och släppte redo-logggrupperna som DBCA skapade åt mig.
6. Jag kan aldrig komma på hur man lägger till en tredje kontrollfil i DBCA. Så efter att databasen skapats stänger jag ner den, gör en tredje kopia av kontrollfilen, uppdaterar SPFILEN med att det nu finns 3 kontrollfiler och startar databasen.
7. DBCA placerade min lösenordsfil och spfile på platser som inte är optimala för mig. Så jag flyttade dem. I $ORACLE_HOME/dbs skapade jag mjuka länkar som pekar på de nya platserna. Sedan använde jag srvctl för att uppdatera spfileplatsen i CRS.
8. Jag har aldrig en gång använt DBCA för att ställa in arkivloggläge. Så jag hoppar alltid över den delen av DBCA. Dessutom gillar jag idén att inte arkivera mina redo-loggar när DBCA skapar databasen för att påskynda den processen. Så vid det här laget ställer jag in arkivloggning för databasen.
9. Databasen kommer att användas med en Standby och jag vill se till att jag har en loggväxel minst en gång i timmen, så jag ställer in ARCHIVE_LAG_TARGET till 3600.

Vid denna tidpunkt är databasen för bare bones inställd och klar för användning. Nu är det dags att läsa databasen för vår applikation.

10. Jag ställer in alla nödvändiga tabellutrymmen för programmet.
11. Jag ställer in alla nödvändiga användare för applikationen.
12. Ändrade databasens standardtabellutrymme till en av de jag skapade ovan. Tappa sedan tabellutrymmet ANVÄNDARE.
13. Eftersom detta är en RAC-databas måste vi ställa in tjänsten för att applikationen ska ansluta.

14. Nu när databasen är klar för applikationen måste vi ställa in Standby-databasen. Detta gjordes enkelt genom att använda guiden Add Standby Database i Grid Control.
15. Vår standby-databas finns på ett RAC-kluster med 2 noder. Guiden Add Standby Database skapar en databas med en instans så att guiden Konvertera till klusterdatabas kördes i Grid Control för att göra Standby till en RAC-databas.

Slutligen var det sista steget att säkerställa att eventuella underhållsuppgifter utökades till den nya databasen. Till exempel behövde cron-jobb för att ta bort gamla loggfiler modifieras för den nya instansen.

Wow! Det är mycket arbete att skapa en första databas i vår produktionsmiljö. Som jag sa i början, gör DBCA mycket arbete för oss nu. Och Grid Control automatiserar också mycket av standby-skapandet. Men det är fortfarande många steg inblandade.


  1. Hur NTILE() fungerar i SQL Server

  2. Lägg till en CHECK-begränsning till en befintlig tabell i SQL Server (T-SQL)

  3. Hur DATE_FORMAT() fungerar i MariaDB

  4. En introduktion till Databas High Availability för MySQL &MariaDB