Differences

This shows you the differences between two versions of the page.

Link to this comparison view

instalando_e_configurando_o_oracle_database_10g_no_centos_5.5_pt_br [2017/09/05 12:18] (current)
Line 1: Line 1:
 +====== Instalando e Configurando o Oracle DataBase 10G no Centos 5.5  ======
  
 +
 +**Vou levar em consideração que o CentOS 5.5 está instalado e com o ambiente gráfico.**
 +
 +Informações da máquina:
 +    * IP: 192.168.0.50/​24
 +    * Nome: oracle
 +    * Domínio: douglasqsantos.com.br
 +
 +Vamos ajustar o nome da máquina
 +<sxh bash>
 +vim /etc/hosts
 +127.0.0.1 ​      ​oracle10.lab.lan oracle10 localhost.localdomain localhost
 +::1             ​localhost6.localdomain6 localhost6
 +192.168.0.50 ​   oracle10.douglasqsantos.com.br oracle10
 +</​sxh>​
 +
 +Vamos instalar as dependências,​ eu vou utilizar os repositórios default do CentOS
 +
 +<sxh bash>
 +yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio libaio-devel \
 +libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh libXp libXp-devel openmotif setarch ​ -y
 +</​sxh>​
 +
 +Vamos agora ajustar as variáveis do kernel para o Oracle
 +<sxh bash>
 +vim /​etc/​sysctl.conf
 +#​kernel.shmall = 2097152
 +#​kernel.shmmax = 2147483648
 +kernel.shmmni = 4096
 +# semaphores: semmsl, semmns, semopm, semmni
 +kernel.sem = 250 32000 100 128
 +#​fs.file-max = 65536
 +net.ipv4.ip_local_port_range = 1024 65000
 +net.core.rmem_default=262144
 +net.core.rmem_max=262144
 +net.core.wmem_default=262144
 +net.core.wmem_max=262144
 +</​sxh>​
 +
 +Agora vamos carregar elas 
 +<sxh bash>
 +sysctl -p
 +</​sxh>​
 +
 +Agora precisamos ajustar as variáveis de controle de uso do sistema para o oracle
 +<sxh bash>
 +vim  /​etc/​security/​limits.conf
 +[...]
 +#Adicionar no final do arquivo
 +oracle soft nproc 2047
 +oracle hard nproc 16384
 +oracle soft nofile 1024
 +oracle hard nofile 65536
 +</​sxh>​
 +
 +Agora vamos adicionar a biblioteca de controle de limites no login
 +<sxh bash>
 +echo "​session required pam_limits.so"​ >> /​etc/​pam.d/​login
 +</​sxh>​
 +
 +Agora precisamos deixar o selinux desabilitado
 +<sxh bash>
 +vim /​etc/​selinux/​config
 +[...]
 +SELINUX=disabled
 +</​sxh>​
 +
 +Agora vamos criar os grupos que serão utilizados pelo Oracle
 +<sxh bash>
 +groupadd oinstall
 +groupadd dba
 +groupadd oper
 +</​sxh>​
 +
 +Agora vamos criar o usuário oracle
 +<sxh bash>
 +useradd -m -g oinstall -G dba oracle
 +</​sxh>​
 +
 +Agora vamos definir a senha do nosso Oracle
 +<sxh bash>
 +passwd oracle
 +</​sxh>​
 +
 +Agora vamos criar o diretório para armazenar a instalação do Oracle
 +<sxh bash>
 +mkdir -p /​u01/​app/​oracle/​product/​10.2.0/​db_1
 +</​sxh>​
 +
 +Agora vamos ajustar as permissões dos diretórios
 +<sxh bash>
 +chown -R oracle.oinstall /u01
 +</​sxh>​
 +
 +Agora vamos fazer um backup do arquivo que controla a versão do CentOS
 +<sxh bash>
 +cp /​etc/​redhat-release /​etc/​redhat-release.bkp
 +</​sxh>​
 +
 +Agora vamos ajustar a versão que o Oracle vai esperar para a instalação
 +<sxh bash>
 +echo "​redhat-4">​ /​etc/​redhat-release
 +</​sxh>​
 +
 +Agora vamos ajustar as variáveis de ambiente do Oracle
 +<sxh bash>
 +vim /​home/​oracle/​.bash_profile
 +[...]
 +#Adicionar no final do arquivo
 +TMP=/tmp; export TMP
 +TMPDIR=$TMP;​ export TMPDIR
 +
 +ORACLE_BASE=/​u01/​app/​oracle;​ export ORACLE_BASE
 +ORACLE_HOME=$ORACLE_BASE/​product/​10.2.0/​db_1;​ export ORACLE_HOME
 +ORACLE_SID=TSH1;​ export ORACLE_SID
 +ORACLE_TERM=xterm;​ export ORACLE_TERM
 +PATH=/​usr/​sbin:​$PATH;​ export PATH
 +PATH=$ORACLE_HOME/​bin:​$PATH;​ export PATH
 +
 +LD_LIBRARY_PATH=$ORACLE_HOME/​lib:/​lib:/​usr/​lib;​ export LD_LIBRARY_PATH
 +CLASSPATH=$ORACLE_HOME/​JRE:​$ORACLE_HOME/​jlib:​$ORACLE_HOME/​rdbms/​jlib;​ export CLASSPATH
 +
 +if [ $USER = "​oracle"​ ]; then
 +if [ $SHELL = "/​bin/​ksh"​ ]; then
 +ulimit -p 16384
 +ulimit -n 65536
 +else
 +ulimit -u 16384 -n 65536
 +fi
 +fi
 +</​sxh>​
 +
 +Note que aqui foi setado o SID default do Oracle como TSH1 que é o nome do banco default que o Oracle gera caso utilize outro nome para a instância precisamos mudar essa variável.
 +
 +
 +Agora vamos dar permissão no diretório que contém os arquivos de instalação do Oracle para o usuário oracle
 +<sxh bash>
 +chown -R oracle /​usr/​src/​database10gR2/​
 +</​sxh>​
 +
 +Agora vamos acessar o servidor com o usuário Oracle.
 +
 +Podemos exportar o display para outro host
 +
 +Podemos acessar o servidor via ssh mandando exportar o X
 +<sxh bash>
 +ssh -X oracle@192.168.0.50
 +</​sxh>​
 +
 +Agora vamos liberar o Oracle a exportar a tela de instalação
 +<sxh bash>
 +xhost +
 +</​sxh>​
 +
 +Agora vamos chamar o instalador do Oracle
 +<sxh bash>
 +/​usr/​src/​database10gR2/​runInstaller
 +</​sxh>​
 +
 +Vamos ter a seguinte tela
 +
 +{{:​oracle10g1.png?​500|}}
 +
 +Aqui vamos selecionar Advanced Installation e selecione Next
 +
 +Agora vamos ter a seguinte tela para armazenar os arquivos do Oracle
 +
 +{{:​oracle10g2.png?​500|}}
 +
 +Aqui vamos deixar como na imagem e vamos selecionar Next
 +
 +Agora precisamos selecionar a versão do nosso Oracle escolha a que você achar melhor eu vou deixar a default Enterprise Edition note que ela vai precisar de no mínimo 1.60GB ​
 +
 +{{:​oracle10g3.png?​500|}}
 +
 +Aqui vamos selecionar Next
 +
 +Agora precisamos passar a path do diretório aonde vai ser instalado o Oracle vamos deixar a default como na imagem e o nome vamos deixar como db_1
 +
 +{{:​oracle10g4.png?​500|}}
 +
 +
 +Agora vamos selecionar Next
 +
 +
 +Agora vamos ter as checagens dos pre-requisitos aqui no meu caso o Oracle está me alertando sobre a configuração da interface com DHCP
 +
 +{{:​oracle10g5.png?​500|}}
 +
 +Aqui selecione Next
 +
 +No meu caso vou ter um warn apenas selecione yes
 +
 +
 +Agora vamos ter a opção de instalar somente o software de SGDB ou criar um Banco de dados vamos selecionar Create a database como na imagem
 +
 +{{:​oracle10g6.png?​500|}}
 +
 +
 +Aqui selecione Next
 +
 +
 +Aqui vamos ter os tipos de configuração para o banco eu vou escolher transactional Processing
 +
 +{{:​oracle10g7.png?​500|}}
 +
 +Aqui selecione Next
 +
 +
 +Agora vamos ter o nome global do banco de dados e o seu SID como TSH1 eu vou deixar esse padrão que foi o que eu defini no .bash_profile do usuário oracle
 +
 +{{:​oracle10g8.png?​500|}}
 +
 +Aqui selecione Next
 +
 +Agora temos a opção de utilizar o Database Management que é uma ferramente web para o gerenciamento da nossa instancia do Banco de dados eu vou deixar habilitado Use Database Cotnrol for Database Management
 +
 +{{:​oracle10g9.png?​500|}}
 +
 +Aqui selecione Next
 +
 +Agora temos a opção de especificar o mecanismo de armazenamento do Banco de dados eu não estou utilizando ASM então vou deixar a primeira opção File System
 +
 +{{:​oracle10g10.png?​500|}}
 +
 +Aqui selecione Next
 +
 +Agora podemos especificar se o Oracle vai fazer o backup automático do nosso banco de dados na FRA no File System ou no ASM eu não vou habilitar essa opção.
 +
 +{{:​oracle10g11.png?​500|}}
 +
 +Aqui selecione Next
 +
 +Agora podemos especificar as senhas para os usuários do Oracle eu vou definir para todos eles a mesma senha depois eu posso modificar isso
 +
 +{{:​oracle10g12.png?​500|}}
 +
 +Aqui selecione Next depois de informar a senha
 +
 +Agora vamos ter um resumo da nossa instalação ​
 +
 +{{:​oracle10g13.png?​500|}}
 +
 +Aqui vamos selecionar Install
 +
 +
 +Agora vamos ter a seguinte tela a instalação do Software SGDB
 +
 +{{:​oracle10g14.png?​500|}}
 +
 +Agora que o SGDB já foi instalado vamos ter a tela de criação do Banco de dados
 +
 +{{:​oracle10g15.png?​500|}}
 +
 +Após a criação do banco de dados vamos ter a seguinte tela
 +
 +{{:​oracle10g16.png?​500|}}
 +
 +Aqui temos informações de como acessar o Enterprise Management aqui selecione Ok
 +
 +Agora vamos ter um aviso que precisamos executar dois script com a permissão de root
 +
 +{{:​oracle10g17.png?​500|}}
 +
 +Vamos executar eles com o usuário root
 +
 +Vamos executar o primeiro script
 +<sxh bash>
 +/​u01/​app/​oracle/​oraInventory/​orainstRoot.sh ​
 +Changing permissions of /​u01/​app/​oracle/​oraInventory to 770.
 +Changing groupname of /​u01/​app/​oracle/​oraInventory to oinstall.
 +The execution of the script is complete
 +</​sxh>​
 +
 +Agora vamos executar o segundo script
 +<sxh bash>
 +/​u01/​app/​oracle/​product/​10.2.0/​db_1/​root.sh
 +Running Oracle10 root.sh script...
 +
 +The following environment variables are set as:
 +    ORACLE_OWNER= oracle
 +    ORACLE_HOME= ​ /​u01/​app/​oracle/​product/​10.2.0/​db_1
 +
 +Enter the full pathname of the local bin directory: [/​usr/​local/​bin]:​ #ENTER
 +   ​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.
 +</​sxh>​
 +
 +Como pode ser notado os dois script foram executados com sucesso então podemos selecionar ok da tela de aviso.
 +
 +Agora vamos ter a seguinte tela se tudo deu certo
 +
 +{{:​oracle10g18.png?​500|}}
 +
 +Aqui vamos selecionar Exit e Yes
 +
 +Agora com o usuário oracle vamos consultar a nossa instancia
 +<sxh bash>
 +lsnrctl status
 +
 +LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 26-APR-2013 09:53:58
 +
 +Copyright (c) 1991, 2005, Oracle. ​ All rights reserved.
 +
 +Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
 +STATUS of the LISTENER
 +------------------------
 +Alias                     ​LISTENER
 +Version ​                  ​TNSLSNR for Linux: Version 10.2.0.1.0 - Production
 +Start Date                26-APR-2013 09:44:18
 +Uptime ​                   0 days 0 hr. 9 min. 39 sec
 +Trace Level               off
 +Security ​                 ON: Local OS Authentication
 +SNMP                      OFF
 +Listener Parameter File   /​u01/​app/​oracle/​product/​10.2.0/​db_1/​network/​admin/​listener.ora
 +Listener Log File         /​u01/​app/​oracle/​product/​10.2.0/​db_1/​network/​log/​listener.log
 +Listening Endpoints Summary...
 +  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
 +  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle10.douglasqsantos.com.br)(PORT=1521)))
 +Services Summary...
 +Service "​PLSExtProc"​ has 1 instance(s).
 +  Instance "​PLSExtProc",​ status UNKNOWN, has 1 handler(s) for this service...
 +Service "​TSH1"​ has 1 instance(s).
 +  Instance "​TSH1",​ status READY, has 1 handler(s) for this service...
 +Service "​TSH1XDB"​ has 1 instance(s).
 +  Instance "​TSH1",​ status READY, has 1 handler(s) for this service...
 +Service "​TSH1_XPT"​ has 1 instance(s).
 +  Instance "​TSH1",​ status READY, has 1 handler(s) for this service...
 +The command completed successfully
 +</​sxh>​
 +
 +Como podemos notar a nossa instancia está ok
 +
 +Vamos acessar o banco para confirmar se ele está ok
 +<sxh bash>
 +sqlplus / as sysdba
 +
 +SQL*Plus: Release 10.2.0.1.0 - Production on Fri Apr 26 09:54:34 2013
 +
 +Copyright (c) 1982, 2005, Oracle. ​ All rights reserved.
 +
 +
 +Connected to:
 +Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
 +With the Partitioning,​ OLAP and Data Mining options
 +
 +SQL> quit
 +Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
 +With the Partitioning,​ OLAP and Data Mining options
 +</​sxh>​
 +
 +Agora com o usuário root
 +Agora vamos voltar o arquivo de controle de versão do CentOS
 +<sxh bash>
 +cp /​etc/​redhat-release.bkp /​etc/​redhat-release
 +</​sxh>​
 +
 +Agora tamos ajustar o oratab aqui vamos mudar o N no final da linha para Y
 +<sxh bash>
 +vim /etc/oratab
 +[...]
 +TSH1:/​u01/​app/​oracle/​product/​10.2.0/​db_1:​Y
 +</​sxh>​
 +
 +Isso vai ser utilizado para podermos subir e baixar o banco com o dbstart
 +
 +Agora vamos criar o script para manipular o banco
 +<sxh bash>
 +vim /​etc/​init.d/​dbora
 +#!/bin/bash
 +#
 +# Init file for Oracle 10G
 +#
 +# chkconfig: 345 55 25
 +# description:​ Oracle 10G
 +
 +ORA_HOME=/​u01/​app/​oracle/​product/​10.2.0/​db_1
 +ORA_OWNER=oracle
 +
 +if [ ! -f $ORA_HOME/​bin/​dbstart ]
 +then
 +    echo "​Oracle startup: cannot start"
 +    exit
 +fi
 +
 +case "​$1"​ in
 +    '​start'​)
 +        # Start the Oracle databases:
 +        # The following command assumes that the oracle login
 +        # will not prompt the user for any values
 +        su - $ORA_OWNER -c "​$ORA_HOME/​bin/​dbstart $ORA_HOME"​
 +        ;;
 +    '​stop'​)
 +        # Stop the Oracle databases:
 +        # The following command assumes that the oracle login
 +        # will not prompt the user for any values
 +        su - $ORA_OWNER -c "​$ORA_HOME/​bin/​dbshut $ORA_HOME"​
 +        ;;
 +esac
 +</​sxh>​
 +
 +Agora vamos dar permissão para o script
 +<sxh bash>
 +chmod 750 /​etc/​init.d/​dbora
 +</​sxh>​
 +
 +Agora vamos colocar o script na inicialização do sistema
 +<sxh bash>
 +chkconfig --level 345 dbora on
 +</​sxh>​
 +
 +Agora precisamos fazer um ajuste no arquivo de controle do banco
 +<sxh bash>
 +vim /​u01/​app/​oracle/​product/​10.2.0/​db_1/​bin/​dbstart
 +[...]
 +#Na linha 78 precisamos deixar ela da seguinte maneira
 +ORACLE_HOME_LISTNER=$ORACLE_HOME
 +[...]
 +</​sxh>​
 +
 +
 +Agora vamos testar ele vamos parar o banco
 +<sxh bash>
 +/​etc/​init.d/​dbora stop
 +</​sxh>​
 +
 +Agora com o usuário oracle vamos verificar as instâncias do banco
 +<sxh bash>
 +lsnrctl status
 +
 +LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 26-APR-2013 10:07:39
 +
 +Copyright (c) 1991, 2005, Oracle. ​ All rights reserved.
 +
 +Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
 +STATUS of the LISTENER
 +------------------------
 +Alias                     ​LISTENER
 +Version ​                  ​TNSLSNR for Linux: Version 10.2.0.1.0 - Production
 +Start Date                26-APR-2013 10:06:57
 +Uptime ​                   0 days 0 hr. 0 min. 41 sec
 +Trace Level               off
 +Security ​                 ON: Local OS Authentication
 +SNMP                      OFF
 +Listener Parameter File   /​u01/​app/​oracle/​product/​10.2.0/​db_1/​network/​admin/​listener.ora
 +Listener Log File         /​u01/​app/​oracle/​product/​10.2.0/​db_1/​network/​log/​listener.log
 +Listening Endpoints Summary...
 +  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
 +  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle10.douglasqsantos.com.br)(PORT=1521)))
 +Services Summary...
 +Service "​PLSExtProc"​ has 1 instance(s).
 +  Instance "​PLSExtProc",​ status UNKNOWN, has 1 handler(s) for this service...
 +The command completed successfully
 +</​sxh>​
 +
 +Como podemos notar não temos instâncias TSH1 ativas ​
 +
 +Agora vamos subir o banco novamente com o usuário root
 +<sxh bash>
 +/​etc/​init.d/​dbora start
 +Processing Database instance "​TSH1":​ log file /​u01/​app/​oracle/​product/​10.2.0/​db_1/​startup.log
 +</​sxh>​
 +
 +Agora vamos consultar as instâncias novamente
 +<sxh bash>
 +lsnrctl status
 +
 +LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 26-APR-2013 10:08:03
 +
 +Copyright (c) 1991, 2005, Oracle. ​ All rights reserved.
 +
 +Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
 +STATUS of the LISTENER
 +------------------------
 +Alias                     ​LISTENER
 +Version ​                  ​TNSLSNR for Linux: Version 10.2.0.1.0 - Production
 +Start Date                26-APR-2013 10:06:57
 +Uptime ​                   0 days 0 hr. 1 min. 6 sec
 +Trace Level               off
 +Security ​                 ON: Local OS Authentication
 +SNMP                      OFF
 +Listener Parameter File   /​u01/​app/​oracle/​product/​10.2.0/​db_1/​network/​admin/​listener.ora
 +Listener Log File         /​u01/​app/​oracle/​product/​10.2.0/​db_1/​network/​log/​listener.log
 +Listening Endpoints Summary...
 +  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
 +  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle10.douglasqsantos.com.br)(PORT=1521)))
 +Services Summary...
 +Service "​PLSExtProc"​ has 1 instance(s).
 +  Instance "​PLSExtProc",​ status UNKNOWN, has 1 handler(s) for this service...
 +Service "​TSH1"​ has 1 instance(s).
 +  Instance "​TSH1",​ status READY, has 1 handler(s) for this service...
 +Service "​TSH1XDB"​ has 1 instance(s).
 +  Instance "​TSH1",​ status READY, has 1 handler(s) for this service...
 +Service "​TSH1_XPT"​ has 1 instance(s).
 +  Instance "​TSH1",​ status READY, has 1 handler(s) for this service...
 +The command completed successfully
 +</​sxh>​
 +
 +
 +====== Referências ======
 +  - http://​www.onaxer.com/​2010/​08/​25/​oracle-10g-r2-installtion-on-centos-5-5rhel/​
 +  - http://​www.oracle-base.com/​articles/​10g/​OracleDB10gR2InstallationOnRHEL5.php
 +  - http://​dearlinux.wordpress.com/​2010/​07/​01/​installing-oracle-database-10g-release-2-on-linux-rhel-5-part-2/​