En gang i mellem, uanset hvilken virksomhed jeg arbejder for, bliver jeg bedt om at oprette en ny produktionsdatabase. Jeg arbejdede på netop denne opgave i dag, da jeg begyndte at tænke på, hvor meget arbejde det var at skabe en helt ny database før i tiden, hvor meget DBCA håndterer for os i dag, og hvor meget der stadig er tilbage at gøre.
I øjeblikket har vi en udviklings- og testdatabase til vores tredjepartsapplikation. Vi vil udrulle applikationen til produktion i slutningen af ugen, så jeg fik til opgave at opsætte en produktionsversion af denne database. Produktionsdatabaseserveren er en 3-node RAC-klynge, som allerede er sat op for mig, fordi vi i øjeblikket kører to andre databaser på klyngen. Så dette sparer mig for trinnet med at installere og konfigurere Grid Infrastructure og RDBMS-softwaren. Men da jeg begyndte at oprette databasen, kom jeg til at tænke på, hvor meget arbejde jeg stadig havde tilbage at gøre. Og da vi sjældent opretter helt nye produktionsdatabaser, er nogle af disse opgaver ikke så let at huske som andre. Nedenfor er de trin, jeg gik igennem i dag for at få produktionsdatabasen op at køre.
1. Ved at bruge dev/test-databaserne som min guide bestemte jeg mine hukommelses- og disklagerkrav.
2. Jeg bekræftede, at produktions-RAC-klyngen havde nok hukommelse til at understøtte de nye databaseforekomster.
3. Jeg arbejdede sammen med min Storage Admin for at få det nødvendige disklager monteret på klyngen.
4. Jeg tændte derefter DBCA'en for at oprette den helt nye database. Jeg gik gennem guiden og udfyldte passende værdier og lod derefter DBCA gøre sin magi.
5. Jeg kan virkelig ikke lide, hvordan DBCA'en lader mig oprette/allokere redo-logfiler, så efter databasen blev oprettet, oprettede jeg mine egne redo-log-grupper (multiplekset selvfølgelig) og droppede de redo-loggrupper, som DBCA'en oprettede for mig.
6. Jeg kan aldrig finde ud af at tilføje en 3. kontrolfil i DBCA. Så efter databasen er oprettet, lukker jeg den ned, laver en 3. kopi af kontrolfilen, opdaterer SPFILEN med at der nu er 3 kontrolfiler og starter databasen.
7. DBCA placerede min adgangskodefil og spfile på steder, der ikke er optimale for mig. Så jeg flyttede dem. I $ORACLE_HOME/dbs oprettede jeg softlinks, der peger på de nye steder. Så brugte jeg srvctl til at opdatere spfile-placeringen i CRS.
8. Jeg har aldrig en gang brugt DBCA til at konfigurere arkivlogtilstand. Så jeg springer altid den del af DBCA over. Derudover kan jeg godt lide ideen om ikke at arkivere mine redo-logfiler, når DBCA'en opretter databasen for at fremskynde den proces. Så på dette tidspunkt konfigurerede jeg arkivlogning for databasen.
9. Databasen vil blive brugt med en Standby, og jeg vil gerne sikre, at jeg har en log switch mindst én gang i timen, så jeg indstiller ARCHIVE_LAG_TARGET til 3600.
På dette tidspunkt er bare bones-databasen sat op og klar til brug. Nu er det tid til at få læst databasen til vores applikation.
10. Jeg konfigurerer alle nødvendige tablespaces til applikationen.
11. Jeg konfigurerer alle nødvendige brugere til applikationen.
12. Ændrede databasens standard tablespace til en af dem, jeg oprettede ovenfor. Derefter droppede BRUGERS tablespace.
13. Da dette er en RAC-database, skal vi konfigurere tjenesten for, at applikationen kan oprette forbindelse.
14. Nu hvor databasen er klar til applikationen, skal vi konfigurere Standby-databasen. Dette blev nemt gjort ved at bruge guiden Tilføj Standby-database i Grid Control.
15. Vores Standby-database er på en 2-node RAC-klynge. Guiden Tilføj Standby-database opretter en enkelt-instans-database, så guiden Konverter til klyngedatabase blev kørt i Grid Control for at gøre Standby til en RAC-database.
Endelig var det sidste trin at sikre, at eventuelle vedligeholdelsesopgaver blev udvidet til den nye database. For eksempel skulle cron-job til at slette gamle logfiler ændres for den nye instans.
Wow! Det er meget arbejde at oprette en indledende database i vores produktionsmiljø. Som jeg sagde i begyndelsen, gør DBCA en masse arbejde for os nu. Og Grid Control automatiserer også meget af standby-oprettelsesarbejdet. Men der er stadig mange skridt involveret.