Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

LAMI DBA

L'objectif de cet article est de découvrir une méthode simple permettant de modifier le nom du SCAN d'un cluster oracle RAC, dans mon exemple un RAC à 2 nodes sous Linux.

Le cluster est composé de 3 SCAN_LISTENER. Le scan actuel est nommé  "clustbatman.batdomain.fr", et devra par la suite être "clustrobin.batdomain.fr"

Le premier réflexe est d'identifier les IP associées au SCAN, et donc du DNS qui permet la redirection depuis les serveurs applicatifs.

En utilisant l'environnement du Grid Infrastructure (ou ASM) depuis le compte unix qui a installé le logiciel (dans mon cas "oracle"), on lance la commande "srvctl config scan" pour avoir les informations associées au SCAN :

[SRVORA1]<oracle>/home/oracle[+ASM1]:srvctl config scan
SCAN name: clustbatman.batdomain.fr, Network: 1/192.158.71.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /clustbatman.batdomain.fr/192.158.71.62
SCAN VIP name: scan2, IP: /clustbatman.batdomain.fr/192.158.71.61
SCAN VIP name: scan3, IP: /clustbatman.batdomain.fr/192.158.71.60

On check ensuite la résolution DNS :

[SRVORA1]<oracle>/home/oracle[+ASM1]:nslookup clustbatman.batdomain.fr

Name:   clustbatman.batdomain.fr
Address: 192.158.71.60
Name:   clustbatman.batdomain.fr
Address: 192.158.71.61
Name:   clustbatman.batdomain.fr
Address: 192.158.71.62


On vérifie maintenant que le futur scan (ou plutôt le DNS de ce futur scan) pointe bien vers les mêmes IP :

[SRVORA1]<oracle>/home/oracle[+ASM1]:nslookup clustrobin.batdomain.fr

Name:   clustrobin.batdomain.fr
Address: 192.158.71.62
Name:   clustrobin.batdomain.fr
Address: 192.158.71.60
Name:   clustrobin.batdomain.fr
Address: 192.158.71.61


Ok, nous pouvons donc réaliser la modification, en débutant tout d'abord par l'arrêt des 3 listener_scan, et ensuite du scan :

[SRVORA1]<oracle>/home/oracle[+ASM1]:srvctl stop scan_listener
[SRVORA1]<oracle>/home/oracle[+ASM1]:srvctl stop scan

[SRVORA1]<oracle>/home/oracle[+ASM1]:srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is not running
SCAN Listener LISTENER_SCAN2 is enabled
SCAN listener LISTENER_SCAN2 is not running
SCAN Listener LISTENER_SCAN3 is enabled
SCAN listener LISTENER_SCAN3 is not running

[SRVORA1]<oracle>/home/oracle[+ASM1]:srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is not running
SCAN VIP scan2 is enabled
SCAN VIP scan2 is not running
SCAN VIP scan3 is enabled
SCAN VIP scan3 is not running

On modifie maintenant le scan, mais pour ce faire il faut être en super user (root), en effet cette modification ce fait coté CRS, et agit sur des processus server lancé par root (crsd) :

[]<>/root[]:export ORACLE_HOME=/oracle/product/11.2.0/grid
[]<>/root[]:$ORACLE_HOME/bin/srvctl modify scan -n clustrobin.batdomain.fr

Ensuite, on revient sur le compte système du Grid ("oracle") pour relancer le scan, et ensuite les scan_listener :

[SRVORA1]<oracle>/home/oracle[+ASM1]:srvctl start scan
[SRVORA1]<oracle>/home/oracle[+ASM1]:srvctl start scan_listener

Quelques vérifications, pour être sur que la modification soit bien effective :

[SRVORA1]<oracle>/home/oracle[+ASM1]:srvctl config scan
SCAN name: clustrobin.batdomain.fr, Network: 1/192.158.71.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /clustrobin.batdomain.fr/192.158.71.61
SCAN VIP name: scan2, IP: /clustrobin.batdomain.fr/192.158.71.62
SCAN VIP name: scan3, IP: /clustrobin.batdomain.fr/192.158.71.60

OK, on peut également, comme dernier test, se connecter sur la base de données cluster, depuis un poste distant en utilisant ce nouveau SCAN / DNS, soit en easy connect ou via tnsnames.

Dans mon cas je passe par tnsnames avec l'alias ci dessous :

NEW_SCAN_ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = clustrobin.batdomain.fr)(PORT = 1521))
    (LOAD_BALANCE = yes)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
      (FAILOVER_MODE =
        (TYPE = SELECT)
        (METHOD = BASIC)
        (RETRIES = 20)
        (DELAY = 1)
      )
    )
  )

Je lance donc depuis mon PC un sqlplus sur cet Alias pour tester la connexion et vérifier :

C:\Users\Micka>tnsping NEW_SCAN_ORCL

TNS Ping Utility for 64-bit Windows: Version 12.1.0.2.0 - Production on 12-SEPT.-2016 10:34:08

Copyright (c) 1997, 2014, Oracle.  All rights reserved.

Fichiers de paramÞtres utilisÚs :
C:\Oracle\product\12.1.0\client_1\network\admin\sqlnet.ora

Adaptateur TNSNAMES utilisÚ pour la rÚsolution de l'alias
Tentative de contact de (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = clustrobin.batdomain.fr)(PORT = 1521)) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) (FAILOVER_MODE = (TYPE = SELECT) (METHOD = BASIC) (RETRIES = 20) (DELAY = 1))))
OK (90 msec)

C:\Users\Micka>sqlplus system@NEW_SCAN_ORCL

SQL*Plus: Release 12.1.0.2.0 Production on Lun. Sept. 12 10:34:26 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Entrez le mot de passe :

ConnectÚ Ó :
Oracle Database 11g Release 11.2.0.3.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options

SQL> select instance_name,host_name from v$instance;

INSTANCE_NAME        HOST_NAME
-----------        ------------------
ORCL1            SRVORA1

C'est OK, mais il ne faut pas oublier de configurer le remote_listener de chaque instance Oracle, en passant par la modification du tnsnames.ora sur chaque nodes si la configuration du paramètre remote_listener fait appel à un ALIAS TNS.

SQL> alter system set remote_listener="clustrobin:1521" scope=both sid='*';
System altered.

Et voila ! Cette méthode reste assez simple, mais elle pourrait se compliquer quelque peu si en plus nous sommes dans un cas où les IP des VIPs devraient être modifiées, auquel cas il faudrait jouer avec oifcfg et réaliser plus d'actions


Cela fera l'objet d'un futur article why not !

@+
Micka

Published by Mickael - - Oracle RAC

commentaires

Foued 27/07/2017 14:10

Merci pour l'article.

Articles autour des SGBD Oracle, SQL Server & PostgreSQL

A propos de LAMI-DBA

Le Blog LAMI-DBA est la fusion de deux blogs existants, celui de LAurent (laodba) et celui de MIckael (dbafaq), deux DBA passionnés des sgbd, et particulièrement d'Oracle.

 

Laurent, 45 ans, Expert Oracle & MS SQL Server, Team Leader, dit "Le Taz", Certifié Expert RAC 11G, Exadata Implementation Specialist, OCA 11G, 

Profil Linkdin

 

 

 

Mickael, 35 ans, Expert Oracle, dit "Batman", Certifié Expert RAC 11G, OCP 11G, OCP 10G,

Profil Linkdin      

 

Hébergé par Overblog