Instalando e Configurando o Oracle DataBase 11G no CentOS 5.9

Precisamos dos seguintes arquivos:

  • linux.x64_11gR2_database_1of2.zip
  • linux.x64_11gR2_database_2of2.zip

O que vamos utilizar:

  • SELinux desabilitado
  • 2 discos para um para o SO com 50 GB e um de 100 GB para o banco de dados que vai ficar em /u01:
  • Usuário para o banco: oracle
  • Grupos para o banco:
    • oinstall
    • dba
    • oper

Vou levar em consideração que o CentOS 5.9 está instalado e com o ambiente gráfico.

Informações da máquina:

  • IP: 192.168.25.35/24
  • Nome: oracle
  • Domínio: douglasqsantos.com.br

Vamos ajustar o nome da máquina

vim /etc/hosts
127.0.0.1       oracle.lab.lan oracle localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
192.168.25.35    oracle.douglasqsantos.com.br oracle

Vamos atualizar o sistema

yum update -y

Vamos desabilitar o Firewall ipv4

/etc/init.d/iptables stop
chkconfig --del iptables

Vamos desabilitar o Firewall ipv6

/etc/init.d/ip6tables stop
chkconfig --del ip6tables

Agora vamos ajustar o selinux

vim /etc/selinux/config
[...]
SELINUX=permissive

Vamos instalar as dependências do Oracle

yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ \
libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh -y

Agora vamos preparar o disco para o /u01

fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.


The number of cylinders for this disk is set to 13054.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-13054, default 1): 
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-13054, default 13054): 
Using default value 13054

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Agora vamos criar um sistema de arquivos para a nossa partição

mkfs.ext3 /dev/sdb1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
13107200 inodes, 26214055 blocks
1310702 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
800 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks: 
  32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
  4096000, 7962624, 11239424, 20480000, 23887872

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Agora vamos criar o /u01

mkdir /u01

Agora vamos montar essa partição

mount /dev/sdb1 /u01

Agora vamos listar as nossas partições montadas

mount  | egrep sdb1
/dev/sdb1 on /u01 type ext3 (rw)

Ela foi montada com sucesso, agora vamos inserir ela na inicialização do nosso sistema

vim /etc/fstab
[...]
/dev/sdb1               /u01                    ext3    defaults,noatime 0 0

Agora vamos confirmar se a nossa configuração do fstab está ok

mount -a

Aqui não podemos receber nenhum aviso, caso isso aconteça a configuração está ok, caso tenha algum aviso revise a configuração.

Agora vamos criar os grupos para o oracle

groupadd oinstall
groupadd dba
groupadd oper

Agora vamos criar os diretórios para armazenar o Grid e o DataBase

mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/11.2.0/grid
mkdir -p /u01/app/oraInventory

Agora vamos criar o usuário oracle

useradd -g oinstall -G dba,oper -m oracle

Defina uma senha para o usuário oracle

passwd oracle

Agora vamos ajustar as permissões dos diretórios

chown -R oracle:oinstall /u01
chmod -R 775 /u01

Agora vamos criar o diretório que vai conter os fontes do Oracle

mkdir /stage/

Agora vamos mover os fontes para o /stage

mv linux.x64_11gR2_*.zip /stage

Agora vamos ajustar as permissões dos fontes

chown -R oracle:dba /stage
chmod -R 775 /stage

Agora vamos ajustar as variáveis do kernel

vim /etc/sysctl.conf
[...]
#Inserir no final do arquivo
fs.suid_dumpable = 1
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586

Agora vamos carregar as variáveis para o kernel

sysctl -p

Agora vamos ajustar os limits para o usuário oracle

vim /etc/security/limits.conf
[...]
#Inserir no final do arquivo
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  4096
oracle              hard    nofile  65536
oracle              soft    stack   10240

Agora vamos inserir no arquivo de login da pam o controle de limits

vim /etc/pam.d/login
#No final do arquivo
session    required     pam_limits.so

Agora vamos acertar as variáveis de ambiente do oracle

vim /home/oracle/.bash_profile

# Inserir no fim do arquivo
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=oracle.douglasqsantos.com.br; export ORACLE_HOSTNAME
ORACLE_UNQNAME=DB11G; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=DB11G; export ORACLE_SID
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

Agora que o sistema já está ok vamos fazer a instalação do Banco de Dados.

Vamos acessar o diretório que contém os fontes com o usuário oracle

source  /home/oracle/.bash_profile
cd /stage

Agora vamos descompactar eles

unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

Agora vamos acessar o diretório database

cd database

Agora vamos chamar o executável para a instalação

./runInstaller

Agora vamos ter uma tela como abaixo

Aqui selecione Próximo vamos ter um aviso como abaixo ,que não vamos receber informações sobre segurança do banco

Aqui vamos selecionar Yes

Agora vamos selecionar Install database software only e vamos selecionar Next

Agora precisamos selecionar o tipo de instalação do banco: Single instance database installation e vamos selecionar Next

Agora precisamos selecionar os idiomas deixe sempre o Inglês primeiro e depois outros idiomas adicionais caso necessário e selecione Next.

Agora precisamos selecionar qual edição do banco vamos instalar selecione a que você adquiriu a licença :D e selecione Next

Agora podemos selecionar a Oracle base e a Software location eu vou deixar o padrão e vamos selecionar Next

Agora vamos ter a configuração do diretório que vai armazenar os arquivos de instalação vamos deixar o padrão e vamos selecionar Next

Agora vamos ter os grupos de operação do banco vamos deixar o padrão e vamos selecionar Next

Como pode ser notados todos os pré-requisitos estão ok com isso é só mandar instalar selecionar Finish

Agora vamos ter o processo de instalação do banco

Quando terminar a copia vamos ter a seguinte mensagem

Aqui precisamos rodar os scripts com o usuário root

/u01/app/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.

Agora vamos rodar o segundo script

/u01/app/oracle/product/11.2.0/dbhome_1/root.sh 
Running Oracle 11g root.sh script...

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.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.

Depois disso podemos dar um ok na tela de execução do script e vamos ter a seguinte tela

Aqui é só selecionar Close

Agora vamos criar um listener com o usuário oracle

netca

Vamos ter uma tela como abaixo aqui vamos selecionar Next

Agora como não temos nenhum listener so temos a opção de ADD vamos selecionar Next

Agora podemos dar um nome para o nosso listener eu vou deixar o padrão e vou selecionar Next

Agora podemos selecionar quais protocolos vão ser utilizados eu vou deixar o default e vou selecionar Next

Agora podemos selecionar uma porta para o nosso listener eu vou deixar a default e vou selecionar Next

Agora vamos ser questionados se queremos configurar outro listener vamos selecionar no e Next

Agora vamos selecionar Next

Agora vamos selecionar Finish para terminar a nossa configuração

Agora vamos consultar o nosso listener com o usuário oracle

lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 22-JUN-2013 12:15:38

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.douglasqsantos.com.br)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                22-JUN-2013 12:13:39
Uptime                    0 days 0 hr. 1 min. 59 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle.douglasqsantos.com.br)(PORT=1521)))
The listener supports no services
The command completed successfully

Ele está escutando.

Agora precisamos criar o banco de dados ainda com o usuário oracle

dbca

Vamos ter uma tela como abaixo.

Aqui vamos selecionar Next para iniciarmos a configuração

Agora vamos selecionar a nossa operação neste caso vamos selecionar Create a Database e Next

Agora vamos selecionar qual a finalidade do modelo de banco vou selecionar a primeira opção General Purpose or Transaction Processing e Next

Agora vamos informar o nome do banco de dados e o SID como abaixo e selecione Next

Aqui vamos deixar as nossas opções default e vamos selecionar Próximo

Agora podemos informar a senha para os usuários do banco ou selecionar usar a mesma senha para todas as contas e informe a senha e selecione Próximo

Aqui se a senha for simples vamos ter a seguinte mensagem precisamos somente selecionar Yes

Agora como o armazenamento é em disco local não em ASM vamos deixar o default e vamos selecionar Next

Agora vamos deixar as opções default e vamos selecionar Enable Archiving e Next

Aqui vamos selecionar Next pois não quero os schemas de exemplos

Aqui temos a configuração de SGA e PGA, quantidade de processos simultaneos, Charracter Sets e Connection mode eu vou deixar o padrão mude o que achar necessários e selecione Next

Agora temos um Overview da nossa instalação aqui podemos selecionar Next.

Agora temos as opções de criação do banco de dados vamos deixar marcado somente o default Create Database e vamos selecionar Finish

Agora vamos ter a tela de confirmação da nossa criação aqui podemos selecionar OK

Agora vamos ter a criação do banco como abaixo.

Depois que terminar a criação vamos ter a seguinte mensagem

Aqui temos informações sobre as contas do banco o repositório e o acesso ao Enterprise Manager em https://oracle.douglasqsantos.com.br:1158/em

Aqui vamos selecionar Exit

Agora vamos testar o nosso banco

Vamos carregar as variáveis de ambiente para a nossa instância orcl

. oraenv
ORACLE_SID = [DB11G] ? 
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is /u01/app/oracle

Agora vamos chamar o sqlplus, como a a conexão é local é só informar usuário/senha

sqlplus system/oracle

SQL*Plus: Release 11.2.0.1.0 Production on Sat Jun 22 12:48:34 2013

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> quit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

Caso esteja trabalhando com o firewall habilitado precisamos liberar a porta 1158 para que possamos acessar de outras máquinas o Enterprise Manager, e vamos liberar a porta 1521 para podemos acessar o Oracle de outras maquina.

Agora com o usuário root

vim /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 1158 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 1521 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

Agora vamos reiniciar o serviço do Firewall

/etc/init.d/iptables restart

Agora vamos testar o Enterprise manager acessando https://oracle.douglasqsantos.com.br:1158/em aqui vamos precisar aceitar o certificado auto-assinado vamos ter algo como abaixo

Aqui podemos logar com o usuário system e a senha que foi informada na instalação do banco, depois vamos ter a seguinte tela

Aqui podemos efetuar muitas operações em nosso banco de dados :D

Operações básicas:

Vamos parar o Enterprise manager

Vamos carregar as variáveis para a instância que queremos gerenciar

. oraenv
ORACLE_SID = [DB11G] ? 
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is /u01/app/oracle

Agora vamos mandar o Enterprise manager parar

emctl stop dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0 
Copyright (c) 1996, 2009 Oracle Corporation.  All rights reserved.
https://oracle.douglasqsantos.com.br:1158/em/console/aboutApplication
Stopping Oracle Enterprise Manager 11g Database Control ... 
 ...  Stopped.

Agora vamos consultar o nosso Enterprise Manager

emctl status dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0 
Copyright (c) 1996, 2009 Oracle Corporation.  All rights reserved.
https://oracle.douglasqsantos.com.br:1158/em/console/aboutApplication
Oracle Enterprise Manager 11g is not running.

Para inicializar ele

emctl start dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0 
Copyright (c) 1996, 2009 Oracle Corporation.  All rights reserved.
https://oracle.douglasqsantos.com.br:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control .......... started. 
------------------------------------------------------------------
Logs are generated in directory /u01/app/oracle/product/11.2.0/dbhome_1/oracle.douglasqsantos.com.br_DB11G/sysman/log 

Agora vamos ver como podemos parar e iniciar uma instância do banco de dados

Podemos parar o banco pelo sqlplus da seguinte forma

Carregue as variáveis para a instância

. oraenv
ORACLE_SID = [DB11G] ? 
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is /u01/app/oracle

Agora vamos logar com o usuário sys com a permissão de sysdba

sqlplus sys/oracle as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 20 13:36:20 2013

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

Agora vamos mandar dar um shutdown no banco

SQL> shutdown immediate;
Banco de dados fechado.
Banco de dados desmontado.
Instancia ORACLE desativada.
SQL> 

Agora vamos mandar subir a instância novamente

SQL> startup;
Instancia ORACLE iniciada.

Total System Global Area  839282688 bytes
Fixed Size        2217992 bytes
Variable Size     515901432 bytes
Database Buffers    314572800 bytes
Redo Buffers        6590464 bytes
Banco de dados montado.
Banco de dados aberto.
SQL> 

Agora vamos verificar o status do nosso listener

lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 22-JUN-2013 12:56:40

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.douglasqsantos.com.br)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                22-JUN-2013 12:13:39
Uptime                    0 days 0 hr. 43 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle.douglasqsantos.com.br)(PORT=1521)))
Services Summary...
Service "DB11G" has 1 instance(s).
  Instance "DB11G", status READY, has 1 handler(s) for this service...
Service "DB11GXDB" has 1 instance(s).
  Instance "DB11G", status READY, has 1 handler(s) for this service...
The command completed successfully

Agora se eu precisar parar ele

lsnrctl stop

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 22-JUN-2013 12:57:02

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.douglasqsantos.com.br)(PORT=1521)))
The command completed successfully

Agora vamos verificar o status dele

lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 22-JUN-2013 12:57:17

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.douglasqsantos.com.br)(PORT=1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused

Como pode ser notado ele está down vamos subir ele

lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 22-JUN-2013 12:57:33

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Starting /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle.douglasqsantos.com.br)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.douglasqsantos.com.br)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                22-JUN-2013 12:57:33
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle.douglasqsantos.com.br)(PORT=1521)))
The listener supports no services
The command completed successfully

Agora vamos criar o script de inicialização do Oracle

vim /etc/init.d/dbora
#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the 
# Oracle database in ORA_HOME.

ORA_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORA_OWNER=oracle
export ORACLE_UNQNAME=DB11G

if [ ! -f $ORA_HOME/bin/dbstart ]
then
    echo "Oracle startup: cannot start"
    exit
fi

case "$1" in
    'start')
        # Start the Oracle databases:
        # The following command assumes that the oracle login 
        # will not prompt the user for any values
        su $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME"
        touch /var/lock/subsys/dbora
        ;;
    'stop')
        # Stop the Oracle databases:
        # The following command assumes that the oracle login 
        # will not prompt the user for any values
        su $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME"
        rm -f /var/lock/subsys/dbora
        ;;
esac

Agora vamos acertar as permissões do script

chmod 750 /etc/init.d/dbora

Agora vamos colocar ele na inicialização

chkconfig --add dbora

Agora vamos habilitar o nosso banco subir na inicialização do sistema

vim /etc/oratab
[...]
#Precisamos mudar o último caracter da linha de N para Y
DB11G:/u01/app/oracle/product/11.2.0/dbhome_1:Y

Agora já podemos reiniciar o servidor pra testar a inicialização

reboot

Agora vamos consultar o listener do Oracle

Vamos consultar o uptime do servidor

uptime
 13:37:44 up 1 min,  1 user,  load average: 0.80, 0.24, 0.08

Agora vamos consultar o tempo do listener

lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 22-JUN-2013 13:37:29

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.douglasqsantos.com.br)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                22-JUN-2013 13:37:11
Uptime                    0 days 0 hr. 0 min. 18 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle.douglasqsantos.com.br)(PORT=1521)))
Services Summary...
Service "DB11G" has 1 instance(s).
  Instance "DB11G", status READY, has 1 handler(s) for this service...
Service "DB11GXDB" has 1 instance(s).
  Instance "DB11G", status READY, has 1 handler(s) for this service...
The command completed successfully

Tudo ok

Referências