.comment-link {margin-left:.6em;}

Friday, July 07, 2006

Setup do Linux para 10g

Sempre lembrando que estou usando o RedHat EL4.

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)

[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
3. Acertar /etc/hosts

[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.

[root@yoda /]# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
Seguimos para configuração do kernel.
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.

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

Setando profile para o usuário oracle.
Exemplo

[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
Criação dos Diretórios
Segundo OFA a Oracle recomenda o seguinte formato para os diretórios o seguinte:
/mount_point/app/oracle_sw_owner, onde em nosso caso:
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
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á.

[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
...
- Próximo passo será instalar os componentes para o +ASM.

Labels:


Comments:
Marcio, só uma dica para melhorar o filtro para o "sysctl -a", utilizei a seguinte sintaxe e agilizou um pouco a verificação:
--
/sbin/sysctl -a | grep -E 'shm|sem|file-max|ip_local_port_range|rmem_default|rmem_max|wmem_default|wmem_max'
---
Espero que ajude um pouco.

Abraços e Sucesso.
Marcos Braga
 
Obrigado! Bela dica.
 
André Oliveira

Cara meus parabens, me ajudou muito este tutorial.

Faltou só o shell em C que fica no /etc/csh.login onde vc edita as limitalções do usuário Oracle e as limitações de descrições...

Mais meus parabéns desde já!!!

Atenciosamente!!!
 
Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?