12 Avril 2018
-
- http://www.lami-dba.com/2018/04/oracle-rac-one-node-relocated.html
Et aujourd'hui.....(roulement de tambour).. nous allons voir comment transformer à moindre coût notre Oracle Rac One Node en Real Application Cluster ... Techniquement j'entends ... car évidemment coté portefeuille faudra sortir l'oseille... Et oui à la base c'est aussi pour cela que potentiellement nous avions opté dans un premier temps pour du One Node.
Ceci étant dit, petit rappel de conf.
[oracle@jumbo ~]$ [oracle@jumbo ~]$ olsnodes -s jumbo Active romeo Active [oracle@jumbo ~]$
mes deux noeuds jumbo & romeo sont présents. Pour la petite histoire roméo c'est le petit chat qui a une dent cassé un peu plus haut ;)
On s'assure que l'on est bien dans le cas d'un Rac One Node
[oracle@jumbo ~]$ [oracle@jumbo ~]$ srvctl config database -d lami Database unique name: lami Database name: lami Oracle home: /u01/app/oracle/product/12.2.0.1/db_1 Oracle user: oracle Spfile: +DATA/LAMI/PARAMETERFILE/spfile.314.973075831 Password file: +DATA/LAMI/PASSWORD/pwdlami.282.973075409 ... Services: lamiOneNode Type: RACOneNode Online relocation timeout: 30 Instance name prefix: lami Candidate servers: jumbo,romeo ... Database is administrator managed
Et pour ceux qui ont toujours un doute.
[oracle@jumbo ~]$ [oracle@jumbo ~]$ srvctl status database -d lami Instance lami_2 is running on node jumbo Online relocation: INACTIVE [oracle@jumbo ~]$
Donc je suis bien en RacOneNode, & par conséquent une seule instance.
Place à l'action... ;) En fait rien de bien grandiose... Nous voulons convertir... alors qu'il en soit ainsi
[oracle@jumbo ~]$ [oracle@jumbo ~]$ srvctl convert database -db lami -dbtype RAC [oracle@jumbo ~]$
Et voila ! Rapide, simple & efficace..
Pas tout à fait fini.
Je vais maintenant stopper ma base, faire un peu de ménage (car je suis maniaque) et ajouter ma seconde instance.
-1/ On stoppe la base.
[oracle@jumbo ~]$ [oracle@jumbo ~]$ srvctl stop database -db lami [oracle@jumbo ~]$
-2/ Je supprime mon instance existante lami_2 sur jumbo (car jumbo est mon noeud "initial" et je préfére avoir l'instance lami_1 sur mon noeud initial... stupide certe, mais je fais ce que veux ;).
Remarque : avant de pouvoir supprimer l'instance, je dois supprimer mon service (celui crée lors du setup de ma base RacOneNode)
[oracle@jumbo ~]$ [oracle@jumbo ~]$ srvctl remove service -s lamiOneNode -db lami [oracle@jumbo ~]$
Puis donc suppression de mon instance.
[oracle@jumbo ~]$ [oracle@jumbo ~]$ srvctl remove instance -i lami_2 -db lami Remove instance from the database lami? (y/[n]) y [oracle@jumbo ~]$
-3/ Recréation des mes instances.
[oracle@jumbo ~]$ [oracle@jumbo ~]$ srvctl add instance -i lami_2 -db lami -n romeo [oracle@jumbo ~]$ srvctl add instance -i lami_1 -db lami -n
-4/ On redémarre notre base.
[oracle@jumbo ~]$ [oracle@jumbo ~]$ srvctl start database -db lami [oracle@jumbo ~]$
Et voila... plus de temps à faire des copier / coller l'article à qu'à transformer mon OneNode en RAC ;)
Mais vérifons...
tout d'abord d'un point de vue process.
sur jumbo
[oracle@jumbo ~]$ ps -ef |grep pmon
oracle 2862 1 0 21:40 ? 00:00:00 ora_pmon_lami_1
oracle 5925 23663 0 21:49 pts/0 00:00:00 grep pmon
oracle 6188 1 0 20:37 ? 00:00:00 asm_pmon_+ASM1
oracle 7021 1 0 20:38 ? 00:00:00 apx_pmon_+APX1
oracle 7845 1 0 20:38 ? 00:00:00 mdb_pmon_-MGMTDB
sur romeo
[oracle@romeo ~]$ ps -ef |grep pmon
oracle 7164 1 0 20:43 ? 00:00:00 asm_pmon_+ASM2
oracle 7370 1 0 20:44 ? 00:00:00 apx_pmon_+APX2
oracle 18586 1 0 21:40 ? 00:00:00 ora_pmon_lami_2
Encore des doutes...
[oracle@jumbo ~]$ [oracle@jumbo ~]$ srvctl config database -d lami Database unique name: lami Database name: lami Oracle home: /u01/app/oracle/product/12.2.0.1/db_1 Oracle user: oracle .... Type: RAC Start concurrency: Stop concurrency: OSDBA group: dba OSOPER group: oper Database instances: lami_1,lami_2 Configured nodes: jumbo,romeo ... Database is administrator managed
Et voila nous sommes bien passé d'un RacOneNode à une RAC à n nodes (2 dans le cas présent).
J'en vois au fond qui doutent encore..
[oracle@jumbo ~]$ [oracle@jumbo ~]$ srvctl status database -db lami Instance lami_1 is running on node jumbo Instance lami_2 is running on node romeo [oracle@jumbo ~]$
Nous avons bien nous deux instances qui tournent en même temps ! bref un RAC !
Enjoy !