Зайти под пользователем root.

Проверить объём оперативной памяти (должно быть не меньше 1Гб.):

[root@ora11g ~]# grep MemTotal /proc/meminfo
MemTotal:        1030216 kB

Проверить, поодерживает ли программное обеспечение Oracle архитектуру данного процессора:

[root@ora11g ~]# uname -m
i686

Проверить объём файла подкачки:

[root@ora11g ~]# grep SwapTotal /proc/meminfo
SwapTotal:       2064380 kB

Проверить доступный объём в памяти и области подкачки:

[root@ora11g ~]# free
             total       used       free     shared    buffers     cached
Mem:       1030216     319904     710312          0      20852     148328
-/+ buffers/cache:     150724     879492
Swap:      2064380          0    2064380

Проверить доступный объём разделяемой памяти:

[root@ora11g ~]# df -k /dev/shm/
Файловая система     1K-блоков      Исп  Доступно  Исп% смонтирована на
tmpfs                   515108       100    515008   1% /dev/shm

Проверить доступное дисковое пространство в каталоге tmp (должно быть не менее 1Гб.):

[root@ora11g tmp]# df -h /tmp
Файловая система      Разм  Исп  Дост  Исп% смонтирована на
/dev/mapper/vg_ora11g-lv_root
                      9,4G  2,6G  6,4G  29% /

Проверить дестрибутив и версию Linux:

[root@ora11g tmp]# cat /proc/version
Linux version 2.6.39-200.24.1.el6uek.i686 (mockbuild@ca-
build44.us.oracle.com) (gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC) ) 
#1 SMP Sat Jun 23 02:39:03 EDT 2012

Проверить версию ядра (должна быть не меньше 2.6.18):

[root@ora11g tmp]# uname -r
2.6.39-200.24.1.el6uek.i686

Проверить установку следующих пакетов:

binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
elfutils-libelf-devel-static-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.5
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214
libaio-0.3.106
libaio-devel-0.3.106 
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2 
libstdc++-devel-4.1.2
make-3.81
sysstat-7.0.2

Проверить, установлен ли пакет, можно следующим образом:

rpm -q package_name

Проверить существование группы oinstall:

[root@ora11g ~]#  more /etc/oraInst.loc
/etc/oraInst.loc: Нет такого файла или каталога

Проверить существование группы dba:

[root@ora11g ~]# grep dba /etc/group

Если групп нет то создать их:

[root@ora11g ~]# groupadd oinstall
[root@ora11g ~]# groupadd dba 
[root@ora11g ~]# grep dba /etc/group
dba:x:502:
[root@ora11g ~]# grep oinstall /etc/group
oinstall:x:501:

Проверить существование пользователя oracle:

[root@ora11g ~]# id oracle
id: oracle: Такого пользователя нет 

Если пользователя oracle нет, то создать его, включив в группы oinstall и dba:

[root@ora11g ~]# useradd -g oinstall -G dba oracle
[root@ora11g ~]# id oracle
uid=500(oracle) gid=501(oinstall) группы=501(oinstall),502(dba)

Задать пароль пользователя oracle:

[root@ora11g ~]# passwd oracle
Смена пароля для пользователя oracle.
Новый пароль : 
Повторите ввод нового пароля : 
passwd: все токены проверки подлинности успешно обновлены. ?

Установить необходимые значения параметров ядра в файле /etc/sysctl.conf, не меньше следующих значений:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

Применить значения параметров установленных в файле /etc/sysctl.conf (или можно перезагрузить):

[root@ora11g etc]# sysctl –p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

Зайти под пользователем oracle. Проверить ресурсные лимиты:

[oracle@ora11g ~]$ ulimit -Sn
1024
[oracle@ora11g ~]$ ulimit -Hn
65536
[oracle@ora11g ~]$ ulimit -Su
2047
[oracle@ora11g ~]$ ulimit -Hu
16384
[oracle@ora11g ~]$ ulimit -Ss
10240
[oracle@ora11g ~]$ ulimit -Hs
unlimited

Если лимиты не соответствуют, зайти под root и поправить значения в файле /etc/security/limits.conf, после этого перезагрузить систему:

oracle              soft    nofile  1024
oracle              hard    nofile  65536
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    stack   10240

Зайти под root. Создать базовый каталог Oracle:

[root@ora11g ~]# mkdir -p /u01/app/oracle

Сменить владельца и группу базового каталога на oracle и oinstall:

[root@ora11g ~]# chown -R oracle:oinstall /u01/app/oracle

Задать права доступа к базовому каталогу Oracle:

[root@ora11g ~]# chmod -R 775 /u01/app/oracle

Создать каталог файлов базы данных Oracle:

[root@ora11g ~]# mkdir -p /u02/oradata

Сменить владельца и группу каталога файлов базы данных на oracle и oinstall:

[root@ora11g ~]# chown -R oracle:oinstall /u02/oradata

Сменить права доступа к каталогу файлов базы данных:

[root@ora11g ~]# chmod -R 775 /u02/oradata

Создать каталог флэш области восстановления:

[root@ora11g ~]# mkdir -p /u01/app/oracle/flash_recovery_area

Сменить владельца и группу каталога флэш области восстановления на oracle и oinstall:

[root@ora11g ~]# chown -R oracle:oinstall /u01/app/oracle/flash_recovery_area

Сменить права доступа к каталогу флэш области восстановления:

[root@ora11g ~]# chmod -R 775 /u01/app/oracle/flash_recovery_area

Создать каталог инвентаризации Oracle:

[root@ora11g]# mkdir -p /u01/app/oraInventory

Сменить права доступа к каталогу инвентаризации Oracle:

[root@ora11g ~]# chmod -R 775 /u01/app/oraInventory

Сменить владельца и группу каталога файлов базы данных на oracle и oinstall:

[root@ora11g ~]# chown -R oracle:oinstall /u01/app/oraInventory

Зайти под пользователем oracle:

[root@ora11g tmp]# su – oracle

Установить маску по умолчанию для вновь создаваемых файлов:

[oracle@ora11g ~]# umask 022

Разрешить программам выполняемым на этом хосте обращаться к X серверу:

[oracle@ora11g ~]# xhost +
access control disabled, clients can connect from any host

Установить значение переменной окружения DISPLAY:

[oracle@ora11g ~]$ echo $SHELL
/bin/bash
[oracle@ora11g ~]$ export DISPLAY=:0.0
[oracle@ora11g ~]$ echo $DISPLAY
:0.0

Установить значения переменных окружения TEMP и TMP:

[oracle@ora11g tmp]# TMP=/tmp
[oracle@ora11g tmp]# TEMP=/tmp
[oracle@ora11g tmp]# export TMP TEMP
[oracle@ora11g tmp]# echo $TMP
/tmp
[oracle@ora11g tmp]# echo $TEMP
/tmp

Установить значения переменных окружения ORACLE_BASE и ORACLE_SID:

[oracle@ora11g tmp]# ORACLE_BASE=/u01/app/oracle
[oracle@ora11g tmp]# ORACLE_SID=orcl
[oracle@ora11g tmp]# export ORACLE_BASE ORACLE_SID
[oracle@ora11g ~]$ echo $ORACLE_BASE
/u01/app/oracle 
[oracle@ora11g ~]$ echo $ORACLE_SID
orcl

Занести переменные окружения в файл профиля пользователя oracle:

[oracle@ora11g ~]$ pwd
/home/oracle
[oracle@ora11g ~]$ vi .bash_profile
…
TMP=/tmp
TEMP=/tmp
ORACLE_BASE=/u01/app/oracle
ORACLE_SID=orcl
export PATH
export TMP TEMP
export ORACLE_BASE ORACLE_SID

Удалить, если имеются, следующие переменные окружения:

[oracle@ora11g ~]$ unset ORACLE_HOME
[oracle@ora11g ~]$ unset TNS_ADMIN

Посмотреть установленные переменные окружения:

[oracle@ora11g ~]$ env | more

Перейти в каталог на смонтированном DVD с программным обеспечением Oracle (папка смонтирована в VirtualBox, пользователь oracle должен быть включён в группу vboxsf):

[oracle@ora11g /]$ cd /media/sf_dvd/database

Запустить инсталлятор:

[oracle@ora11g database]$ ./runInstaller
[oracle@ora11g database]$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB.   Actual 6537 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 2015 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    
Actual 16777216    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2012-12-
17_11-10-51AM. Please wait ...

Инсталляция…

Зайти под пользователем root и запустить следующие скрипты:

[oracle@ora11g ~]$ su
Пароль: 
[root@ora11g oracle]# cd /u01/app/oraInventory
[root@ora11g oraInventory]# ./orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@ora11g oraInventory]# cd /u01/app/oracle/product/11.2.0/dbhome_1
[root@ora11g dbhome_1]# ./root.sh
Performing root user operation for Oracle 11g 
The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/11.2.0/dbhome_1
Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.

Установить в файле профиля переменные окружения:

[oracle@ora11g bin]$ cd /home/oracle
[oracle@ora11g ~]$ vi .bash_profile
…
ORACLE_BASE=/u01/app/oracle
ORACLE_SID=orcl
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
export PATH
export TMP TEMP
export ORACLE_BASE ORACLE_SID ORACLE_HOME
export NLS_LANG
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

Перезагрузить. Запустить на выполнение скрипт:

[oracle@ora11g ~]$ sqlplus / as sysdba
SQL> @?/rdbms/admin/utlrp.sql
TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN  2012-12-18 09:37:31
DOC>   The following PL/SQL block invokes UTL_RECOMP to recompile invalid
DOC>   objects in the database. Recompilation time is proportional to the
DOC>   number of invalid objects in the database, so this command may take
DOC>   a long time to execute on a database with a large number of invalid
DOC>   objects.
DOC>
DOC>   Use the following queries to track recompilation progress:
DOC>
DOC>   1. Query returning the number of invalid objects remaining. This
DOC>	  number should decrease with time.
DOC>	     SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);
DOC>
DOC>   2. Query returning the number of objects compiled so far. This number
DOC>	  should increase with time.
DOC>	     SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;
DOC>
DOC>   This script automatically chooses serial or parallel recompilation
DOC>   based on the number of CPUs available (parameter cpu_count) multiplied
DOC>   by the number of threads per CPU (parameter parallel_threads_per_cpu).
DOC>   On RAC, this number is added across all RAC nodes.
DOC>
DOC>   UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel
DOC>   recompilation. Jobs are created without instance affinity so that they
DOC>   can migrate across RAC nodes. Use the following queries to verify
DOC>   whether UTL_RECOMP jobs are being created and run correctly:
DOC>
DOC>   1. Query showing jobs created by UTL_RECOMP
DOC>	     SELECT job_name FROM dba_scheduler_jobs
DOC>		WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>
DOC>   2. Query showing UTL_RECOMP jobs that are running
DOC>	     SELECT job_name FROM dba_scheduler_running_jobs
DOC>		WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>#
PL/SQL procedure successfully completed.
TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_END  2012-12-18 09:37:39
DOC> The following query reports the number of objects that have compiled
DOC> with errors (objects that compile with errors have status set to 3 in
DOC> obj$). If the number is higher than expected, please examine the error
DOC> messages reported with each object (using SHOW ERRORS) to see if they
DOC> point to system misconfiguration or resource constraints that must be
DOC> fixed before attempting to recompile these objects.
DOC>#
OBJECTS WITH ERRORS
-------------------
		  0
DOC> The following query reports the number of errors caught during
DOC> recompilation. If this number is non-zero, please query the error
DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors
DOC> are due to misconfiguration or resource constraints that must be
DOC> fixed before objects can compile successfully.
DOC>#
ERRORS DURING RECOMPILATION
---------------------------
			  0
Function created.
PL/SQL procedure successfully completed.
Function dropped.
PL/SQL procedure successfully completed.