domingo, 31 de maio de 2015

Integração de banco de dados Oracle com MySQL - Ambiente Linux

Oi pessoal!

Depois de um bom tempo sem postar nada aqui no Blog, decidi retomar e ajudar os "navegantes" da tecnologia a resolver os problemas do cotidiano, coisas que enfrentamos no dia-a-dia e que certamente nos tiram um bocado de tempo. Tenho um bom conteúdo de documentos e pretendo ir postando assim que possível, afinal, não tenho tanto tempo disponível assim.

Como sempre digo, vamos ao que interessa!

Objetivo

O objetivo desta postagem é abordar de uma maneira bem objetiva, como integrar os bancos de dados Oracle e MySQL. É isso mesmo que você ouviu, soltar um select no MySQL de dentro do Oracle, criar views, fazer JOIN entre os bancos e muito mais.

Pré-requisitos

Banco de dados Oracle funcionando
Banco de dados MySQL funcionando

Implementação

Utilizaremos um componente do Oracle chamado HS (Heterogeneous Service). Para quem quiser saber mais sobre: http://docs.oracle.com/cd/B28359_01/server.111/b28277/intro.htm#i1005900

Parte 1

No servidor Oracle, instale o MySQL ODBC. A versão linux utilizada para a integração foi Oracle Linux 5.8 e a versão do MySQL ORDBC foi a 5.1 (https://dev.mysql.com/downloads/connector/odbc/5.1.html):

rpm -ivh mysql-connector-odbc-5.1.13-1.rhel5.x86_64.rpm

Após instalado, realize a configuração do arquivo de configuração do ODBC:

Em /etc/odbc.ini

[NOMEDACONEXAO]
DRIVER = MySQL64
DATABASE = NOMEDOBANCOMYSQL
DESCRIPTION = MySQL ODBC 5.1 Driver
PORT = 3306
SERVER = IPDOSERVIDORMYSQL
USERNAME = USUARIOBANCOMYSQL
PASSWORD = SENHABANCOMYSQL
CHARSET = latin1
TRACEFILE = /tmp/myodbc-demodsn.trc
TRACE = ON


Faça um teste de conexão, a fim de minimizar possíveis problemas lá na frente:

isql -v NOMEDACONEXAO

show tables

Se o resultado for listar as tabelas do seu banco de dados MySQL, ótimo, vamos seguir adiante.

Parte 2

Configure o Oracle HS:

Para isso, crie um arquivo $ORACLE_HOME/hs/admin/initNOMEDACONEXAO.ora

HS_FDS_CONNECT_INFO = NOMEDACONEXAO #ODBC DSN
HS_FDS_TRACE_LEVEL = OFF
HS_FDS_FETCH_ROWS = 1
HS_NLS_NCHAR = UCS2
HS_LANGUAGE=american_america.we8iso8859P1
HS_FDS_SHAREABLE_NAME=/usr/lib64/libmyodbc5.so
HS_FDS_SQLLEN_INTERPRETATION=32
HS_FDS_SUPPORT_STATISTICS = FALSE


set ODBCINI=/etc/odbc.ini

Configure o listener.ora:

Adicione a seguintes entradas em $ORACLE_HOME/network/admin/listener.ora

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC = (SID_NAME=NOMEDACONEXAO)
(ORACLE_HOME=/u01/product/11.2.0/db_1)
(PROGRAM=dg4odbc)
)
)


Obs.: Substitua o ORACLE_HOME conforme sua instalação

Configure o tnsnames.ora:

Adicione as seguintes entradas em $ORACLE_HOME/network/admin/tnsnames.ora

NOMEDACONEXAO = (DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)
(HOST=localhost)
(PORT=1521))

(CONNECT_DATA = (SID=NOMEDACONEXAO))

(HS = OK))

Estamos na reta final, vamos criar o database link.

Acesse seu banco pelo sqlplus:

sqlplus /nolog

conn /as sysdba

CREATE PUBLIC DATABASE LINK NOMEDODBLINK CONNECT TO "USUARIOBANCOMYSQL " IDENTIFIED BY "SENHABANCOMYSQL" USING 'NOMEDACONEXAO';

Reinicie o listener:

lsnrctl stop
lsnrctl start

Pronto!

Faça um select para testar:

select * from "tabela"@NOMEDODBLINK;

Conclusão

O Oracle HS permite integração entre outros bancos também, como MSSQL, DB2 etc. Basta ler a documentação, mas basicamente o que muda é o driver do banco terceiro.

É isso pessoal, até a próxima!





quarta-feira, 28 de dezembro de 2011

Utilizando Zabbix para monitorar Oracle – Plugin ZABORA


Para quem não sabe, o Zabbix é um dos mais robustos e completos monitor redes e servidores. Possui licença GNU e está em pleno desenvolvimento. Possui algumas características importantes como:

·         Suporte para SNMP (v1, v2);

·         Monitoramento distribuído com administração centralizada na web;

·         Agentes de alta performance (software de cliente para Linux, Solaris, HP-UX, AIX, FreeBSD, OpenBSD, OS X, Tru64/OSF1, Windows NT 4.0, Windows 2000, Windows 2003, Windows XP e Windows Vista);

·         Permissões flexíveis de usuário;

·         Interface baseada na web.

Bem, meu objetivo não é tratar exatamente a instalação e configuração do Zabbix, pois para isso existe um vasto material na internet. 

Partindo do princípio...

Supondo que você já tenha um servidor Zabbix em pleno funcionamento e já tenha o seu agente devidamente configurado no seu Oracle Server, faça:

Download do Zabora (a versão atual é a 1.5):



Crie uma pasta /opt/zabbix

# mkdir /opt/zabbix

Mude de dono o diretório

# chown zabbix.zabbix /opt/zabbix –R

De permissão total

# chmod 777 /opt/zabbix

Descompacte o arquivo zabora.zip no diretório /tmp

# unzip zabora.zip

Copie os arquivos descompactados

# cp /tmp/ux/* /opt/zabbix/.

Adicione os parâmetros do zabora para o agente do zabbix:

# cd /opt/zabbix
# echo "UserParameter=oracle[*],/opt/zabbix/zabora \$1 \$2" >>zabbix_agentd.conf

Altere o conteúdo do arquivo zabbix_user.txt, colocando a senha que deseja para o usuário zabbix:

conn /as sysdba;
CREATE USER "ZABBIX" IDENTIFIED BY "ZABBIX";
GRANT "CONNECT" TO "ZABBIX";
grant select on v_$instance to zabbix;
grant select on v_$sysstat to zabbix;
grant select on v_$session to zabbix;
grant select on dba_free_space to zabbix;
grant select on dba_data_files to zabbix;
grant select on dba_tablespaces to zabbix;
grant select on v_$log to zabbix;
grant select on v_$archived_log to zabbix;
grant select on v_$loghist to zabbix;
grant select on v_$system_event to zabbix;
grant select on v_$event_name to zabbix;

Logue no Oracle e execute o script zabbix_user.txt:

# su – oracle
$ sqlplus /nolog @ zabbix_user.txt

Usuário criado! Volte para root!

$ exit

Edite o arquivos oraenv colocando as informações de seu ambiente. Abaixo um modelo do meu ambiente:

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=/u01/app/oracle/product/11; export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:$ORACLE_HOME/bin; export PATH
ORACLE_OWNER=oracle; export ORACLE_OWNER
ORACLE_SID=c5teste; export ORACLE_SID

Existe um erro no conteúdo do zabora, onde são utilizados comandos <>, sendo que o bash não reconhece símbolos. Sendo assim, edite o arquivo zabora e altere o seguinte:

Linha 001 – De: #! /usr/bin/sh | Para: #!/bin/sh
Linha 010 – De: if [ "$2" <> "" ]; then | Para:  if [ "$2" != "" ]; then
Linha 263 – De: if [ "$sql" <> "" ]; then | Para: if [ "$sql" != "" ]; then

Faça teste com o zabora:

# ./zabora version

A saída deverá ser algo como:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

Faça teste com o Zabbix:

./zabbix_agentd -c /etc/zabbix_agentd.conf -t oracle[version]

A saída deverá ser algo como:

oracle[/opt/zabbix/zabora version ]           [t| Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production]

Pronto! O plugin Zabora está pronto para realizar as consultas e enviar para o servidor Zabbix. Para ver as possibilidades de monitoramento:

./zabora --help

Agora é só criar um novo template e utilizar o zabora com os parâmetros desejados!

Wiki do Zabbix:  http://www.zabbix.com/wiki/howto/monitor/db/orcale/oracle




quinta-feira, 16 de junho de 2011

GLPI - Adaptações para ITIL



Quem baixou a nova versão do GLPI, software para helpdesk, percebeu as já anunciadas mudanças para os conceitos ITIL. Pudemos perceber os tratamentos de Incidente e Requisição, as configurações de SLA´s, etc. Para quem não sabe o GLPI é um software para gerenciamento dos serviços de TI, o qual conta com inventário de equipamentos, inclusive. É um software Francês e está sob o licenciamento GNU. Para quem quer saber mais sobre o software acesse o site oficial do projeto http://www.glpi-project.org. Um outro site interessante é o blog do Thiago Passamani, um design gráfico que colabora e muito para a difusão deste "baita" software que ajuda e muito pequenas, médias e porque não grandes empresas a gerenciar seus ambientes de TI. Anote aí: http://www.thiagopassamani.com.br.

quarta-feira, 15 de outubro de 2008

Oracle gratuito para treinamento no GPO.

Uma excelente dica principalmente para quem está começando no mundo Oracle e deseja ampliar seus conhecimentos.
O site
http://www.profissionaloracle.com.br/ disponibilizou um banco de dados Oracle para fins didáticos, o MyDB. Os interessados deverão se cadastrar no site do GPO e solicitar um usuário e senha para o moderador. O site também é um excelente auxílio para os novatos em Oracle e tem um vasto acervo para quem já está na trilha a algum tempo.

Para utilizar este novo serviço, o MyDB, acesse o link:
http://www.profissionaloracle.com.br/modules.php?name=Content&pa=showpage&pid=22

sábado, 11 de outubro de 2008

Shorewall, uma excelente opção para firewall Linux

Este artigo é direcionado àqueles que desejam implementar o Shorewall como interface de configuração de regras de Iptables. O Shoreline, mais conhecido como Shorewall, possibilita uma configuração mais organizada e rápida do seu firewall. O servidor utilizado neste artigo é um Debian Etch 4.

Vamos ao que interessa!

Instalar os pacotes

# apt-get install shorewall shorewall-doc


Copiar os arquivos de exemplo para o diretório de configuração do shorewall

# cp /usr/share/doc/shorewall/examples/two-interfaces/* /etc/shorewall/.


Uma rápida explicação de cada arquivo de configuração, para uma implementação simples de firewall.

Zones

Neste arquivo é definido os tipos de zonas de sua rede. Os três tipos de zonas mais utilizados são:

loc – Define a zona local. Será utilizado para definir regras para a rede local.

net – Define a zona de Internet. Será utilizado para definir regras para o link de dados.

dmz – Define a zona delimitada.

A variável FW já é uma zona declarada implicitamente. Essa zona corresponde-se ao firewall e é utilizado para definir regras para o mesmo.

Editar o arquivo /etc/shorewall/zones e inserir a seguinte configuração:

################################################################
#ZONE TYPE OPTIONS IN OUT
################################################################
net ipv4
loc ipv4

# NUNCA REMOVER ESTA LINHA

Obs.: A zona FW não precisa ser definida, pois como já disse é implicitamente definida.


Interfaces

Neste arquivo são atribuídas zonas às interfaces de rede. Antes de tudo deverá existir uma estrutura de rede. Neste artigo estou utilizando eth0 para Internet (DHCP) e eth1 para rede local (IP STATIC).

Editar o arquivo /etc/shorewall/interfaces e inserir:

#########################################################
#ZONE INTERFACE BROADCAST OPTIONS
#########################################################
net eth0 detect dhcp,tcpflags
loc eth1 detect tcpflags,detectnets,nosmurfs

# NUNCA REMOVA ESTA LINHA


Masq

Mais conhecido como masquerade (mascaramento de rede) o masq define as máscaras de rede e ordem que elas serão apresentadas. Usado por servidores que servem como gateway para rede local.

Editar o arquivo /etc/shorewall/masq e inserir:

##################################################################
#INTERFACE SUBNET ADDRESS PROTO PORT(S) IPSEC
##################################################################
eth0 eth1

# NUNCA REMOVER ESTA LINHA


Policy

Toda política da rede é definida nesta zona. Antes de executar qualquer regra de excessão definida na zona rules (próximo tópico), o Shorewall utiliza as regras globais definidas nesta zona para só então dar prosseguimento às excessões.

Editar o arquivo /etc/shorewall/policy e inserir:

#
# Policies for traffic originating from the firewall ($FW)
#
# If you want open access to the Internet from your firewall, change the
# $FW to net policy to ACCEPT and remove the 'info' LOG LEVEL.
# This may be useful if you run a proxy server on the firewall.
$FW net ACCEPT # LINHA 1
$FW loc ACCEPT # LINHA 2
$FW all REJECT info # LINHA 3

# Policies for traffic originating from the local LAN (loc)
#
# If you want to force clients to access the Internet via a proxy server
# on your firewall, change the loc to net policy to REJECT info.
loc net REJECT info
loc $FW REJECT info
loc ipsec ACCEPT
loc all DROP info

#
# Policies for traffic originating from the Internet zone (net)
#
net $FW DROP info
net loc DROP info
net all DROP info

# THE FOLLOWING POLICY MUST BE LAST
all all REJECT info


# ULTIMA LINHA - NUNCA REMOVA


Uma breve explicação de algumas linhas do conf policy:

LINHA 1 - Todas as requisições do firewall para a internet serão aceitas.
LINHA 2 - Todas as requisições do firewall para a rede local serão aceitas.
LINHA 3 - Todas as requisições do firewall para todos os outros lugares serão rejeitados e devidamente catalogado em log. Por isso o "info" ao final da linha.

As opções de ações usadas nas zonas policy e rules são:

ACCEPT - Aceita pacotes/requisições
REJECT - Rejeita pacotes/requisições e retorna mensagem de rejeição
DROP - Elimina pacotes/requisições e não retorna mensagem alguma

Rules

Nesta zona são definidas as regras finais para o destino e origem de cada pacote/requisição. Após terem passados pelas regras da zona policy, o firewall trata os pacotes com essas excessões e direciona-os para o seu destino/origem finais.

Editar o arquivo /etc/shorewall/rules e inserir:

##################################################################
#ACAO ORIGEM DESTINO PROTO DESTINO ORIGEM
#SOLICITANTE TAXA USUARIO
# ZONA ZONA PORTA PORTA(S)
##################################################################

# Aceita conexoes DNS vindas do firewall para a rede
#
DNS/ACCEPT $FW net

# Permite Ping vindos da "zone loc" para rede
#
Ping/ACCEPT loc $FW
Ping/ACCEPT loc loc

# Rejeita ping vindo da "zone net" batizados como "maus"...
#
Ping/ACCEPT net:200.200.200.00 $FW
Ping/DROP net $FW

ACCEPT $FW loc icmp
ACCEPT $FW net icmp

# Abrindo portas
#
ACCEPT net $FW tcp 22 # SSH
ACCEPT net $FW tcp 9000 # SSH
ACCEPT net $FW tcp 8080 # Tomcat6
ACCEPT net $FW tcp 9100 # Apache2
ACCEPT net $FW tcp 80 # Apache2
ACCEPT net $FW tcp 1521 # Oracle_Listener
ACCEPT net $FW tcp 10000 # Webmin
ACCEPT net $FW tcp 1158 # OEM

# Redirecionando conexões
# Neste exemplo estou direcionando uma requisição vinda da internet
# e direcionando-a para a rede local no IP 192.168.27.2 na porta 4899
#
DNAT $FW loc:192.168.27.2:4899 tcp 1158

# ULTIMA LINHA - NUNCA REMOVA

Esta foi uma breve explicação de como utilizar o Shorewall como firewall. Para quem deseja aprofundar-se neste software e implementar as outras diversas funcionalidades dele, o site oficial é
http://www.shorewall.net/

quinta-feira, 9 de outubro de 2008

Instalação do Oracle 9i no CentOS 5

Hoje não é segredo para nenhum DBA instalar o Oracle Database. Principalmente após a versão 8i, a qual era necessário um verdadeiro "ritual" antes de prosseguir com a instalação. Tenho um servidor de testes com CentOS 5 e um Oracle 10g. Até aqui tudo certo! Precisava clonar um 9i de produção e não tinha mais hardware. Pensei numa VM, no entanto, precisava realizar testes de backup em fita, testes utilizando a aplicação, etc. Enfim, tornou-se inviável. Daí, surgiu a idéia de quebrar paradigmas e subir o Oracle 9i no CentOS 5.

1 - Criação de usuário e grupos

# groupadd oinstall
# groupadd dba

# useradd -g oinstall -G dba oracle
# passwd oracle (digite o password)


2 - Criação de diretórios

# mkdir -p /u01/app/oracle/product/9.2.0
# mkdir -p /u02/oradata
# chown -R oracle.oinstall /u01
# chmod 775 -R /u01 /u02


3 - Parametros do Kernel em /etc/sysctl.conf

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

# /sbin/sysctl -p


4 - Parametros em /etc/security/limits.conf

oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384


5 - Parametros em /etc/profile

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi


6 - Criação de àrea swap (se não foi definida na instalação do S.O)

Criação do arquivo
# dd if=/dev/zero of=/swapfile bs=1024 count=1024000

Formatação do arquivo
# /sbin/mkswap /swapfile

Ativação do arquivo
# /sbin/swapon /swapfile

Inserção no /etc/fstab para montagem automatica
/swapfile swap swap defaults 0 0


7 - Variáveis em /home/oracle/.bash_profile

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/9.2.0; export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$ORACLE_HOME/bin:$PATH; export PATH
ORACLE_OWNER=oracle; export ORACLE_OWNER
ORACLE_SID=dbname; export ORACLE_SID
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib:/usr/X11R6/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib; export CLASSPATH

#LD_ASSUME_KERNEL=2.4.19; export LD_ASSUME_KERNEL # Somente para RHEL4 desmarque essa opção
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR


8 - Pacotes e dependências

No CD do Centos5, instale os seguintes pacotes:

# rpm -Uvh binutils*
# rpm -Uvh compat-libstdc++*
# rpm -Uvh compat-db-*
# rpm -Uvh compat-gcc-34*
# rpm -Uvh compat-gcc-34-c++-*
# rpm -Uvh compat-libgcc-*
# rpm -Uvh fontconfig-devel*
# rpm -Uvh freetype-devel*
# rpm -Uvh gcc-*
# rpm -Uvh gcc-c++-*
# rpm -Uvh giflib-*
# rpm -Uvh gnome-libs-*
# rpm -Uvh gnome-libs-devel-*
# rpm -Uvh libaio-*
# rpm -Uvh libaio-devel-*
# rpm -Uvh libXp-*
# rpm -Uvh libXp-devel*
# rpm -Uvh make-*
# rpm -Uvh openmotif*
# rpm -Uvh ORBit-*
# rpm -Uvh xorg-x11-devel*
# rpm -Uvh xorg-x11-deprecated-libs-devel-*

Se houver a necessidade de algum pagote, eis aqui um ZIPACOTÃO.
http://ox0spy.googlepages.com/download.zip


9 - Ajustes antes do runInstaller

9.1 - Criação de link simbólico da biblioteca libstdc++ para a versão compatí­vel

# ln -s /usr/lib/libstdc++-3-libc6.2-2-2.10.0.so /usr/lib/libstdc++-libc6.1-1.so.2

9.2 - Download e instação dos seguintes pacotes:
http://oss.oracle.com/projects/compat-oracle/dist/files/RedHat/compat-libcwait-2.1-1.i386.rpm
http://oss.oracle.com/projects/compat-oracle/dist/files/RedHat/compat-oracle-rhel4-1.0-5.i386.rpm

# rpm -ivh compat-libcwait-2.1-1.i386.rpm
# rpm -ivh compat-oracle-rhel4-1.0-5.i386.rpm --nodeps

9.3 - Criação de link simbólico da biblioteca gcc para a versão compatível

# ln -s /usr/bin/gcc34 /usr/bin/gcc32

9.4 - Logado como oracle, executar o runInstaller e prosseguir conforme a necessidade. Instalar somente o software Oracle, pois o banco de dados pode ser criado posteriormente com o dbca

$ cd /disk1
$ ./runinstaller


10 - Ajustes após runInstaller. Necessário para a criação do banco de dados utilizando as ferramentas DBCA/NETCA

10.1 - Criação de link simbólico da biblioteca libgdbm para a versão compatí­vel

# ln -s /usr/lib/libgdbm.so.2.0.0 /usr/lib/libdb.so.2

10.2 - Remoção e ajustes de diretórios da JRE. Esses acertos de JRE são utilizados tanto no CentOS 5, quanto no RedHat, pois é uma falha de versões da JRE no OUI.

$ cd $ORACLE_HOME
$ rm JRE
$ ln -s $ORACLE_BASE/jre/1.3.1 JRE
$ cd JRE/bin
$ ln -s java jre
$ cd i386/native_threads/
$ ln -s java jre

Pronto! Você tem um SGBD pronto para a utilização e já pode utilizar o DBCA para criação de seu banco.

Quanto à clonagem do banco, aí é pano para outra manga...

Links utilizados para elaboração deste artigo:
http://hi.baidu.com/ox0spy/blog/item/7e85c6860d188e3b67096e07.html%20(JAP)
http://kr.forums.oracle.com/forums/thread.jspa?messageID=2595108%20%28ENG%29

domingo, 21 de setembro de 2008

Instalação Oracle 10g no RHEL 4

1 - Criar usuários e grupos - como root

# groupadd dba
# groupadd oinstall
# useradd oracle –g dba –G oinstall –c “Oracle Database 10g - Owner User” –d /home/oracle
# passwd oracle (inserir password)

2 - Criar diretórios e permissões - como root

# mkdir –p /u01/app/oracle
# mkdir –p /u02/oradata
# chown –R oracle.dba /u01
# chown –R oracle.dba /u02
# chmod 775 –R /u01 /u02

3 - Setar e exportar variáveis ambientais no profile do usuário (.bash_profile em /home/oracle)


ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0; export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$ORACLE_HOME/bin:$PATH; export PATH
ORACLE_OWNER=oracle; export ORACLE_OWNER
ORACLE_SID=teste; export ORACLE_SID

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

#LD_ASSUME_KERNEL=2.4.19; export LD_ASSUME_KERNEL
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
export PATH
unset USERNAME


4 - Adicionar parâmetros de controle do kernel (sysctl.conf em /etc) - como root

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

5-Parâmetros de segurança do kernel (limits.conf em /etc/security) - como root

oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384

6 - Preparar o S.O (pré-requisitos de pacotes e dependências) - como root

• binutils-2.17.50.0.6
• compat-libstdc++-33-3.2.3
• compat-libstdc++-33-3.2.3 (32 bit)
• elfutils-libelf-0.125
• elfutils-libelf-devel-0.125
• gcc-4.1.1
• gcc-c++-4.1.1
• glibc-2.5-12
• glibc-2.5-12 (32 bit)
• glibc-common-2.5
• glibc-devel-2.5
• glibc-devel-2.5-12 (32 bit)
• libaio-0.3.106
• libaio-0.3.106 (32 bit)
• libaio-devel-0.3.106
• libgcc-4.1.1
• libgcc-4.1.1 (32 bit)
• libstdc++-4.1.1
• libstdc++-4.1.1 (32 bit)
• libstdc++-devel 4.1.1
• make-3.81
• sysstat-7.0.0

7 - Instalar o software Oracle e suas ferramentas

Execução do runInstaller no Shell do usuário oracle

Obs.: Instalar somente o SGBD

8 - Criar o banco de dados utilizando o dbca

Gerar scripts de criação

Gerar HTML com parâmetros de criação do banco de dados

Dica de startup automático:
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=4468