programmera.net -> oracledba -> normal för utskrift | info@programmera.net |
Steg3: Skapa en databas
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.
För att ändra ägaren på disk "u02", skriv:
Gör nu detta för alla diskar. När du är klar kan det se ut såhär:
[root@dev1]# chown -R oracle:oinstall /u02
[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):
Nu ser vi ett välkomstfönster:
[olle@dev1]$ su - oracle
[olle@dev1]$ dbca
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:
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:
Vi väljer att lagra data i ett vanligt filsystem:
Klicka next.
10. Var ska datafilerna lagras
Här har vi också 3 alternativ:
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:
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:
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:
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/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
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 .