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. =)