Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What is going on with this article?
@yamada-hakase

OCI Databaseがファイルシステム構成に対応した話

More than 1 year has passed since last update.

ファイルシステム構成がサポートされた

2019年10月のアップデートで、Oracle Cloud Infrastructure Databaseでもファイルシステム構成を選択できるようになった。

いままでOracle Cloud Infrastructure Databaseのストレージは、シングルインスタンスでもOracle Grid Infrastructureを利用したASM構成だった。そのためASMを利用したことがないエンジニアだと、

データファイルはどこ?
gridユーザーって何だ?
srvctlやasmcmdの使い方がわからない!

などの問題が発生した。

今回のアップデートによって、Oracle Grid InfrastructureやASMの経験が無いユーザーでも、既存の知識でOracleデータベースを管理できるようになった。

Release Noteは以下のとおり。

Fastが強調されている理由は、インスタンスの作成時間が圧倒的に短くなったから。いままでのASM構成では60分から120分くらいかかっていたが、ファイルシステム構成では20分くらいになった。

2019年10月時点でファイルシステム構成をサポートしているのは、18c以降のバージョンに限られる。

マニュアルを読んでみる

マニュアルの関連ページは、このあたり。

マニュアルに書かれているポイントをまとめると以下のとおり。

  • Fast Provisioning Option = LVM構成(論理ボリュームマネージャ)
  • より短い時間でインスタンスを作成
  • シングルノードの仮想マシンのときだけ選択可能(RAC,ベアメタル不可)
  • 初回作成時に指定したストレージサイズによって、スケールアップ可能な最大サイズが変わる。たとえば初回256GBのときは最大2560GBまで
  • 本番システムでは従来のOracle Grid Infrastructure構成を推奨

LVM構成で作成したDBシステムを調べる

ストレージの管理方法はインスタンス作成時に指定できる。管理コンソールの画面ショットはこちら。
dbaas-filesystem.PNG
今回は約20分で作成できた。

OSユーザーを確認する

作成したインスタンスの内部を見てみよう。opcユーザーとoracleユーザーだけ存在。gridユーザーは存在しない。

$ tail -n 5 /etc/passwd
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
named:x:25:25:Named:/var/named:/bin/false
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
opc:x:54322:54323::/home/opc:/bin/bash
oracle:x:101:1001::/home/oracle:/bin/bash

環境変数はoracleユーザーに定義済み。

$ sudo su - oracle
$ env | grep ORA
ORACLE_UNQNAME=DB1003_phx28m
ORACLE_SID=DB1003
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
/home/oracle/.bashrc
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1; export ORACLE_HOME
PATH=$PATH:/u01/app/oracle/product/19.0.0/dbhome_1/bin; export PATH
LD_LIBRARY_PATH=/u01/app/oracle/product/19.0.0/dbhome_1/lib; export LD_LIBRARY_PATH
ORACLE_UNQNAME=DB1003_phx28m;export ORACLE_UNQNAME
ORACLE_SID=DB1003; export ORACLE_SID

ディスクを確認する

ディスク構成を確認する。まずはdflsから。

$ df -h
Filesystem                          Size  Used Avail Use% Mounted on
devtmpfs                            7.2G     0  7.2G   0% /dev
tmpfs                               7.3G     0  7.3G   0% /dev/shm
tmpfs                               7.3G  8.7M  7.3G   1% /run
tmpfs                               7.3G     0  7.3G   0% /sys/fs/cgroup
/dev/mapper/VolGroupSys-LogVolRoot   35G  4.8G   28G  15% /
/dev/sda2                           1.4G  102M  1.2G   8% /boot
/dev/sda1                           486M  9.8M  476M   3% /boot/efi
/dev/mapper/DATA_GRP-DATA           252G   16G  224G   7% /u02
/dev/mapper/RECO_GRP-RECO           252G  3.3G  236G   2% /u03
/dev/mapper/BITS_GRP-BITS           197G   12G  175G   7% /u01
tmpfs                               1.5G     0  1.5G   0% /run/user/101
tmpfs                               1.5G     0  1.5G   0% /run/user/54322
$ ls -F /u0*/app/oracle
/u01/app/oracle:
admin/  audit/  cfgtoollogs/  checkpoints/  diag/  product/

/u02/app/oracle:
oradata/

/u03/app/oracle:
fast_recovery_area/  redo/

ブロック・ボリュームはsdaからsdfの計6個(sdaはブート・ボリューム)で、すべてiSCSIでアタッチ。

$ lsblk
NAME                       MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                          8:0    0   58G  0 disk
├─sda1                       8:1    0  486M  0 part /boot/efi
├─sda2                       8:2    0  1.4G  0 part /boot
└─sda3                       8:3    0 52.2G  0 part
  ├─VolGroupSys-LogVolRoot 249:0    0   35G  0 lvm  /
  └─VolGroupSys-LogVolSwap 249:1    0   16G  0 lvm  [SWAP]
sdb                          8:16   0  128G  0 disk
└─DATA_GRP-DATA            249:2    0  256G  0 lvm  /u02
sdc                          8:32   0  128G  0 disk
└─DATA_GRP-DATA            249:2    0  256G  0 lvm  /u02
sdd                          8:48   0  128G  0 disk
└─RECO_GRP-RECO            249:3    0  256G  0 lvm  /u03
sde                          8:64   0  128G  0 disk
└─RECO_GRP-RECO            249:3    0  256G  0 lvm  /u03
sdf                          8:80   0  200G  0 disk
└─BITS_GRP-BITS            249:4    0  200G  0 lvm  /u01

$ lsblk -S
NAME HCTL       TYPE VENDOR   MODEL             REV TRAN
sda  2:0:0:1    disk ORACLE   BlockVolume      1.0  iscsi
sdb  3:0:0:1    disk ORACLE   BlockVolume      1.0  iscsi
sdc  4:0:0:1    disk ORACLE   BlockVolume      1.0  iscsi
sdd  5:0:0:1    disk ORACLE   BlockVolume      1.0  iscsi
sde  6:0:0:1    disk ORACLE   BlockVolume      1.0  iscsi
sdf  7:0:0:1    disk ORACLE   BlockVolume      1.0  iscsi

LVM構成を確認する。

# pvs
  PV         VG          Fmt  Attr PSize    PFree
  /dev/sda3  VolGroupSys lvm2 a--    52.15g 1.15g
  /dev/sdd   RECO_GRP    lvm2 a--  <128.00g    0
  /dev/sde   RECO_GRP    lvm2 a--  <128.00g    0
  /dev/sdf   BITS_GRP    lvm2 a--  <200.00g    0

# vgs
  VG          #PV #LV #SN Attr   VSize    VFree
  BITS_GRP      1   1   0 wz--n- <200.00g    0
  DATA_GRP      2   1   0 wz--n-  255.99g    0
  RECO_GRP      2   1   0 wz--n-  255.99g    0
  VolGroupSys   1   2   0 wz--n-   52.15g 1.15g

# lvs
  LV         VG          Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  BITS       BITS_GRP    -wi-ao---- <200.00g
  DATA       DATA_GRP    -wi-ao----  255.99g
  RECO       RECO_GRP    -wi-ao----  255.99g
  LogVolRoot VolGroupSys -wi-ao----   35.00g
  LogVolSwap VolGroupSys -wi-ao----   16.00g

これらの結果をまとめると以下のとおり。

Device LV Name Mount Point Purpose
/dev/sda /boot, /, SWAP OS
/dev/sdb, /dev/sdc DATA /u02 データファイル
/dev/sdd, /dev/sde RECO /u03 FRAとREDO
/dev/sdf BITS /u01 Oracleバイナリ

ディスクサイズを拡張する

管理コンソールから「ストレージのスケール・アップ(Scale Storage Up)」を実行して、使用可能なストレージ・サイズを256GBから2048GBに拡張してみる。

lsblkで確認すると、sdgからsdvの計16個のブロック・ボリュームが追加されている。初回のディスクサイズによって最大サイズが変わるのは、同じサイズのボリュームを割り当てているためだろう。

またLVMで拡張しているので、DBもOSも停止することなくオンラインのまま実行できたた。

★追加分だけを表示
sdg                          8:96   0  128G  0 disk
└─DATA_GRP-DATA            249:4    0    2T  0 lvm  /u02
sdh                          8:112  0  128G  0 disk
└─DATA_GRP-DATA            249:4    0    2T  0 lvm  /u02
sdi                          8:128  0  128G  0 disk
└─DATA_GRP-DATA            249:4    0    2T  0 lvm  /u02
sdj                          8:144  0  128G  0 disk
└─DATA_GRP-DATA            249:4    0    2T  0 lvm  /u02
sdk                          8:160  0  128G  0 disk
└─DATA_GRP-DATA            249:4    0    2T  0 lvm  /u02
sdl                          8:176  0  128G  0 disk
└─DATA_GRP-DATA            249:4    0    2T  0 lvm  /u02
sdm                          8:192  0  128G  0 disk
└─DATA_GRP-DATA            249:4    0    2T  0 lvm  /u02
sdn                          8:208  0  128G  0 disk
└─DATA_GRP-DATA            249:4    0    2T  0 lvm  /u02
sdo                          8:224  0  128G  0 disk
└─DATA_GRP-DATA            249:4    0    2T  0 lvm  /u02
sdp                          8:240  0  128G  0 disk
└─DATA_GRP-DATA            249:4    0    2T  0 lvm  /u02
sdq                         65:0    0  128G  0 disk
└─DATA_GRP-DATA            249:4    0    2T  0 lvm  /u02
sdr                         65:16   0  128G  0 disk
└─DATA_GRP-DATA            249:4    0    2T  0 lvm  /u02
sds                         65:32   0  128G  0 disk
└─DATA_GRP-DATA            249:4    0    2T  0 lvm  /u02
sdt                         65:48   0  128G  0 disk
└─DATA_GRP-DATA            249:4    0    2T  0 lvm  /u02
sdu                         65:64   0  128G  0 disk
└─RECO_GRP-RECO            249:2    0  512G  0 lvm  /u03
sdv                         65:80   0  128G  0 disk
└─RECO_GRP-RECO            249:2    0  512G  0 lvm  /u03

プロセスを確認する

起動しているプロセスはOracleデータベース関連だけで、Grid Infrastructureのプロセスは無い。

# ps aux | grep ora_
root     10172  0.0  0.0   9100   824 pts/0    S+   04:37   0:00 grep --color=auto ora_
oracle   10700  0.0  0.5 8331840 76284 ?       Ss   03:10   0:02 ora_m001_DB1003
oracle   20652  0.0  0.4 8330804 73564 ?       Ss   03:45   0:01 ora_m000_DB1003
oracle   56725  0.0  0.3 8329748 58760 ?       Ss   02:54   0:00 ora_pmon_DB1003
oracle   56729  0.0  0.3 8329240 58772 ?       Ss   02:54   0:00 ora_clmn_DB1003
oracle   56733  0.0  0.4 8329756 61456 ?       Ss   02:54   0:00 ora_psp0_DB1003
oracle   57000  0.0  0.4 8344688 66036 ?       Ss   02:54   0:01 ora_vktm_DB1003

psの結果全部(クリックすると開く)
# ps aux | grep ora_
root     10172  0.0  0.0   9100   824 pts/0    S+   04:37   0:00 grep --color=auto ora_
oracle   10700  0.0  0.5 8331840 76284 ?       Ss   03:10   0:02 ora_m001_DB1003
oracle   20652  0.0  0.4 8330804 73564 ?       Ss   03:45   0:01 ora_m000_DB1003
oracle   56725  0.0  0.3 8329748 58760 ?       Ss   02:54   0:00 ora_pmon_DB1003
oracle   56729  0.0  0.3 8329240 58772 ?       Ss   02:54   0:00 ora_clmn_DB1003
oracle   56733  0.0  0.4 8329756 61456 ?       Ss   02:54   0:00 ora_psp0_DB1003
oracle   57000  0.0  0.4 8344688 66036 ?       Ss   02:54   0:01 ora_vktm_DB1003
oracle   57095  0.0  0.4 8344704 66516 ?       Ss   02:54   0:00 ora_gen0_DB1003
oracle   57117  0.0  0.4 8329748 61300 ?       Ss   02:54   0:00 ora_mman_DB1003
oracle   57156  0.0  0.4 8451624 64652 ?       Ssl  02:54   0:01 ora_gen1_DB1003
oracle   57177  0.0  0.4 8329860 62124 ?       Ss   02:54   0:00 ora_diag_DB1003
oracle   57190  0.0  0.5 8452660 80604 ?       Ssl  02:54   0:00 ora_ofsd_DB1003
oracle   57216  0.0  0.5 8347088 82676 ?       Ss   02:54   0:02 ora_dbrm_DB1003
oracle   57228  0.0  0.3 8329752 58824 ?       Ss   02:54   0:00 ora_vkrm_DB1003
oracle   57244  0.0  0.4 8329748 61260 ?       Ss   02:54   0:00 ora_svcb_DB1003
oracle   57265  0.0  0.3 8329752 58856 ?       Ss   02:54   0:00 ora_pman_DB1003
oracle   57281  0.0  0.4 8331992 65316 ?       Ss   02:54   0:02 ora_dia0_DB1003
oracle   57291  0.0  0.5 8343772 81040 ?       Ss   02:54   0:01 ora_dbw0_DB1003
oracle   57306  0.0  0.4 8331812 66396 ?       Ss   02:54   0:00 ora_lgwr_DB1003
oracle   57311  0.0  0.4 8329768 64400 ?       Ss   02:54   0:01 ora_ckpt_DB1003
oracle   57315  0.0  0.3 8328992 58548 ?       Ss   02:54   0:00 ora_lg00_DB1003
oracle   57319  0.0  0.5 8331128 82412 ?       Ss   02:54   0:00 ora_smon_DB1003
oracle   57324  0.0  0.3 8329504 58548 ?       Ss   02:54   0:00 ora_lg01_DB1003
oracle   57328  0.0  0.3 8329748 58676 ?       Ss   02:54   0:00 ora_smco_DB1003
oracle   57332  0.0  0.5 8331136 78212 ?       Ss   02:54   0:00 ora_reco_DB1003
oracle   57336  0.0  0.5 8330836 81800 ?       Ss   02:54   0:00 ora_w000_DB1003
oracle   57340  0.0  0.5 8336768 86364 ?       Ss   02:54   0:00 ora_lreg_DB1003
oracle   57345  0.0  0.4 8330592 73076 ?       Ss   02:54   0:00 ora_w001_DB1003
oracle   57360  0.0  0.3 8329752 58784 ?       Ss   02:54   0:00 ora_pxmn_DB1003
oracle   57368  0.0  0.9 8381524 145056 ?      Ss   02:54   0:03 ora_mmon_DB1003
oracle   57372  0.0  0.4 8329764 65376 ?       Ss   02:54   0:00 ora_mmnl_DB1003
oracle   57376  0.0  0.3 8331748 58812 ?       Ss   02:54   0:00 ora_d000_DB1003
oracle   57380  0.0  0.3 8331044 56692 ?       Ss   02:54   0:00 ora_s000_DB1003
oracle   57384  0.0  0.3 8329752 58960 ?       Ss   02:54   0:00 ora_tmon_DB1003
oracle   57425  0.0  0.6 8361120 103504 ?      Ss   02:54   0:04 ora_p000_DB1003
oracle   57427  0.0  0.6 8356576 100556 ?      Ss   02:54   0:03 ora_p001_DB1003
oracle   57918  0.0  0.4 8352156 62724 ?       Ss   02:54   0:00 ora_tt00_DB1003
oracle   57922  0.0  0.6 8377000 92356 ?       Ss   02:54   0:00 ora_arc0_DB1003
oracle   57926  0.0  0.3 8329496 58604 ?       Ss   02:54   0:00 ora_tt01_DB1003
oracle   57930  0.0  0.4 8352420 64140 ?       Ss   02:54   0:00 ora_arc1_DB1003
oracle   57934  0.0  0.4 8352424 62040 ?       Ss   02:54   0:00 ora_arc2_DB1003
oracle   57938  0.0  0.4 8352420 62148 ?       Ss   02:54   0:00 ora_arc3_DB1003
oracle   57942  0.0  0.3 8329492 58628 ?       Ss   02:54   0:00 ora_tt02_DB1003
oracle   57964  0.0  0.4 8330064 71764 ?       Ss   02:54   0:00 ora_aqpc_DB1003
oracle   57973  0.0  0.5 8333956 85564 ?       Ss   02:54   0:00 ora_p002_DB1003
oracle   57977  0.0  0.5 8333952 87716 ?       Ss   02:54   0:00 ora_p003_DB1003
oracle   57982  0.0  0.4 8329544 68320 ?       Ss   02:54   0:00 ora_w002_DB1003
oracle   58143  0.0  0.5 8330288 80352 ?       Ss   02:54   0:00 ora_w003_DB1003
oracle   58189  0.1  0.6 8351344 98324 ?       Ss   02:55   0:07 ora_cjq0_DB1003
oracle   58336  0.0  0.4 8328996 64956 ?       Ss   02:55   0:00 ora_w004_DB1003
oracle   58734  0.0  0.7 8340532 118856 ?      Ss   02:55   0:05 ora_m002_DB1003
oracle   58740  0.0  1.0 8393520 165540 ?      Ss   02:55   0:05 ora_m003_DB1003
oracle   58804  0.0  0.4 8329792 71340 ?       Ss   02:55   0:00 ora_qm02_DB1003
oracle   58860  0.0  0.7 8340336 111836 ?      Ss   02:55   0:01 ora_q003_DB1003
oracle   58967  0.0  0.5 8340156 90320 ?       Ss   02:55   0:00 ora_q005_DB1003
oracle   59084  0.0  0.5 8332024 84016 ?       Ss   02:55   0:00 ora_w005_DB1003
oracle   80322  0.0  0.8 8377056 129116 ?      Ss   03:55   0:01 ora_m004_DB1003
oracle   94519  0.0  0.4 8329540 68076 ?       Ss   03:04   0:00 ora_w006_DB1003
oracle   94563  0.0  0.4 8329540 71464 ?       Ss   03:05   0:00 ora_w007_DB1003

まとめ

DBaaSのストレージ管理方法を比較すると、このような感じになるだろうか。

Oracle Grid Infrastructure

  • ASMの利便性や性能を得られる反面、Grid Infrastructureの知識が必要
  • 本番システム利用における推奨構成

Logical Volume Manager

  • ファイルシステム構成なので、Grid Infrastructureの知識は不要
  • Grid Infrastructureと比べて短時間にインスタンス作成可能(20~30分程度)
  • 適用するパッチはOracleデータベースだけ。DBシステム(Grid Infrastructure)パッチは不要
  • 初回作成時のディスクサイズによって、利用可能な最大ディスクサイズが変わる
  • ベアメタルやReal Application Clustersでは利用できない
2
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
yamada-hakase
長らくOracleをやっていて、10gくらいまでは雑誌や書籍なども執筆。その後「オープンソース愛」のためスピンアウト。某Linuxディストリビューションの立ち上げに参加し、OSSを主体としたインフラ屋。近年はOracle CloudやAWS、Azureなどのクラウド屋。Linuxが好物。 なお、こちらに書いてあることは筆者自身の見解であり、所属企業の見解を反映したものではありません。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
2
Help us understand the problem. What is going on with this article?