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

9 comentários:

Unknown disse...

I'm Chinese!

Anônimo disse...

Sorry ox0spy!

You are Chinese...

Rondineli Saad disse...

Olá Leandro, parabéns pelo artigo que por sinal está bem escrito e esclarecedo. Contudo, tentei fazer a instalação no CentOS 5 e ao iniciar o Instalador do Oracle, o botão Próximo não funciona, fica travado. Você já viu um caso assim?
abçs
Rondineli Saad

Rondineli Saad disse...

ao chamar o runInstaller as seguintes advertencias aparecem antes do assistente:
#Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
#Font specified in font.properties not found [--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]
Warning: Cannot convert string "<#Key>Escape,_Key_Cancel" to type VirtualBinding
Warning: Cannot convert string "<#Key>Home,_Key_Begin" to type VirtualBinding
Warning: Cannot convert string "<#Key>F1,_Key_Help" to type VirtualBinding
Warning: Cannot convert string "Shift<#Key>F10,_Key_Menu" to type VirtualBinding
Warning: Cannot convert string "<#Key>F10,Shift_Key_Menu" to type VirtualBinding
Warning: Cannot convert string "<#Key>KP_Enter,_Key_Execute" to type VirtualBinding
Warning: Cannot convert string "Alt<#Key>Return,Alt_Key_KP_Enter" to type VirtualBinding
View passed to RootItemDataSource does not contain data in TopicTree format.

Anônimo disse...

Rondineli,

Provavelmente algo deu errado na instalação dos pacotes das bibliotecas. Tente instalá-las individualmente. Não esqueça que alguns pacotes devem ser obtidos fora do CD do CentoS5. Para isso deixei um link que citei como ZIPACOTÃO.

Abraço.

danilo disse...

Bom dia Leandro

Durante o processo de instalação do software acabei me deparando com o seguinte problema:

Installing Oracle Required Support Files 32 bits 9.2.0.1.0


Link pending...

Copying naeet.o


stop 17%



You can find a log of this install session at:
/u01/app/oracle/oraInventory/logs/installActions2012-08-14_09-02-22AM.log


pesquisando uma das possiveis soluções seria instalar as patchset 9206 e patchset 9207 para correçoes do software e adaptação ao sistema operacional por acaso vc saberia de uma outra tecnica para resolução deste problema
detalhes :
Centos 5 i686 i686 i386 GNU/Linux
Oracle 9i 9.2.0.4

Unknown disse...

cara, fantastico seu tutorial!! alguns RPM tive que pegar de outros projetos, como Fedora 4. Mas tirando isso, tudo funcionou normalmente.

Unknown disse...
Este comentário foi removido pelo autor.
Unknown disse...

Otimo HowTo!!!
Instalacao funcionou perfeitamente em um CentOS 5.9, porém utilizei alguns pacotes de outros projetos como Fedora 4.
Obrigado.
2013