programmera.net -> oracledba -> normal     för utskrift      info@programmera.net

Steg3: Skapa en databas

1. Skapa en databas på Oracle10g
2. Bestäm var datafiler och tabellutrymmen (Tables Spaces) ska ligga
3. Starta DBCA
4. Skapa databas
5. Välj mall
6. Välj SID
7. Välj tilläggstjänster
8. Välj lösenord
9. Välj lagringsmedia
10. Var ska datafilerna lagras
11. Flash Recovery Area
12. Installera komponeter
13. Parametrar för minne
14. Parametrar för storlek
15. Parametrar för teckenkodning
16. Parametrar för anslutning
17. Definiera kontrollfilerna
18. Definera tabellutrymmena
19. Definera datafilerna
20. Definera redofilerna
21. Skapa mall och script
22. Bekräfta konfigurationen
23. Nu skapas databasen
24. Allt är klart
25. Efter installationen
26. Hur ser scriptfilen ut?
27. Nästa steg

1. Skapa en databas på Oracle10g

På denna sida kommer vi skapa en databas. En databas består av själva datafilerna. För att göra detta krävs att vi har installerat mjukvaran för Oracle10g som beskrivs på  Steg2: Installera mjukvaran .

2. Bestäm var datafiler och tabellutrymmen (Tables Spaces) ska ligga

För att få så bra prestanda som möjligt är det fördelaktigt att placera filerna på olika diskar, eftersom disk-IO oftast blir flaskhalsen för databasen. Genom att använda flera diskar kan vi få databasen att använda diskarna parallellt. Vi väljer att använda totalt 8 diskar enligt följande tabell (varje uXX mountas mot en egen disk):

Path Fil Tabellutrymme Beskrivning
u01/app/oracle/  All Oracles mjukvara  -  All mjukvara som behövs för att köra Oracle installeras på u01. Denna mjukvara kan ligga på samma disk som operativsystemet, eftersom dessa filer inte används lika mycket som t.ex. tabellutrymmena.
u02/oradata/orcl/  control01.ctl, redo0101.log, redo0201.log, redo0301.log, /arch01/, /flash_recovery_area/  -  På disk u02 lagrar vi filer som behövs för backup av databasen. Detta innefattar första kopian av kontrollfilen och den första medlemmen i varje redo-grupp. Senare kommer arkivloggarna att hamna på disk u02. Vi väljer att även lägga mappen som lagrar flashbackfilerna på denna disk.
u03/oradata/orcl/  control02.ctl, redo0102.log, redo0202.log, redo0302.log, /arch02/  -  Disk u03 används också för att lagra diverse backupfiler. Denna disk innehåller huvudsakligen kopior av filerna på disk u02. Vi lagrar här den andra kopian av kontrollfilen och den andra medlemmen i varje redo-grupp. Senare kommer arkivloggarna att hamna på disk u03.
u04/oradata/orcl/  system01.dbf, sysaux01.dbf  SYSTEM, SYSAUX  Dessa tabellutrymmen finns alltid i en databas och används av Oracle själv för att lagra metadata.
u05/oradata/orcl/  temp01.dbf  TEMP  Det temporära tabellutrymmen används för storteringar, ofta hårt belastat.
u06/oradata/orcl/  undotbs01.dbf  UNDOTBS1  Detta tabellutrymmen används för lagra smutsiga block (som anvädns för rollback). Man kan bara ha 1 aktivt UNDO-tabellutrymme (så man behöver egentligen ingen etta i namnet).
u07/oradata/orcl/app1/  app1_data01.dbf, app1_data02.dbf, ... app1_data99.dbf  APP1_DATA01  APP1_DATA01 är ett typiskt namn på ett tabellutrymme för applikationen APP1s data. För att en datafil ska vara lätt att läsa från backup bör den inte vara större än 2GB. Detta innebär att det kan bli ganska många datafiler för en stor databas.
u08/oradata/orcl/app1/  app1_idx01.dbf, app1_idx02.dbf, ... app1_idx99.dbf  APP1_IDX01  Detta är ett typiskt namn på ett tabellutrymme för index för applikationen APP1. Observera att det alltid är bra att lägga index och data på olika diskar eftersom dessa diskar ofta används samtidigt.

För att öka säkerheten kan man anvädnda RAID0+1 som speglar varje disk. Detta är också en bra lösning ur prestandasynpunkt jämfört med t.ex. RAID5. RAID0+1 kräver dock 2*8=16 diskar.

  • OBS: Glöm inte att ändra ägaren med "chown" för de diskar du vill använda, annars kan DBCA inte skapa filer på dessa diskar.
För att ändra ägaren på disk "u02", skriv:
[root@dev1]# chown -R oracle:oinstall /u02
Gör nu detta för alla diskar. När du är klar kan det se ut såhär:
[root@dev1]# ls -l /
drwxr-xr-x    2 root   root      4096 Jun  2 20:36 bin
drwxr-xr-x    4 root   root      1024 Jun  2 18:43 boot
drwxr-xr-x    9 root   root      4840 Jul  3 17:59 dev
drwxr-xr-x   86 root   root     12288 Jul  3 17:59 etc
drwxr-xr-x    6 root   root      4096 Jun  6 22:12 home
...
drwxr-xr-x    3 oracle oinstall  4096 Jun  7 14:47 u01
drwxr-xr-x    3 oracle oinstall  4096 Jul  5 12:25 u02
drwxr-xr-x    3 oracle oinstall  4096 Jul  5 12:26 u03
drwxr-xr-x    3 oracle oinstall  4096 Jul  5 12:26 u04
drwxr-xr-x    3 oracle oinstall  4096 Jul  5 12:26 u05
drwxr-xr-x    3 oracle oinstall  4096 Jul  5 12:27 u06
drwxr-xr-x    3 oracle oinstall  4096 Jul  5 12:27 u07
drwxr-xr-x    3 oracle oinstall  4096 Jul  5 12:27 u08
...

3. Starta DBCA

Vi skapar databasen genom att starta DBCA (DataBase Configuration Assistent):
[olle@dev1]$ su - oracle
[olle@dev1]$ dbca
Nu ser vi ett välkomstfönster:



Klicka next.

4. Skapa databas

I detta fönster ska vi välja att skapa en databas:



Klicka next.

5. Välj mall

I detta fönster kan vi välja en typisk uppsättning, vi väljer "custom":



Klicka next.

6. Välj SID

Här ska du ge databasen ett namn, något som kallas SID (System IDentifier), detta namn måste vara unikt på maskinen. Vi väljer "orcl" som är default:



Klicka next.

7. Välj tilläggstjänster

I detta fönster kan vi välja om vi vill installera tilläggstjänster:

  1. Oracle Enterprise Manager: OEM är ett webbbaserat administrationssystem för Oracle10g. OEM är alltid braatt ha, så vi väljer detta alternativ.
  2. E-mail: Var databasen ska skicka mail om något oväntat händer. Vi väntar med detta.
  3. Backup: Här kan man konfigurera daglig backup. Vi väljer att vänta med detta.
Vi väljer OEM:



Klicka next.

8. Välj lösenord

Här kan man välja att ha samma lösenord för alla konton, eller att ha olika för varje konto:



Skriv in ett lösenord och klicka next.

9. Välj lagringsmedia

Det finns 3 alternativa lagringsmedia:

  1. Filsystem: Det vanligaste sättet att lagra data är att låta Oracle utnyttja maskinens filsystem. Det är detta vi ska använda i denna installation.
  2. ASM: Ett filsystem som bara kan läsas och uppdateras av Oracle. ASM är bra för RAC eftersom ASM fungerar bra tillsammans med kluster.
  3. RAW: Kan inte rekommenderas eftersom det är problematiskt att administrera.
Vi väljer att lagra data i ett vanligt filsystem:



Klicka next.

10. Var ska datafilerna lagras

Här har vi också 3 alternativ:

  1. Placera filer enligt mall: Använd databasmallens filplacering. Vi kan ändra filernas placering i ett senare steg, så det spelar inte någon roll var filerna placeras enligt mallen.
  2. Använd en mapp för alla filer: Här kan vi ge en sökväg där alla filer kommer att placeras. Även här kommer vi kunna ändra sökvägen för enskilda filer i ett senare steg.
  3. Låt Oracle hantera filerna: Med detta val låter du helt enkelt Oracle själv ta hand om alla filer. Bra för dig som har en mindre installation och framför allt vill slippa (för dig) onödigt arbete.
Vi väljer att använda sökvägar från mallen (men vi kommer att ändra sökvägarna senare):



Välj och klicka next.

11. Flash Recovery Area

Nedan kan vi utföra följande:

  • Definiera en flash recovery area. Vi använder disk "u02" till detta, och viker hela 30GB till detta utrymme. Riktlinjen är att flash recovery area ska vara dubbelt så stor som den beräknade storleken på applikationernas sammanlagda datafiler. Eftersom jag beräknar att applikationen APP1 kommer bli c.a. 15GB sätter jag storleken till 30GB.
  • Välja att skapa arkivloggar. Jag har blivit rådd att man ska vänta med att skapa arkivloggar till ett senare skede, eftersom de kan ställa till problem om de skapas i samband med databasen. Vi väntar alltså med detta.
Se nedan:



Klicka next.

12. Installera komponeter

Här kan vi välja vilka komponenter som ska installeras. Vi väljer allt utom "Oracle Spatial":



Klicka next.

13. Parametrar för minne

Här kan man sätta parametrar som bestämmer hur mycket minne instansen ska få. Defaultvärdet, att ta 40% av maskinens totala minne tycker jag är utmärkt för en dedikerad databasserver. Tar man mer än 50% löper man risken att operativsystemet börjar swappa, vilket är katastrofalt för prestandan:



14. Parametrar för storlek

Här kan man sätta vilken blockstorlek som kommer att användas i databasen. Default är 8kB men vi väljer 16kB eftersom det vanligtvis ökar prestandan.



15. Parametrar för teckenkodning

Här kan man sätta parametrar för teckenkodning. Unicode är att föredra, eftersom man då inte behöver fundera över vilka språk kan/inte kan lagras:



16. Parametrar för anslutning

Här kan man välja om vi vill skapa databasen som "dedicated server mode" eller "shared server mode". Vi väljer "dedicated server mode" som är default:



17. Definiera kontrollfilerna

Kontrollfilerna placeras på disk "u02" och "u03". Kontrollfilen är den viktigaste filen i databasen, så den måste ha en kopia på en annan disk. Se bild:



18. Definera tabellutrymmena

Vi använder följande tabellutrymmen:



Som synes har jag adderat "APP1_DATA01" och "APP1_IDX01" för den påhittade applikationen "APP1".

19. Definera datafilerna

Datafilerna placeras enligt planen som beskrevs i början av detta dokument. Vi utnyttjar diskarna "u04"-"u08" för att få hög parallellitet i IO mot disk:



20. Definera redofilerna

Vi skapar 3 redogrupper, med 2 medlemmar i varje grupp där den första medlemmen ligger på disk "u02" och den andra på "u03" för att få extra säkerhet. Nedan visas grupp ett:



Och nedan visas grupp 3:



21. Skapa mall och script

Här har man möjligheten att skapa följande:

  • Databas: Om man inte väljer detta alternativ kommer alltså databasen inte att skapas. Varför vill man det? Jo du är kanske bara är intresserad av att skapa ett script som kan skapa databasen vid ett senare tillfälle.
  • Mall: Väljer man detta alternativ skapas en mall vilken du kan använda nästa gång du vill skapa en databas.
  • Script: Väler man detta alternativ skapas ett script som du kan använda för att skapa en databas på någon annan dator.
Vi väljer alla alternativ:



Klicka finish.

22. Bekräfta konfigurationen

Följande bild ger en sammanfattning av hur databasen kommer att se ut:



Klicka ok och installationen tar fart.

23. Nu skapas databasen

Nu är det dags att ta en kaffe, för detta kan ta mer än en timma:



24. Allt är klart

När installationen är klar ser du följande fönster:



Klicka exit.

25. Efter installationen

Vi testar att logga in på databasen:
[olle@dev1]$ sqlplus sys/oracle as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Wed Jul 5 17:54:12 2006

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

26. Hur ser scriptfilen ut?

När vi skapade databasen genererades flera scriptfiler. En av de instressantaste är "CreateDB.sql" som innehåller själva "CREATE DATABASE"-kommandot:

connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/orcl/scripts/CreateDB.log
startup nomount pfile="/u01/app/oracle/admin/orcl/scripts/init.ora";
CREATE DATABASE "orcl"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE '/u04/oradata/orcl/system01.dbf' SIZE 300M REUSE  
     AUTOEXTEND ON NEXT  10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u04/oradata/orcl/sysaux01.dbf' SIZE 120M REUSE 
     AUTOEXTEND ON NEXT  10240K MAXSIZE UNLIMITED
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/u05/oradata/orcl/temp01.dbf' SIZE 20M REUSE 
     AUTOEXTEND ON NEXT  640K MAXSIZE UNLIMITED
SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE '/u06/oradata/orcl/undotbs01.dbf' SIZE 200M REUSE 
     AUTOEXTEND ON NEXT  5120K MAXSIZE UNLIMITED
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/u02/oradata/orcl/redo0101.log', '/u03/oradata/orcl/redo0102.log') SIZE 51200K,
        GROUP 2 ('/u02/oradata/orcl/redo0201.log', '/u03/oradata/orcl/redo0202.log') SIZE 51200K,
        GROUP 3 ('/u02/oradata/orcl/redo0301.log', '/u03/oradata/orcl/redo0302.log') SIZE 51200K
USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY "&&systemPassword";
spool off
Filen "CreateDBFiles.sql" skapar de tabellutrymmen som jag definierat själv (APP1_DATA01, APP1_IDX01):

connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/orcl/scripts/CreateDBFiles.log
CREATE SMALLFILE TABLESPACE "APP1_DATA01" LOGGING DATAFILE '/u07/oradata/orcl/app1_data01.dbf' 
        SIZE 5M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO;
CREATE SMALLFILE TABLESPACE "APP1_IDX01" LOGGING DATAFILE '/u08/oradata/orcl/app1_idx01.dbf' 
        SIZE 5M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO;
spool off

27. Nästa steg

Gå till:  Steg4: Lyssnare .