Changer les adresses IP publiques et virtuelles d’un cluster

Cluster RAC 1 Commentaire »

Sources

1. « How to Change Interconnect/Public Interface IP or Subnet in Oracle Clusterware », Doc ID: 283684.1
2. « Modifying the VIP or VIP Hostname of a 10g or 11g Oracle Clusterware Node », DOC ID: 276434.1
3. « How to change Public and VIP component address in case of RAC? »

Je veux changer le vlan de mes adresses publiques et virtuelles de mon cluster RAc 11.2.0.3.
Sur ce cluster, il y a une base SETRA active/active et une base BLACK active/passive.

Pour commenecr on arrête les ressources correspondantes aux bases.

[root@lrac1 bin]# srvctl stop database -d SETRA

[root@lrac1 bin]# ./crs_stop black.db
Tentative d’arrêt de ‘black.db’ sur le membre ‘lrac2′
‘black.db’ a été arrêté sur le membre ‘lrac2′.
[root@lrac1 bin]# ./crs_stop black.listener
Tentative d’arrêt de ‘black.listener’ sur le membre ‘lrac2′
‘black.listener’ a été arrêté sur le membre ‘lrac2′.
[root@lrac1 bin]# ./crs_stop black.vip
Tentative d’arrêt de ‘black.vip’ sur le membre ‘lrac2′
‘black.vip’ a été arrêté sur le membre ‘lrac2′.
[root@lrac1 bin]# ./crs_stop black.group
Tentative d’arrêt de ‘black.group’ sur le membre ‘lrac2′
‘black.group’ a été arrêté sur le membre ‘lrac2′.
[root@lrac1 bin]#

On arrête les ressources sur lequelles sont montées les VIP

[root@lrac1 bin]# srvctl stop nodeapps -n lrac1 -f
PRKO-2426 : ONS (Oracle Notification Service) est déjà arrêté sur les noeuds : lrac1

[root@lrac1 bin]# srvctl stop nodeapps -n lrac2 -f

Vérifications

[root@lrac1 bin]# crs
HA Resource                                   Target     State
———–                                   ——     —–
black.db                                      ONLINE     OFFLINE
black.group                                   ONLINE     OFFLINE
black.listener                                ONLINE     OFFLINE
black.vip                                     ONLINE     OFFLINE
ora.DGDATA.dg                                 ONLINE     ONLINE on lrac1
ora.DGFRA.dg                                  ONLINE     ONLINE on lrac1
ora.LISTENER.lsnr                             ONLINE     OFFLINE
ora.LISTENER_SCAN1.lsnr                       OFFLINE    OFFLINE
ora.OCRVOTING.dg                              ONLINE     ONLINE on lrac1
ora.asm                                       ONLINE     ONLINE on lrac1
ora.cvu                                       OFFLINE    OFFLINE
ora.gsd                                       OFFLINE    OFFLINE
ora.lrac1.ASM1.asm                            ONLINE     ONLINE on lrac1
ora.lrac1.LISTENER_LRAC1.lsnr                 ONLINE     OFFLINE
ora.lrac1.gsd                                 OFFLINE    OFFLINE
ora.lrac1.ons                                 OFFLINE    OFFLINE
ora.lrac1.vip                                 OFFLINE    OFFLINE
ora.lrac2.ASM2.asm                            ONLINE     ONLINE on lrac2
ora.lrac2.LISTENER_LRAC2.lsnr                 ONLINE     OFFLINE
ora.lrac2.gsd                                 OFFLINE    OFFLINE
ora.lrac2.ons                                 OFFLINE    OFFLINE
ora.lrac2.vip                                 OFFLINE    OFFLINE
ora.net1.network                              OFFLINE    OFFLINE
ora.oc4j                                      ONLINE     ONLINE on lrac2
ora.ons                                       OFFLINE    OFFLINE
ora.registry.acfs                             ONLINE     ONLINE on lrac1
ora.scan1.vip                                 OFFLINE    OFFLINE
ora.setra.db                                  OFFLINE    OFFLINE
[root@lrac1 bin]#

Editer les fichiers /etc/hosts et les mettre à jour avec les nouvelles adresses publiques et virtuelles.

Ensuite on change le vlan pour l’interface eth0 dans le clusterware.

[oracle@lrac1 bin]$ ./oifcfg getif
eth1  192.168.1.0  global  cluster_interconnect
eth0  10.1.0.0  global  public

[oracle@lrac1 bin]$ ./oifcfg delif -global eth0

[oracle@lrac1 bin]$ ./oifcfg setif -global eth0/192.168.255.0:public

On modifie les adresses virtuelles dans le clusterware

[root@lrac1 bin]# ./srvctl modify nodeapps -n lrac1 -A 192.168.255.112/255.255.255.0/eth0
[root@lrac1 bin]# ./srvctl modify nodeapps -n lrac2 -A 192.168.255.113/255.255.255.0/eth0

Changement des adresses au niveau OS.

Aller dans l’OS et changer les adresses publiques d’eth0 sur chaque noeud.
Redémarrer le réseau

service network restart (linux)

Changer les adresses dans les fichiers known_hosts sur chaque noeud pour le user oracle (ou grid si c’est le cas)
su – oracle
cd .ssh
cp known_hosts known_hosts.bak
vi known_hosts
Faire le changement des IP des anciennes vers les nouvelles.

Arrêter les crs sur chaque noeud et les redémarrer

crsctl stop crs
crsctl start crs

Changement de l’adresse scan

[root@lrac1 bin]# srvctl config scan_listener
Le processus d’écoute SCAN LISTENER_SCAN1 existe. Port : TCP:1521
[root@lrac1 bin]#
[root@lrac1 bin]# srvctl config scan
Nom SCAN : lrac-scan, réseau : 1/192.168.255.0/255.255.255.0/eth0
Nom d’adresse IP virtuelle SCAN : scan1, IP : /lrac-scan/10.1.1.14
[root@lrac1 bin]#

Vu que l’ip a été changé dans les /etc/hosts, sur les OS, on n’a plus qu’à redémarrer les ressources scan et listener associé.
Les ressources sont arrêtées.

[root@lrac1 bin]# ./crs_start ora.scan1.vip
Tentative de démarrage de ‘ora.scan1.vip’ sur le membre ‘lrac2′
‘ora.scan1.vip’ a été démarré sur le membre ‘lrac2′.
[root@lrac1 bin]#
[root@lrac1 bin]# ./crs_start ora.LISTENER_SCAN1.lsnr
Tentative de démarrage de ‘ora.LISTENER_SCAN1.lsnr’ sur le membre ‘lrac2′
‘ora.LISTENER_SCAN1.lsnr’ a été démarré sur le membre ‘lrac2′.
[root@lrac1 bin]#

[root@lrac1 bin]# crs
HA Resource                                   Target     State
———–                                   ——     —–
black.db                                      OFFLINE    OFFLINE
black.group                                   ONLINE     OFFLINE
black.listener                                ONLINE     OFFLINE
black.vip                                     ONLINE     OFFLINE
ora.DGDATA.dg                                 ONLINE     ONLINE on lrac1
ora.DGFRA.dg                                  ONLINE     ONLINE on lrac1
ora.LISTENER.lsnr                             ONLINE     ONLINE on lrac1
ora.LISTENER_SCAN1.lsnr                       ONLINE     ONLINE on lrac2
ora.OCRVOTING.dg                              ONLINE     ONLINE on lrac1
ora.asm                                       ONLINE     ONLINE on lrac1
ora.cvu                                       OFFLINE    OFFLINE
ora.gsd                                       OFFLINE    OFFLINE
ora.lrac1.ASM1.asm                            ONLINE     ONLINE on lrac1
ora.lrac1.LISTENER_LRAC1.lsnr                 ONLINE     ONLINE on lrac1
ora.lrac1.gsd                                 OFFLINE    OFFLINE
ora.lrac1.ons                                 ONLINE     ONLINE on lrac1
ora.lrac1.vip                                 ONLINE     ONLINE on lrac1
ora.lrac2.ASM2.asm                            ONLINE     ONLINE on lrac2
ora.lrac2.LISTENER_LRAC2.lsnr                 ONLINE     ONLINE on lrac2
ora.lrac2.gsd                                 OFFLINE    OFFLINE
ora.lrac2.ons                                 ONLINE     ONLINE on lrac2
ora.lrac2.vip                                 ONLINE     ONLINE on lrac2
ora.net1.network                              ONLINE     ONLINE on lrac1
ora.oc4j                                      ONLINE     ONLINE on lrac1
ora.ons                                       ONLINE     ONLINE on lrac1
ora.registry.acfs                             ONLINE     ONLINE on lrac1
ora.scan1.vip                                 ONLINE     ONLINE on lrac2
ora.setra.db                                  OFFLINE    OFFLINE
[root@lrac1 bin]#

Redémarrage de la base SETRA

[root@lrac1 bin]# srvctl start database -d SETRA

Redémarrage de la base standalone BLACK

Si des ressources suite aux redémarrage des crs ont redémarrées, on les arrête proprement et on les relance à la main.

black.db                                      OFFLINE    OFFLINE
black.group                                   OFFLINE    OFFLINE
black.listener                                OFFLINE    OFFLINE
black.vip                                     OFFLINE    OFFLINE

il faut modifier les fichiers /app/oracle/product/11.2.0/db_1/network/admin/listener.ora avec la nouvelle adresse
et faire le changement dans le DNS et/ou le fichier /etc/hosts.

On va maintenant changer l’adresse de la vip spécifique à la base BLACK dans le clusterware.

[root@lrac1 bin]# ./crs_stat -p black.vip
NAME=black.vip
TYPE=application
ACTION_SCRIPT=/app/grid/bin/usrvip
****
****
****
USR_ORA_LANG=
USR_ORA_NETMASK=255.255.0.0
USR_ORA_OPEN_MODE=
USR_ORA_OPI=false
USR_ORA_PFILE=
USR_ORA_PRECONNECT=none
USR_ORA_SRV=
USR_ORA_START_TIMEOUT=0
USR_ORA_STOP_MODE=immediate
USR_ORA_STOP_TIMEOUT=0
USR_ORA_VIP=10.1.1.15

On modifie l’IP et le netmask si besoin

[root@lrac1 bin]# ./crsctl modify resource black.vip -attr « USR_ORA_VIP=192.168.255.115″
[root@lrac1 bin]# ./crsctl modify resource black.vip -attr « USR_ORA_NETMASK=255.255.255.0″

Redémarrage des ressources

[root@lrac1 bin]# ./crs_start black.group
Tentative de démarrage de ‘black.group’ sur le membre ‘lrac2′
‘black.group’ a été démarré sur le membre ‘lrac2′.
[root@lrac1 bin]# ./crs_start black.vip
Tentative de démarrage de ‘black.vip’ sur le membre ‘lrac2′
‘black.vip’ a été démarré sur le membre ‘lrac2′.
[root@lrac1 bin]#
[root@lrac1 bin]# ./crs_start black.listener
Tentative de démarrage de ‘black.listener’ sur le membre ‘lrac2′
‘black.listener’ a été démarré sur le membre ‘lrac2′.
[root@lrac1 bin]# ./crs_start black.db
Tentative de démarrage de ‘black.db’ sur le membre ‘lrac2′
‘black.db’ a été démarré sur le membre ‘lrac2′.
[root@lrac1 bin]#

Il se peut que la ressource ora.cvu se doit mise en  target OFFLINE et state OFFLINE

on la redémarre à la main.

[oracle@lrac1 bin]$ ./crs_start ora.cvu
Tentative de démarrage de ‘ora.cvu’ sur le membre ‘lrac1′
‘ora.cvu’ a été démarré sur le membre ‘lrac1′.
[oracle@lrac1 bin]$ crs
HA Resource                                   Target     State
———–                                   ——     —–
black.db                                      ONLINE     ONLINE on lrac2
black.group                                   ONLINE     ONLINE on lrac2
black.listener                                ONLINE     ONLINE on lrac2
black.vip                                     ONLINE     ONLINE on lrac2
ora.DGDATA.dg                                 ONLINE     ONLINE on lrac1
ora.DGFRA.dg                                  ONLINE     ONLINE on lrac1
ora.LISTENER.lsnr                             ONLINE     ONLINE on lrac1
ora.LISTENER_SCAN1.lsnr                       ONLINE     ONLINE on lrac2
ora.OCRVOTING.dg                              ONLINE     ONLINE on lrac1
ora.asm                                       ONLINE     ONLINE on lrac1
ora.cvu                                       ONLINE     ONLINE on lrac1
ora.gsd                                       OFFLINE    OFFLINE
ora.lrac1.ASM1.asm                            ONLINE     ONLINE on lrac1
ora.lrac1.LISTENER_LRAC1.lsnr                 ONLINE     ONLINE on lrac1
ora.lrac1.gsd                                 OFFLINE    OFFLINE
ora.lrac1.ons                                 ONLINE     ONLINE on lrac1
ora.lrac1.vip                                 ONLINE     ONLINE on lrac1
ora.lrac2.ASM2.asm                            ONLINE     ONLINE on lrac2
ora.lrac2.LISTENER_LRAC2.lsnr                 ONLINE     ONLINE on lrac2
ora.lrac2.gsd                                 OFFLINE    OFFLINE
ora.lrac2.ons                                 ONLINE     ONLINE on lrac2
ora.lrac2.vip                                 ONLINE     ONLINE on lrac2
ora.net1.network                              ONLINE     ONLINE on lrac1
ora.oc4j                                      ONLINE     ONLINE on lrac2
ora.ons                                       ONLINE     ONLINE on lrac1
ora.registry.acfs                             ONLINE     ONLINE on lrac1
ora.scan1.vip                                 ONLINE     ONLINE on lrac2
ora.setra.db                                  ONLINE     ONLINE on lrac2
[oracle@lrac1 bin]$

Toutes les adresses publiques et virtuelles ont été changées et toutes les ressources du cluster sont à nouveau disponibles.

Temps d’indisponibilité entre 10mns et une demi heure.

Alban lepunk

Comment installer oracleasm sur Oracle Linux 6.x

ASM, Cluster RAC, Divers 1 Commentaire »

Installation d’oracleasmlib sur OL6.1

Ne le trouvant pas à télécharger sur oracle.com ou Metalink, j’ai tenté de l’installer avec yum.

D’aprés la note 1089399.1

« For RHEL6, Oracle will only provide ASMLib software and updates when configured with a kernel distributed

by Oracle. Oracle will not provide ASMLib packages for kernels distributed by Red Hat as part of RHEL6.

ASMLib updates will be delivered via Unbreakable Linux Network(ULN) which is available to customers with Oracle

Linux support. ULN works with both Oracle Linux or Red Hat Linux installations,

but ASMlib usage will require replacing any Red Hat kernel with a kernel provided by Oracle. »

Yum m’a proposé d’installer le kernel UEK dans lequel oracleasm est natif et de fait de mettre à jour certains packages

du même kernel.

Il faut au préalable avoir configuré son yum pour qu’il pointe sur le bon référentiel ou s’être enregistré sur Unbreakable Linux Network.

[root@racform1 app]# yum install oracleasm

Loaded plugins: refresh-packagekit

Setting up Install Process

Resolving Dependencies

–> Running transaction check

—> Package kernel-uek.x86_64 0:2.6.32-300.11.1.el6uek will be installed

–> Processing Dependency: kernel-uek-firmware = 2.6.32-300.11.1.el6uek for package: kernel-uek-2.6.32-300.11.1.el6uek.x86_64

–> Processing Dependency: dracut-kernel >= 004-242.0.3 for package: kernel-uek-2.6.32-300.11.1.el6uek.x86_64

–> Running transaction check

—> Package dracut-kernel.noarch 0:004-53.el6 will be updated

—> Package dracut-kernel.noarch 0:004-256.0.1.el6_2.1 will be an update

–> Processing Dependency: dracut = 004-256.0.1.el6_2.1 for package: dracut-kernel-004-256.0.1.el6_2.1.noarch

—> Package kernel-uek-firmware.noarch 0:2.6.32-100.34.1.el6uek will be updated

—> Package kernel-uek-firmware.noarch 0:2.6.32-300.11.1.el6uek will be an update

–> Running transaction check

—> Package dracut.noarch 0:004-53.el6 will be updated

—> Package dracut.noarch 0:004-256.0.1.el6_2.1 will be an update

–> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================

Package Arch Version Repository Size

==================================================================================================================

Installing:

kernel-uek x86_64 2.6.32-300.11.1.el6uek ol6_latest 21 M

Updating for dependencies:

dracut noarch 004-256.0.1.el6_2.1 ol6_latest 109 k

dracut-kernel noarch 004-256.0.1.el6_2.1 ol6_latest 20 k

kernel-uek-firmware noarch 2.6.32-300.11.1.el6uek ol6_latest 3.0 M

Transaction Summary

==================================================================================================================

Install 1 Package(s)

Upgrade 3 Package(s)

Total download size: 24 M

Is this ok [y/N]: y

Downloading Packages:

(1/4): dracut-004-256.0.1.el6_2.1.noarch.rpm | 109 kB 00:00

(2/4): dracut-kernel-004-256.0.1.el6_2.1.noarch.rpm | 20 kB 00:00

(3/4): kernel-uek-2.6.32-300.11.1.el6uek.x86_64.rpm | 21 MB 00:54

(4/4): kernel-uek-firmware-2.6.32-300.11.1.el6uek.noarch.rpm | 3.0 MB 00:07

——————————————————————————————————————

Total 383 kB/s | 24 MB 01:04

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Updating : kernel-uek-firmware-2.6.32-300.11.1.el6uek.noarch 1/7

Updating : dracut-004-256.0.1.el6_2.1.noarch 2/7

Updating : dracut-kernel-004-256.0.1.el6_2.1.noarch 3/7

Installing : kernel-uek-2.6.32-300.11.1.el6uek.x86_64 4/7

Cleanup : dracut-kernel-004-53.el6.noarch 5/7

Cleanup : dracut-004-53.el6.noarch 6/7

Cleanup : kernel-uek-firmware-2.6.32-100.34.1.el6uek.noarch 7/7

Installed:

kernel-uek.x86_64 0:2.6.32-300.11.1.el6uek

Dependency Updated:

dracut.noarch 0:004-256.0.1.el6_2.1 dracut-kernel.noarch 0:004-256.0.1.el6_2.1

kernel-uek-firmware.noarch 0:2.6.32-300.11.1.el6uek

Complete!

[root@racform1 app]#

Ensuite vu que c’est un module du noyau, il faut le charger : « Please note: Oracleasm kernel driver is included in OL 6 UEK, but requires an inital ‘modprobe oracleasm’ ».

[root@racform1 app]# modprobe oracleasm

On installe ensuite le seul package non natif d’Oracleasm.

[root@racform1 app]# rpm -ivh oracleasm-support-2.1.5-1.el6.x86_64.rpm

Préparation… ########################################### [100%]

1:oracleasm-support ########################################### [100%]

[root@racform1 app]#

On voit que le module oracleasm est présent mais pas démarré

[root@racform1 app]# /etc/init.d/oracleasm status

Checking if ASM is loaded: yes

Checking if /dev/oracleasm is mounted: no

[root@racform1 app]#

Comme dans les versions précedentes, il faut le configurer.

[root@RACFORM2 ~]# oracleasm configure -i

Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library

driver. The following questions will determine whether the driver is

loaded on boot and what permissions it will have. The current values

will be shown in brackets (‘[]’). Hitting <ENTER> without typing an

answer will keep that current value. Ctrl-C will abort.

Default user to own the driver interface []: oracle

Default group to own the driver interface []: dba

Start Oracle ASM library driver on boot (y/n) [n]: y

Scan for Oracle ASM disks on boot (y/n) [y]: y

Writing Oracle ASM library driver configuration: done

[root@RACFORM2 ~]#

Il ne reste plus qu’à le démarrer.

[root@racform1 app]# oracleasm init

Creating /dev/oracleasm mount point: /dev/oracleasm

Mounting ASMlib driver filesystem: /dev/oracleasm

[root@racform1 app]#

Et le tour est joué

[root@racform1 app]# /etc/init.d/oracleasm status

Checking if ASM is loaded: yes

Checking if /dev/oracleasm is mounted: yes

[root@racform1 app]#

Petite subtilité pour la suite, il arrive que l’installeur Oracle pour la couche cluster ne découvre pas les disques avec le chemin standard « ORCL: », dans ce cas on peut faire la découverte des disques avec le chemin suivant : /dev/oracleasm/disks.