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

Steg1: Konfigurera Red Hat Linux

1. Konfigurera Red Hat Enterprise Linux för Oracle10g
2. Systemkrav: Parametrar
3. Skapa användare
4. Konfigurera den nya användaren "oracle"
5. Skapa filstruktur för databasens mjukvara
6. Uppdatera /home/oracle/.bash_profile
7. Bestäm hur databasens data ska lagras
8. Nästa steg

1. Konfigurera Red Hat Enterprise Linux för Oracle10g

På denna sida ska vi konfigurera RHE Linux för Oracle10g.

2. Systemkrav: Parametrar

Nu ska vi kolla att systemparametrarna är satta till acceptabla värden. Man behöver bara skruva upp parametrar som är för lågt satta:
[olle@dev1]$  sysctl -a | grep shm
kernel.shmmni = 4096       (minst 4096)
kernel.shmall = 2097152    (minst 2097152)
kernel.shmmax = 33554432   (ska vara halva minnet i bytes)
[olle@dev1]$  sysctl -a | grep sem
kernel.sem = 250        32000   32      128 (ska vara 250,32000,100,128)
[olle@dev1]$   sysctl -a | grep rmem
net.core.rmem_default = 110592 (minst 262144)
net.core.rmem_max = 131071     (minst 262144)
[olle@dev1]$   sysctl -a | grep wmem
net.core.wmem_default = 110592 (minst 262144)
net.core.wmem_max = 131071     (minst 262144)
[olle@dev1]$  sysctl -a | grep file-max
fs.file-max = 102756           (minst 65536)
Vi ser att i mitt fall är några satta för lågt, detta kan man fixa genom att uppdatera filen /etc/sysctl.conf.

  • "shmmax" står för "shared memory max" och bestämmer den maximala storleken på minnesblock som en enskild process får allokera. För att oracle ska ha mycket minne att spela med måste denna parameter skruvas upp till halva maskinens fysiska minne. OBS: På en maskin med en 32-bitarsprocessor så ska denna gräns ligga på max 2GB, eftersom adressrymden för ett sådant system är 4GB.
Vi kollar hur mycket minne som finns i denna maskin:
[olle@dev1]$  free
             total       used       free     shared    buffers     cached
Mem:       1035528     790548     244980          0     164584     144012
-/+ buffers/cache:     481952     553576
Swap:      2040244        136    2040108

Mitt minne är 1GB, men shmmax är satt till endast 33 MB. Jag bör alltså uppdatera "shmmax" till 500 MB för att få ut mer kräm ur min instans. Ok, nu är det dags att uppdatera filen /etc/sysctl.conf. Jag skriver över endast de parametrar som har för låga värden, vilket i mitt fall är:

kernel.shmmax = 530190366
kernel.sem = 250 32000 100 128
rmem_default = 262144
rmem_max = 262144
wmem_default = 262144
wmem_max = 262144
Nedan visas ett exempel på hur alla värden uppdateras:

kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 530190366
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
rmem_default = 262144
rmem_max = 262144
wmem_default = 262144
wmem_max = 262144

3. Skapa användare

Vi vill installera och köra databasen som en speciell användare "oracle". Först skapar vi två grupper "oinstall" och "dba". Gör följandeöljande:
[olle@dev1]$ groupadd dba	
[olle@dev1]$ groupadd oinstall
Nu kollar vi om användaren "oracle" finns, om inte så skapar vi den:
[olle@dev1]$ id oracle
id: oracle: No such user
[olle@dev1]$ useradd -g oinstall -G dba oracle
[olle@dev1]$ id oracle
uid=501(oracle) gid=504(oinstall) groups=504(oinstall),503(dba)
[olle@dev1]$ passwd oracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
"-g" betyder primär grupp, "-G" är sekundär grupp.

4. Konfigurera den nya användaren "oracle"

Kontrollera hur många öppna processer användaren "oracle" kan ha. Den "mjuka" gränsen ska vara minst 2047 och den "hårda" gränsen ska vara minst 16384. Vi kontrollerar den mjuka gränsen med:
[olle@dev1]$ su - oracle
[olle@dev1]$ ulimit -u
16378
Kontrollera hur många öppna filer användaren "oracle" kan ha. Den "mjuka" gränsen ska vara minst 1024 och den "hårda" gränsen ska vara minst 65536. Vi kontrollerar den mjuka gränsen med:
[olle@dev1]$ su - oracle
[olle@dev1]$ ulimit -n
1024
Eftersom vi inte ser den hårda gränsen sätter vi dessa värden för säkerhets skull. Det gör vi genom att editera filen /etc/security/limits.conf. Vi lägger till följande text:

oracle               soft    nproc   2047
oracle               hard    nproc   16384
oracle               soft    nofile  1024
oracle               hard    nofile  65536
Nu bootar jag om för att se om värdena har uppdaterats. Vi testar igen:
[olle@dev1]$ su - oracle
[olle@dev1]$ ulimit -u
2047
[olle@dev1]$ ulimit -n
1024
Det verkar funka.

5. Skapa filstruktur för databasens mjukvara

Oracles Optimal Flexible Architecture rekommenderar att man skapar ett BASE DIRECTORY enligt följande starndard /mount_point/app/oracle_sw_owner. Jag väljer den typiska sökvägen /u01/app/oracle/ som basmapp. OBS: Även om du bara ska installera mjukvaran för Oracle under BASE DIRECTORY så måste det finnas 3 GB ledigt utrymme. Vi skapar mappen med:
[olle@dev1]$ mkdir -p /u01/app/oracle
[olle@dev1]$ chown oracle:oinstall /u01/app/oracle
Nu skapar vi "ORACLE INVENTORY DIRECTORY" enligt oracle_base/oraInventory. Denna mapp kommer att innehålla ett register över all Oraclemjukvara installerad på systemet:
[olle@dev1]$ cd /u01/app/oracle
[olle@dev1]$ su oracle
[olle@dev1]$ mkdir oraInventory
Nu skapar vi "ORACLE HOME DIRECTORY" enligt oracle_base/product/10.2.0/db_1. Denna mapp innehåller mjukvaran för denna version av databasen vi tänker installera:
[olle@dev1]$ cd /u01/app/oracle
[olle@dev1]$ su oracle
[olle@dev1]$ mkdir -p product/10.2.0/db_1

6. Uppdatera /home/oracle/.bash_profile

Vi sätter de nödvändiga miljövariablerna i /home/oracle/.bash_profile så att de alltid finns tillgängliga för användaren "oracle". Jag lägger till följande text sist i filen .bash_profile:

#(2006-06-01) Added for the Oracle10 installation
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
ORACLE_SID=orcl
PATH=$ORACLE_HOME/bin:$PATH

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
#(2006-06-01) end
För att .bash_profile ska köras kan du logga in igen som "oracle". Titta sedan på dina miljövariabler med kommandot "env":
[olle@dev1]$ su - oracle
[olle@dev1]$ env

7. Bestäm hur databasens data ska lagras

Ofta väljer man att lagra databasens data på en annan plats (helst en annan disk) än där själva mjukvaran installeras. Detta för att få högre parallellitet när det gäller att läsa och skriva till disk. Man måste också välja hur databasens data ska lagras:

  • Filsystem: Datat lagras i vanliga filer i filsystemet.
  • ASM: (Automatic Storage Management), ett alternativt filsystem som bara är tillgängligt för Oracle.
  • RAW: Med raw lagrar du data direkt på disk utan något filsystem.

8. Nästa steg

Nästa steg:  Steg2: Installera mjukvaran .