ファイルシステム構成がサポートされた
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 for 1-node Virtual Machine DB Systems
- Creating Bare Metal and Virtual Machine DB Systems
- Storage Scaling Considerations for Virtual Machine Databases Using Fast Provisioning
マニュアルに書かれているポイントをまとめると以下のとおり。
- Fast Provisioning Option = LVM構成(論理ボリュームマネージャ)
- より短い時間でインスタンスを作成
- シングルノードの仮想マシンのときだけ選択可能(RAC,ベアメタル不可)
- 初回作成時に指定したストレージサイズによって、スケールアップ可能な最大サイズが変わる。たとえば初回256GBのときは最大2560GBまで
- 本番システムでは従来のOracle Grid Infrastructure構成を推奨
LVM構成で作成したDBシステムを調べる
ストレージの管理方法はインスタンス作成時に指定できる。管理コンソールの画面ショットはこちら。
今回は約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
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
ディスクを確認する
ディスク構成を確認する。まずはdf
とls
から。
$ 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では利用できない