Oracle RAC One Nodeでライブマイグレーションを実行してみた

Oracle RAC One NodeはEnterprise Editionでのみ構築が可能なDB構成なのでお金もかかってなかなか触れる機会が無いんじゃないかと思います。

なので今回はRAC One Nodeの機能の一つ、ライブマイグレーションを試してみた際の動きをまとめてみました。


##概要
ライブマイグレーションとは、DBインスタンスの停止なくインスタンスを実行するノードを変更することができます。

簡単な動きを説明すると、以下のような流れになります。

■ライブマイグレーション実行前
node1 インスタンス実行中
node2 インスタンス停止中
↓↓↓
■ライブマイグレーション実行直後
node1 インスタンス実行中
node2 インスタンス実行中
↓↓↓
■ライブマイグレーション完了後
node1 インスタンス停止中
node2 インスタンス実行中


便利な機能ですが注意点が一つあって、SIDが変更されてしまうので、
アプリケーションでSIDを固定して接続を行っている場合は影響が発生するので気をつけてください。

##環境
#####DNSサーバ
OS：Oracle Linux 6.5
SW：dnsmasq 2.48
NW：
　eth0 192.168.56.254

ホスト名：dns.oracle12c.jp


#####Oracle DB稼働系
OS：Oracle Linux 6.5
SW：Oracle 12.1.0.2 Enterprise Edition
    Grid 12.1.0.2
NW：
　eth0 192.168.56.101/24
　eth1 192.168.100.101/24
　eth2 192.168.200.101/24

ホスト名：olnxdb001.oracle12c.jp


#####Oracle DB待機系
OS：Oracle Linux 6.5
SW：Oracle 12.1.0.2 Enterprise Edition
    Grid 12.1.0.2
NW：
　eth0 192.168.56.102/24
　eth1 192.168.100.102/24
　eth2 192.168.200.102/24

ホスト名：olnxdb002.oracle12c.jp


##実行結果

gridユーザでクラスターのリソースを確認する。(稼働系待機系どちらでもOK)

```bash

[grid@olnxdb001 ~]$ crsctl status res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr
               ONLINE  ONLINE       olnxdb001                STABLE
               ONLINE  ONLINE       olnxdb002                STABLE
ora.ASMNET2LSNR_ASM.lsnr
               ONLINE  ONLINE       olnxdb001                STABLE
               ONLINE  ONLINE       olnxdb002                STABLE
ora.DATA.dg
               ONLINE  ONLINE       olnxdb001                STABLE
               ONLINE  ONLINE       olnxdb002                STABLE
ora.FRA.dg
               ONLINE  ONLINE       olnxdb001                STABLE
               ONLINE  ONLINE       olnxdb002                STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       olnxdb001                STABLE
               ONLINE  ONLINE       olnxdb002                STABLE
ora.net1.network
               ONLINE  ONLINE       olnxdb001                STABLE
               ONLINE  ONLINE       olnxdb002                STABLE
ora.ons
               ONLINE  ONLINE       olnxdb001                STABLE
               ONLINE  ONLINE       olnxdb002                STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       olnxdb002                STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       olnxdb001                STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       olnxdb001                STABLE
ora.MGMTLSNR
      1        ONLINE  ONLINE       olnxdb001                169.254.91.197 192.1
                                                             68.100.101 192.168.2
                                                             00.101,STABLE
ora.asm
      1        ONLINE  ONLINE       olnxdb001                Started,STABLE
      2        ONLINE  ONLINE       olnxdb002                Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       olnxdb001                STABLE
ora.mgmtdb
      1        ONLINE  ONLINE       olnxdb001                Open,STABLE
ora.oc4j
      1        ONLINE  ONLINE       olnxdb001                STABLE
ora.olnxdb001.vip
      1        ONLINE  ONLINE       olnxdb001                STABLE
ora.olnxdb002.vip
      1        ONLINE  ONLINE       olnxdb002                STABLE
ora.orcl.db    ※olnxdb001でインスタンスが起動しています。
      1        ONLINE  ONLINE       olnxdb001               Open,STABLE
ora.orcl.orcl.oracle12c.jp.svc
      1        ONLINE  ONLINE       olnxdb001                STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       olnxdb002                STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       olnxdb001                STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       olnxdb001                STABLE
--------------------------------------------------------------------------------
[grid@olnxdb001 ~]$ 
```


インスタンスの稼働を確認(稼働系待機系どちらでもOK)

```bash

[oracle@olnxdb001 ~]$ srvctl status database -db orcl
インスタンスorcl_1はノードolnxdb001で実行中です。
オンライン再配置: INACTIVE
[oracle@olnxdb001 ~]$ 
```


じゃあ待機系にライブマイグレーションしてみましょう！！
srvctlコマンドでorclインスタンスをolnxdb002へフェイルオーバーします。

```bash
[oracle@olnxdb001 ~]$ srvctl relocate database -db orcl -node olnxdb002
```

インスタンスが旧待機系で実行されていること。
また、ライブマイグレーションを行うとインスタンス名(SID)が_2に変わることに注意です。

```bash
[oracle@olnxdb001 ~]$ srvctl status database -db orcl
インスタンスorcl_2はノードolnxdb002で実行中です。
オンライン再配置: INACTIVE
[oracle@olnxdb001 ~]$ 
```


リソース名「ora.orcl.db」がolnxdb002になっています。

```bash
[grid@olnxdb001 ~]$ crsctl status res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr
               ONLINE  ONLINE       olnxdb001                STABLE
               ONLINE  ONLINE       olnxdb002                STABLE
ora.ASMNET2LSNR_ASM.lsnr
               ONLINE  ONLINE       olnxdb001                STABLE
               ONLINE  ONLINE       olnxdb002                STABLE
ora.DATA.dg
               ONLINE  ONLINE       olnxdb001                STABLE
               ONLINE  ONLINE       olnxdb002                STABLE
ora.FRA.dg
               ONLINE  ONLINE       olnxdb001                STABLE
               ONLINE  ONLINE       olnxdb002                STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       olnxdb001                STABLE
               ONLINE  ONLINE       olnxdb002                STABLE
ora.net1.network
               ONLINE  ONLINE       olnxdb001                STABLE
               ONLINE  ONLINE       olnxdb002                STABLE
ora.ons
               ONLINE  ONLINE       olnxdb001                STABLE
               ONLINE  ONLINE       olnxdb002                STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       olnxdb002                STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       olnxdb001                STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       olnxdb001                STABLE
ora.MGMTLSNR
      1        ONLINE  ONLINE       olnxdb001                169.254.91.197 192.1
                                                             68.100.101 192.168.2
                                                             00.101,STABLE
ora.asm
      1        ONLINE  ONLINE       olnxdb001                Started,STABLE
      2        ONLINE  ONLINE       olnxdb002                Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       olnxdb001                STABLE
ora.mgmtdb
      1        ONLINE  ONLINE       olnxdb001                Open,STABLE
ora.oc4j
      1        ONLINE  ONLINE       olnxdb001                STABLE
ora.olnxdb001.vip
      1        ONLINE  ONLINE       olnxdb001                STABLE
ora.olnxdb002.vip
      1        ONLINE  ONLINE       olnxdb002                STABLE
ora.orcl.db
      2        ONLINE  ONLINE       olnxdb002                Open,STABLE
ora.orcl.orcl.oracle12c.jp.svc
      1        ONLINE  ONLINE       olnxdb002                STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       olnxdb002                STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       olnxdb001                STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       olnxdb001                STABLE
--------------------------------------------------------------------------------
[grid@olnxdb001 ~]$ 
```

DBインスタンスに接続してみます。

```
[oracle@olnxdb002 ~]$ export ORACLE_SID=orcl_2
[oracle@olnxdb002 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on 金 10月 16 12:58:42 2020

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



Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options
に接続されました。
SQL> 

```


##まとめ
計画的なDBメンテナンスとかを行う際にはぜひ利用いただきたい機能ですね。

今回はインスタンスが１つしか実行されていないので次は2〜3インスタンスくらい上げて試してみたいなとか思ってます。

また、障害を想定したフェイルオーバーの動きも確認してみたいので、実行結果が出ればまたまとめたいと思います。


以上です！