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:
- Oracle Enterprise Manager: OEM är ett webbbaserat administrationssystem för Oracle10g. OEM är alltid braatt ha, så vi väljer detta alternativ.
- E-mail: Var databasen ska skicka mail om något oväntat händer. Vi väntar med detta.
- 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:
- 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.
- 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.
- 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:
- 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.
- 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.
- 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 .