Categorias
Linux Oracle

Oracle 11g em Linux 64 bits – primeiras impressões

Comecei baixando o instalador de 1.8Gb do Oracle 11 para Linux 64 bits do site da Oracle. Para baixá-lo você precisa se cadastrar no site (não se preocupe, é gratuito).

Com mais de 300 distribuições Linux por aí, como a Oracle garante a compatibilidade com todas elas? É simples: ela não garante, ela oferece suporte apenas a algumas, o resto você usa por sua conta e risco. Consulte essa página para verificar se o seu Linux é compatível.

De acordo com o link acima, temos a seguinte lista de distribuições suportadas pelo 11g:

SLES-10
Red Hat Enterprise AS/ES 4 e 5
Oracle Enterprise Linux 4 e 5
Asianux Server 2 e 3

Pois bem , o meu linux não é nenhum desses, é o Gentoo Linux, mas mesmo assim continuarei a instalação.

Para verificar os pré-requisitos, acessei a documentação do 11g para ver se existia algum passo antes da instalação.
Está procurando por um guia rápido no meio de tanta documentação? Experimente esse aqui.

A sequência de comandos para criar os usuários e grupos necessários:

cascao ~ # /usr/sbin/groupadd oinstall
cascao ~ # /usr/sbin/groupadd dba
cascao ~ # id oracle
id: oracle: No such user
cascao ~ # /usr/sbin/useradd -d /home/oracle -g oinstall -G dba oracle
cascao ~ # passwd oracle
New UNIX password:
BAD PASSWORD: it is based on a (reversed) dictionary word
Retype new UNIX password:
passwd: password updated successfully
cascao ~ # id nobody
uid=65534(nobody) gid=65534(nobody) groups=65534(nobody)
cascao ~ # id oracle
uid=1001(oracle) gid=1010(oinstall) groups=1010(oinstall),1011(dba)

Agora os comandos para criar os diretórios onde o Oracle vai ficar:

cascao ~ # mkdir -p /home/oracle
cascao ~ # chown -R oracle:oinstall /home/oracle
cascao ~ # mkdir -p /oracle/app/
cascao ~ # chown -R oracle:oinstall /oracle/app/
cascao ~ # chmod -R 775 /oracle

Depois logue-se como Oracle e crie o arquivo com as variáveis de ambiente:

cascao ~ # su – oracle
oracle@cascao ~ $ vi .bash_profile

Coloque dentro desse arquivo:

umask 022
export ORACLE_SID=o11g
export ORACLE_HOME=/oracle/app
export ORACLE_BASE=/oracle
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME\lib
export DISPLAY=:0.0
export JAVA_HOME=/oracle/app/jdk
export PATH=$ORACLE_HOME/bin:$JAVA_HOME/bin:$PATH

Depois saia e entre de novo, concedendo o privilégio de usar o ambiente gráfico:

oracle@cascao ~ $ exit
logout
cascao ~ # xhost +
access control disabled, clients can connect from any host
cascao ~ # su – oracle
oracle@cascao ~ $

Tem vários parâmetros de kernel para ajustar, mas eu não vou mexer em nenhum, afinal não estou instalando num servidor de produção, estou instalando na minha máquina local para testes.

Agora vamos iniciar a instalação:

oracle@cascao ~ $ cd /oracle/installer/
oracle@cascao /oracle/installer $ ./runInstaller
Starting Oracle Universal Installer…

Checking Temp space: must be greater than 120 MB. Actual 13701 MB Passed
Checking swap space: must be greater than 150 MB. Actual 3620 MB Passed
Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2007-11-20_01-48-11AM. Please wait …

A seguir a sequência de telas que o instalador mostrará, eu tirei a opção padrão de criar o banco de dados, já que ele cria com muito mais coisas do que preciso. Após a instalação eu criarei o banco de dados.

Eu também alterei o diretório do inventário do instalador, ele sugere na raiz mas eu coloquei dentro do /oracle.

Depois ele roda uma lista de pré-requisitos do seu sistema, alguns não vão funcionar, continue a instalação apesar desse aviso:

Aqui o resumo da instalação:

Aqui começa a copiar os arquivos. Talvez dê algum erro de rebuild mais para o final, simplesmente ignore todos os erros.

Depois essa janela exibe os scripts necessários para rodar:

Depois rode os scripts em outra shell como root:

cascao ~ # sh /oracle/oraInventory/orainstRoot.sh
Changing permissions of /oracle/oraInventory to 770.
Changing groupname of /oracle/oraInventory to oinstall.
The execution of the script is complete
cascao ~ # sh /oracle/app/root.sh
Running Oracle 11g root.sh script…

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /oracle/app

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.
cascao ~ #

E finalmente temos a tela final da instalação:

Depois de instalar, vamos configurar o listener do Oracle chamando o Network Configuration Assistant (na linha de comando:netca). Infelizmente eu perdi as telas, mas é basicamente sempre clicar em next e depois no finish, são apenas meia dúzia de telas.

Para verificar se configurou o listener corretamente, verifique o status do mesmo:

oracle@cascao ~ $ lsnrctl start

LSNRCTL for Linux: Version 11.1.0.6.0 – Production on 21-NOV-2007 01:17:11

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

Starting /oracle/app/bin/tnslsnr: please wait…

TNSLSNR for Linux: Version 11.1.0.6.0 – Production
System parameter file is /oracle/app/network/admin/listener.ora
Log messages written to /oracle/diag/tnslsnr/cascao/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cascao)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cascao)(PORT=1521)))
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for Linux: Version 11.1.0.6.0 – Production
Start Date 21-NOV-2007 01:17:11
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /oracle/app/network/admin/listener.ora
Listener Log File /oracle/diag/tnslsnr/cascao/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cascao)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
oracle@cascao ~ $

Agora vamos criar o banco de dados, chamando o aplicativo dbca (Database Configuration Assistant), se por acaso você enfrentar esse erro:

oracle@cascao ~ $ dbca
UnsatisfiedLinkError exception loading native library: njni11
Exception in thread “main” java.lang.UnsatisfiedLinkError: get
at oracle.net.common.NetGetEnv.get(Native Method)
at oracle.net.config.Config.getNetDir(Unknown Source)

De acordo com esse tutorial, é preciso instalar a biblioteca libaio para o funcionamento correto.

Aqui apenas uma tela de bem-vindo (alias a Oracle adora essas coisas!):

Selecione a opção “Create Database”:

Selecione a opção “Custom Database”:

Coloque o nome do banco “o11g”, a Oracle sempre sugere um nome com até 5 letras:

Habilite o uso do Enterprise Manager para facilitar a manipulação do banco depois, mas retire as opções de alerta e backup:

Digite uma senha para todos os usuários admins:

Escolha a opção “File System” :

Selecione a primeira opção para instalar nos diretórios padrão do Oracle:

Retire as opções de Flash Recovering e Archiving:

Selecione apenas a opção do repositório do EM:

Na aba “Memory” escolha a opção que menos ocupe memória:

Na aba “Sizing” não precisa alterar nada:

Na aba “Character Set” escolha as opções que suportem UTF8:

Na aba “Connection Mode” não precisa alterar nada:

Retire as opções de segurança:

Retire a opção de manutenção automática:

Reduza o tamanho dos arquivos dos datafiles, os redologs eu deixei só 5Mb cada:

A tablespace de rollback eu deixei apenas 50Mb:

Antes de executar existe a opção de gravar os scripts, faça isso, vale a pena depois dar uma olhada do que foi instalado e como foi feito:

Se a sua instalação estiver correta, você verá uma tela como essa:

Agora vamos nos conectar com o SQL*Plus para testar o banco de dados:

oracle@cascao ~ $ sqlplus system

SQL*Plus: Release 11.1.0.6.0 – Production on Tue Nov 20 16:56:21 2007

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

Enter password:

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

SQL> select * from v$version;

BANNER
——————————————————————————–
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 – 64bit Production
PL/SQL Release 11.1.0.6.0 – Production
CORE 11.1.0.6.0 Production
TNS for Linux: Version 11.1.0.6.0 – Production
NLSRTL Version 11.1.0.6.0 – Production
SQL>

Pronto! Agora temos um Oracle 11g razoavelmente enxuto!

Vou derrubar o banco de dados para continuar os testes outro dia:

oracle@cascao /oracle $ sqlplus /nolog

SQL*Plus: Release 11.1.0.6.0 – Production on Tue Nov 20 22:20:19 2007

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

SQL> connect / as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

No final dessa instalação o diretório /oracle ficou com 7.1Gb de espaço em disco ocupado.

Em breve eu publico novos testes com essa versão. Até! =)

Fernando Boaglio, para a comunidade. =)