Friday, July 07, 2006
Setup do Linux para 10g
Sempre lembrando que estou usando o RedHat EL4.
1. Habilitar servidor de ftp e telnet
2. Checando disponibilidade de espaço, note abaixo a disponibilidade para a instalação do Oracle (VG0-LV_ORA), não esquecer de apontar as variáveis de ambiente (TMP e TMPDIR)
Setup Linux para Oracle 10gR2
Checklist Inicial
1. Prepare a instalação para ser feita através do X, seja na console do Linux seja em um terminal. Minha experiência será feita através de um xterm, estou usando o CygWin com XClient.
2. Checagem de Hardware – Mínimo de 1 Giga de memória e regra de polegar aqui, eu uso 2 gigas de swap, como planejado. 400 mb de área temporal – geralment /tmp, porém, podemos setar as variável TMP e TMPDIR para redirecionar espaço no Logical Volume (ORA). Entre 1.5 a 3.5 Gigas, dependendo da instalação para área do software. Ao cheque:
4. Rápida checagem na rede, basicamente já devemos ter isso bem configurado. (*Ainda vou instalar um domínio direto no linux).
Configurando o Ambiente para Instalação
Criação dos grupos. Rapidamente, os grupos necessários para instalação do Oracle são OSDBA (dba), OSOPER (oper) e grupo dono do inventário. Vamos criar os essenciais: dba e oinstall, ou seja, respectivamente OSDBA e grupo dono do inventário.
Como determinar se já não existe um dono para o inventário? A informação fica armazenada em /etc/oraInst.loc, lá estarão informações relevantes sobre sua instalação. Nossa instalação é do zero, portanto o arquivo não existe.
Criação do usuário dono do software, por default é o oracle assim como dba é o default para OSDBA. É possível mudar isso, porém deve-se entrar em CUSTOM no momento da instalação. Este guia cobre instalação default. Procure pelo dono “id oracle”, em nossa instalação ele não existe.
Ops! Senha baseada em dicionário, que ruim! Ruim nada, é oracle/oracle mesmo! Não esqueça que essa instalação é educativa, portanto estou desprezando vários aspectos de segurança.
Por último, verifique se nobody existe. Oracle precisa de um usuário sem privilégios.
Edite o arquivo /etc/sysctl.conf e adicione o seguite:
A configuração deve estar como o exemplo abaixo:
Para checar o sistema:
Exemplo.
Setando limites para usuário oracle.
Exemplo
Segundo OFA a Oracle recomenda o seguinte formato para os diretórios o seguinte:
1. Habilitar servidor de ftp e telnet
[root@yoda xinetd.d]# chkconfig --list vsftpd
vsftpd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
[root@yoda xinetd.d]# cd /etc/xinetd.d
[root@yoda xinetd.d]# cat telnet
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}
2. Checando disponibilidade de espaço, note abaixo a disponibilidade para a instalação do Oracle (VG0-LV_ORA), não esquecer de apontar as variáveis de ambiente (TMP e TMPDIR)
3. Acertar /etc/hosts
[oracle@yoda ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VG-RH4 3.9G 2.3G 1.4G 63% /
/dev/sda1 99M 13M 82M 14% /boot
none 516M 0 516M 0% /dev/shm
/dev/mapper/VG-ORA 3.9G 40M 3.7G 2% /u01
[root@yoda /]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
192.168.0.8 yoda.mportes-pc.com yoda
127.0.0.1 localhost.localdomain localhost
Setup Linux para Oracle 10gR2
Checklist Inicial
1. Prepare a instalação para ser feita através do X, seja na console do Linux seja em um terminal. Minha experiência será feita através de um xterm, estou usando o CygWin com XClient.
2. Checagem de Hardware – Mínimo de 1 Giga de memória e regra de polegar aqui, eu uso 2 gigas de swap, como planejado. 400 mb de área temporal – geralment /tmp, porém, podemos setar as variável TMP e TMPDIR para redirecionar espaço no Logical Volume (ORA). Entre 1.5 a 3.5 Gigas, dependendo da instalação para área do software. Ao cheque:
[root@yoda /]# cat /proc/meminfo | grep -e MemTotal -e Swap
MemTotal: 1042744 kB
SwapCached: 0 kB
SwapTotal: 2096440 kB
SwapFree: 2096440 kB
[root@yoda /]# df -k /tmp
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VG-RH4 3967160 3299112 466528 88% /
[root@yoda /]# grep "model name" /proc/cpuinfo
model name : Intel(R) Pentium(R) 4 CPU 3.00GHz
model name : Intel(R) Pentium(R) 4 CPU 3.00GHz
3. Checando requerimentos de software, a versão do kernel para Red Hat AS 4
deve ser no mínimo 2.6.9-5.EL e os pacotes abaixo listados assim como a
edição (/etc/issue).
[root@yoda /]# uname -r
2.6.9-34.ELsmp
[root@yoda /]# rpm -q binutils compat-db control-center gcc gcc-c++ glibc glibc-common \
> gnome-libs libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio openmotif21
binutils-2.15.92.0.2-18
compat-db-4.1.25-9
control-center-2.8.0-12.rhel4.2
gcc-3.4.5-2
gcc-c++-3.4.5-2
glibc-2.3.4-2.19
glibc-common-2.3.4-2.19
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.5-2
libstdc++-devel-3.4.5-2
make-3.80-5
pdksh-5.2.14-30.3
sysstat-5.0.5-7.rhel4
xscreensaver-4.18-5.rhel4.10
libaio-0.3.105-2
openmotif21-2.1.30-11.RHEL4.4
[root@yoda /]# cat /etc/issue
Red Hat Enterprise Linux AS release 4 (Nahant Update 3)
Kernel \r on an \m
4. Rápida checagem na rede, basicamente já devemos ter isso bem configurado. (*Ainda vou instalar um domínio direto no linux).
[root@yoda /]# hostname
yoda.mportes-pc.com
[root@yoda /]# domainname
(none)
[root@yoda /]# cat /etc/nsswitch.conf | grep hosts
#hosts: db files ldap nis dns
hosts: files dns
[root@yoda /]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
192.168.0.8 yoda.mportes-pc.com yoda
127.0.0.1 localhost.localdomain localhost
Configurando o Ambiente para Instalação
Criação dos grupos. Rapidamente, os grupos necessários para instalação do Oracle são OSDBA (dba), OSOPER (oper) e grupo dono do inventário. Vamos criar os essenciais: dba e oinstall, ou seja, respectivamente OSDBA e grupo dono do inventário.
Como determinar se já não existe um dono para o inventário? A informação fica armazenada em /etc/oraInst.loc, lá estarão informações relevantes sobre sua instalação. Nossa instalação é do zero, portanto o arquivo não existe.
[root@yoda /]# more /etc/oraInst.loc
/etc/oraInst.loc: No such file or directory
Criando os grupos OSDBA e dono do inventário. O grupo OSOPER não será criado.
[root@yoda /]# groupadd oinstall
[root@yoda /]# groupadd dba
[root@yoda /]# cat /etc/group | grep -e dba -e oinstall
oinstall:x:502:
dba:x:503:
Criação do usuário dono do software, por default é o oracle assim como dba é o default para OSDBA. É possível mudar isso, porém deve-se entrar em CUSTOM no momento da instalação. Este guia cobre instalação default. Procure pelo dono “id oracle”, em nossa instalação ele não existe.
[root@yoda /]# /usr/sbin/useradd -m -g oinstall -G dba oracle
[root@yoda /]# id oracle
uid=501(oracle) gid=502(oinstall) groups=502(oinstall),503(dba)
[root@yoda /]# passwd oracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@yoda /]#
Ops! Senha baseada em dicionário, que ruim! Ruim nada, é oracle/oracle mesmo! Não esqueça que essa instalação é educativa, portanto estou desprezando vários aspectos de segurança.
Por último, verifique se nobody existe. Oracle precisa de um usuário sem privilégios.
Seguimos para configuração do kernel.
[root@yoda /]# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
Edite o arquivo /etc/sysctl.conf e adicione o seguite:
------- Começa aqui --------------
net.core.rmem_default=262144
kernel.shmall = 2097152
net.core.wmem_max=262144
kernel.shmmax = 536870912
kernel.shmmni = 4096
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.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
------- Termina aqui --------------
A configuração deve estar como o exemplo abaixo:
[root@yoda /]# /sbin/sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.core.rmem_default = 262144
kernel.shmall = 2097152
net.core.wmem_max = 262144
kernel.shmmax = 536870912
kernel.shmmni = 4096
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.wmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_max = 262144
Para checar o sistema:
/sbin/sysctl -a | grep shm
/sbin/sysctl -a | grep sem
/sbin/sysctl -a | grep file-max
/sbin/sysctl -a | grep ip_local_port_range
/sbin/sysctl -a | grep rmem_default
/sbin/sysctl -a | grep rmem_max
/sbin/sysctl -a | grep wmem_default
/sbin/sysctl -a | grep wmem_max
Exemplo.
[root@yoda /]# /sbin/sysctl -a | grep shm
/sbin/sysctl -a | grep file-max
/sbin/sysctl -a | grep ip_local_port_range
/sbin/sysctl -a | grep rmem_default
/sbin/sysctl -a | grep rmem_max
/sbin/sysctl -a | grep wmem_default
/sbin/sysctl -a | grep wmem_maxvm.hugetlb_shm_group = 0
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 536870912
[root@yoda /]# /sbin/sysctl -a | grep sem
kernel.sem = 250 32000 100 128
[root@yoda /]# /sbin/sysctl -a | grep file-max
fs.file-max = 65536
[root@yoda /]# /sbin/sysctl -a | grep ip_local_port_range
net.ipv4.ip_local_port_range = 1024 65000
[root@yoda /]# /sbin/sysctl -a | grep rmem_default
net.core.rmem_default = 262144
[root@yoda /]# /sbin/sysctl -a | grep rmem_max
net.core.rmem_max = 262144
[root@yoda /]# /sbin/sysctl -a | grep wmem_default
net.core.wmem_default = 262144
[root@yoda /]# /sbin/sysctl -a | grep wmem_max
net.core.wmem_max = 262144
Setando limites para usuário oracle.
Setando profile para o usuário oracle.
Edite o arquivo /etc/security/limits.conf e inclua
----- começa aqui ------------
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
----- termina aqui ------------Editar o arquivo /etc/pam.d/login e incluir a linha abaixo
session required /lib/security/pam_limits.so
Exemplo
Criação dos Diretórios
[root@yoda /]# cat >> /etc/profile <<EOF
>if [ \$USER = "oracle" ]; then
> if [ \$SHELL = "/bin/ksh" ]; then
> ulimit -p 16384
> ulimit -n 65536
> else
> ulimit -u 16384 -n 65536
> fi
> umask 022
> fi
> EOF
Segundo OFA a Oracle recomenda o seguinte formato para os diretórios o seguinte:
/mount_point/app/oracle_sw_owner, onde em nosso caso:Para a instalação tenho o arquivo compactado no Windows XP. Portanto para economizar espaço, montei uma partição samba no Linux apontando para o diretório onde estão os arquivos. Depois criei um diretório novo em /u01/10gR2 e fiz a descompactação lá.
mount_point - /u01
app - app mesmo
oracle_sw_owner - oracle
[root@yoda /]# mkdir -p /u01/app/oracle
[root@yoda /]# chown -R oracle:oinstall /u01/app/oracle
[root@yoda /]# chmod -R 775 /u01/app/oracle
- Próximo passo será instalar os componentes para o +ASM.
[root@yoda 10gR2]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.0.8 yoda.mportes-pc.com yoda
192.168.0.3 anakin.mportes-pc.com anakin
# Adicionado o servidor anakin que é o nosso WinXP.
[root@yoda mnt]# mount -t smbfs -o username=marcio,password=xxxxx //anakin/install /mnt/xp
[root@yoda mnt]# ll -tr
total 6
dr-x------ 1 root root 4096 May 25 23:16 hgfs
drwxr-xr-x 1 root root 4096 May 26 01:18 xp
[root@yoda mnt]# ll xp
total 4424146
-rwxr-xr-x 1 root root 705274421 Nov 1 2005 10201_companion_linux32.zip
-rwxr-xr-x 1 root root 668734007 Oct 20 2005 10201_database_linux32.zip
-rwxr-xr-x 1 root root 2855080 Apr 29 17:29 aawsepersonal.exe
[root@yoda mnt]# mkdir /u01/10gR2
[root@yoda mnt]# chown oracle:oinstall /u01/10gR2/
[root@yoda mnt]# su - oracle
[oracle@yoda ~]$ cd /u01/10gR2/
[oracle@yoda 10gR2]$
[oracle@yoda 10gR2]$
[oracle@yoda 10gR2]$ unzip /mnt/xp/10201_database_linux32.zip
Archive: /mnt/xp/10201_database_linux32.zip
creating: database/
creating: database/doc/
creating: database/doc/dcommon/
creating: database/doc/dcommon/css/
inflating: database/doc/dcommon/css/blafdoc.css
inflating: database/doc/dcommon/css/darbbook.css
inflating: database/doc/dcommon/css/darbbook.css~
inflating: database/doc/dcommon/css/doccd.css
...
Labels: how to