Neste artigo serão descritos os procedimentos para a mudança dos Ips privados no RAC – endereços VIP.
A alteração do endereço IP privado é realizada na base seguintes etapas:
2) Mude a interface pública
3) Modificar o endereço VIP
4) Desligue o CRS
5) Modificar o endereço IP em nível de SO e reconfigurar o arquivo /etc/hosts
6) Restart
1) Baixando banco + ASM + servicos de redes (ONS,VIP,GSD e Listener)
srvctl stop database -d prd1
srvctl stop asm -n db0001
srvctl stop asm -n db0002
srvctl stop nodeapps -n db0001
srvctl stop nodeapps -n db0002
1.1) Verificar o status do banco de dados e ASM.
srvctl status database -d prd1
srvctl status asm -n db0001
srvctl status asm -n db0002
Dica para o ambiente AIX !!
Para reconfigurar o IP PRIV deve-se criar um ALIAS para a entrada publica, no caso (en10).
Se isso não for definido os VIPs e Listeners não irao subir.
Os IP´s publicos e VIPs ficam na mesma (en) ou (eth - para linux). Ou seja, na mesma placa tem-se dois enderecos IPs. Executar como “root” o comando abaixo nos dois nós.
[nó 1]
ifconfig en10 alias 199.198.20.100
[nó 2]
ifconfig en10 alias 199.198.20.101
1.2) Verificar o status dos serviços nos nós do RAC.
srvctl status nodeapps -n db0001
srvctl status nodeapps -n db0002
1.3) Verificar os IPs definidos.
oifcfg getif
srvctl config nodeapps -n db0001 -a
srvctl config nodeapps -n db0002 -a
ifconfig -a
2) Para a alteração dos endereços públicos deve-se alterar somente o VIP e pular essa etapa. Para alterar a interface en10. Local onde está definido o VIP, deve-se apagar e redefinir a interface, usar.
oifcfg delif -global en8
oifcfg setif -global en10/:public
Ex:
oifcfg setif -global en10/172.30.21.0:public
2.1) Verificar se a ação foi realizada com sucesso, usar.
oifcfg getif
Ex:
db0001:/storage/app/oracle/product/10.2/crs/bin>oifcfg getif
en10 172.30.21.0 global public
en9 192.168.1.0 global cluster_interconnect
3) Modificar o endereço vip.
Devido ao fato de mudamos a sub-rede do endereço IP público, temos de mudar o endereço VIP também.
Para modificar os endereços VIP´s as declarações devem ser usadas. ( executar como “root”)
srvctl modify nodeapps -n db0001 -A /255.255.255.0/eth8
srvctl modify nodeapps -n db0002 -A /255.255.255.0/eth8
Ex:
srvctl modify nodeapps -n db0001 -A 199.198.20.100/255.255.255.0/en10
srvctl modify nodeapps -n db0002 -A 199.198.20.101/255.255.255.0/en10
Note que o usuário “root” deve ser utilizado para esta ação e a variável ORACLE_HOME deve esta definida, caso contrário, a mensagem de erro abaixo será gerada.
PRKO-2117 : This command should be executed as the system privilege user.
****ORACLE_HOME environment variable not set!
ORACLE_HOME should be set to the main directory that contains Oracle products.
Set and export ORACLE_HOME, then re-run.
4) Parar os serviços de CRS em todos os nós:
crsctl stop crs
5) Modificar o endereço IP no sistema operacional. Modificar o endereço IP público (eth0), deve-se realizar a mudança em todos os nós. Modificar o /etc/hosts e arquivos “listener.ora” se necessário.
Reinicie todos os nós e verificar o status.
ifconfig -a | egrep '(en|Mask)'
Ex:
en9: flags=4e080863,80
< UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,PSEG,CHAIN >
tcp_sendspace 131072 tcp_recvspace 65536 rfc1323 0
en10: flags=4e080863,80
< UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,PSEG,CHAIN >
tcp_sendspace 131072 tcp_recvspace 65536 rfc1323 0
tcp_sendspace 131072 tcp_recvspace 131072 rfc1323 1
5.1) Verificando o status final do RAC apos alteração.
srvctl status database -d prd1
srvctl status asm -n db0001
srvctl status asm -n db0002
srvctl status nodeapps -n db0001
srvctl status nodeapps -n db0002
Ex:
db0001:/storage/app/oracle/product/10.2/crs/bin>srvctl status database -d prd1
Instance prd11 is running on node db0001
Instance prd12 is running on node db0002
db0001:/storage/app/oracle/product/10.2/crs/bin>srvctl status asm -n db0001
ASM instance +ASM1 is running on node db0001.
db0001:/storage/app/oracle/product/10.2/crs/bin>srvctl status asm -n db0002
ASM instance +ASM2 is running on node db0002.
db0001:/storage/app/oracle/product/10.2/crs/bin>srvctl status nodeapps -n db0001
VIP is running on node: db0001
GSD is running on node: db0001
Listener is running on node: db0001
ONS daemon is running on node: db0001
db0001:/storage/app/oracle/product/10.2/crs/bin>srvctl status nodeapps -n db0002
VIP is running on node: db0002
GSD is running on node: db0002
Listener is running on node: db0002
ONS daemon is running on node: db0002
crs_stat -t
Ex:
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE db0001
ora....01.lsnr application ONLINE ONLINE db0001
ora....b01.gsd application ONLINE ONLINE db0001
ora....b01.ons application ONLINE ONLINE db0001
ora....b01.vip application ONLINE ONLINE db0001
ora....SM2.asm application ONLINE ONLINE db0002
ora....02.lsnr application ONLINE ONLINE db0002
ora....b02.gsd application ONLINE ONLINE db0002
ora....b02.ons application ONLINE ONLINE db0002
ora....b02.vip application ONLINE ONLINE db0002
ora.prd1.db application ONLINE ONLINE db0001
ora....11.inst application ONLINE ONLINE db0001
ora....12.inst application ONLINE ONLINE db0002
ora...._prd.cs application ONLINE ONLINE db0001
ora....d11.srv application ONLINE ONLINE db0001
ora....d12.srv application ONLINE ONLINE db0002
Se todos os serviços estiverem com o status “ONLINE” , então tudo correu conforme descrito!
Rubens Oliveira
DBA Oracle Consultor
olivert.dba@consultant.com