Este tutorial descreve a instalação do Oracle Enterprise 11g no Ubuntu Linux 12.04 64 bits em um servidor na nuvem.
Existem várias empresas que oferecem o serviço de cloud computing que disponibilizam a imagem do Ubuntu Linux.
Lembrando que a Oracle não oferece suporte ao Ubuntu Linux (Distribuições Linux suportadas: Oracle Linux 5 e 6, Red Hat Enterprise Linux 5 e 6, SUSE Linux Enterprise Server 10 e 11). Em outro artigo abordadei a instalação com uma imagem (AMI) do Oracle Enterprise Linux Release 6 com suporte a EBS na Amazon EC2.
A instalação não é muito trivial, siga corretamente os passos para não encontrar uns erros malucos.. ou mesmo assim pode encontrar. Se não precisa das versões Enterprise ou Standard do Oracle database, sugiro instalar a versão XE, é bem mais fácil e prático(tem pacotes RPM pra instalação).
Download do Oracle Enterprise 11g
Disponível em: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html
Baixe a versão correta para 64bits, caso contrário vários erros irão acontecer na instalação.
Envie para seu servidor cloud e descompacte os arquivos:
unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip
Preparando o linux
Configurando memória swap
Caso a VM não possua Swap, adicione com a mesmo tamanho da memória RAM:
Este exemplo cria uma swap de 4Gb:
dd if=/dev/zero of=/swap bs=1M count=4096 chmod 600 /swap mkswap /swap swapon /swap
Adicione no /etc/fstab para carregar na inicialização:
/swap none swap sw 0 0
Atualize seus repositórios
apt-get update
Instalando a interface gráfica
Eu particularmente prefiro do IceWM por ser um gerenciador leve, prático e disponível nos repositórios, você pode instalar outro de sua preferência. Na verdade não gosto de gerenciar servidores remotos pela interface gráfica, mas para a instalação do Oracle é um mal necessário ;/
Para ter um acesso remoto rápido, a minha dica é instalar um servidor VNC. Você pode utilizar um túnel SSH para tornar a conexão segura. Ou se preferir pode conectar de outras maneiras como por exemplo utilizando o X11Forwarding do ssh (ssh -X oracle@servidorremoto), indicado caso você utilize uma rede local, mas se for pela Internet é bem, mas bem mais lento que o vnc.
apt-get install vnc4server x-window-system-core icewm eterm
Instalando pacotes necessários
apt-get install alien autoconf automake autotools-dev binutils bzip2 doxygen elfutils expat gawk gcc gcc-multilib g++-multilib ksh less lesstif2 lesstif2-dev lib32z1 libaio1 libaio-dev libc6-dev libc6-dev-i386 libc6-i386 libelf-dev libltdl-dev libpth-dev libpthread-stubs0 libpthread-stubs0-dev libstdc++5 lsb-cxx make openssh-server pdksh rlwrap rpm sysstat unixodbc unixodbc-dev unzip x11-utils zlibc
Adicionando usuário e grupos
Adicione os grupos, o usuário oracle, permissão para o diretório e troque a senha do usuario oracle:
groupadd dba groupadd oinstall mkdir -p /u01/oracle useradd -g oinstall -G dba -d /u01/oracle -s /bin/bash oracle chown -R oracle:oinstall /u01 passwd oracle
Atualizando parâmetros do kernel:
Adicione no /etc/sysctl.conf:
Troque a variável kernel.shmmax conforme o tamanho da sua memória.
# # Oracle 11g # kernel.sem = 250 32000 100 128 kernel.shmall = 2097152 kernel.shmmni = 4096 # Replace kernel.shmmax with the half of your memory in bytes # if lower than 4Go minus 1 # 1073741824 is 1 GigaBytes kernel.shmmax=4294967296 # Try sysctl -a | grep ip_local_port_range to get real values net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 # Max value allowed, should be set to avoid IO errors fs.aio-max-nr = 1048576 # 512 * PROCESSES / what really means processes ? fs.file-max = 6815744 # To allow dba to allocate hugetlbfs pages # 1001 is your oinstall group, id. grep oinstall /etc/group will give this value vm.hugetlb_shm_group = 1001
Adicione no /etc/security/limits.conf:
# Oracle oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240
Compatibilidade
Alguns links são necessários:
ln -s /usr/lib/x86_64-linux-gnu /usr/lib64 ln -sf /bin/bash /bin/sh ln -s /usr/bin/awk /bin/awk ln -s /usr/bin/rpm /bin/rpm ln -s /usr/bin/basename /bin/basename cd /lib64;ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 .
Importante, é necessário instalar o gcc versão 4.4:
apt-get install gcc-4.4
Após a instalação é necessário mudar o link do gcc:
Localizando o gcc:
# whereis gcc gcc: /usr/bin/gcc /usr/lib/gcc /usr/bin/X11/gcc /usr/share/man/man1/gcc.1.gz
Verifique a versão corrente:
# gcc --version gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Caso for outra, atualize o link para a versão 4.4
ls -la /usr/bin/gcc lrwxrwxrwx 1 root root 7 Mar 13 2012 /usr/bin/gcc -> gcc-4.6 #rm -f /usr/bin/gcc # ln -s /usr/bin/gcc-4.4 /usr/bin/gcc # gcc --version gcc (Ubuntu/Linaro 4.4.7-1ubuntu2) 4.4.7
Pronto.
Hostname
Verifique se o seu IP esta corretamente no /etc/hosts
caso não, adicione como o exemplo:
192.168.x.x oracle
Erro: ERROR INVOKING TARGET “agent nmhs”
Caso o erro apareça durante a instalação não a feche, execute na mesma shell de onde você executou a instalação:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
Pronto, pode clicar para continuar..
Inicializando o VNC
Inicialize o vnc server com o usuário oracle, na primeira vez será pedido para definir uma senha para o vnc.
su oracle vncserver
Conecte a interface gráfica do seu servidor por um cliente vnc pela porta 5901:
Instalando
após descompactar os arquivos de instalação, temos o diretório database/
execute o script database/runInstaller, conectado ao vnc do seu server:
Agora é só seguir a instalação…
Não vou detalhar aqui a instalação, segue o padrão:
Passo 1: Defina um e-mail, e não selecione a opção para atualizações.
Passo 2: Skip software updates
Passo 3: Create and configure a database
Passo 4: Server class
Passo 5: Single instance database installation
Passo 6: Advanced Install
Passo 7:Linguagens
Passo 8: Selecione a versão desejada
Passo 9: Diretório padrão /u01/app/oracle
Passo 10: diretório padrão
Passo 11: Global database name, padrão: “orcl”
Passo 12: Memória
Passo 13: Use oracle enterprise manager
Passo 14:File system
Passo 15: Use the same password for all accounts: defina aqui uma senha para o admin
Passo 16: Ignore all – ignore as incompatibilidades
Passo 17 a 19: instalando e finalizando a instalação…
Finalizando a instalação
Execute os scripts como root, como o final da instalação sugere:
/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
Pronto, agora seu oracle esta instalado.
Pós instalação
Variáveis de ambiente:
Adicione o seguinte conteúdo no arquivo /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
Adicione as seguintes variavies pro usuário do oracle:(no arquivo /u01/oracle/.bashrc)
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib export PATH=$PATH:$ORACLE_HOME/bin
Caso tenha escolhido o nome na instalação de “orcl”
adicione tambem a variável abaixo com o nome escolhido:
export ORACLE_UNQNAME=orcl
Carregue o arquivo com as variáveis atuais (se ainda estiver na mesma shell, para novos logins as variáveis serão carregadas automaticamente):
source /u01/oracle/.bashrc
Edite o arquivo /etc/oratab, e troque o N no final da linha para Y
orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y
Iniciando o banco o e console:
Para iniciar:
dbstart $ORACLE_HOME
Para iniciar console
emctl start dbconsole
Acessando o console
pode ser acessado pelo ip do seu servidor na porta 1158:
https://200.122.x.x:1158/em
usuario system e a senha que você escolheu
Acessando o banco pela linha de comando:
sqlplus system@orcl
Este tutorial não prevê a configuração avançada do oracle, como a criação de um novo tablespace, etc. Será utilizado tablespace padrão USERS.