Instalando o Oracle Database Enterprise 11g no Ubuntu Linux 12.04 64bits na nuvem

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.

Deixe uma resposta

Or