[Oracle Cloud] Database Cloud Service(DBCS) の ストレージ空き容量を調べる

# はじめに
Database Cloud Service(以下 DBCS) のOSファイルシステム領域、データベース表領域、使用可能なデータ・ストレージのそれぞれで使用量、空き容量の確認をしてみました。

Oracle Databaseの表領域として使われる「使用可能なデータ・ストレージ」のサイズを選択すると合計ストレージ(GB)の領域が確保されます。
DBCSのではOracle Database のディスク領域管理に ASM (Automatic Storage Management) が使われていて「使用可能なデータ・ストレージ」は ASMの「DATA」ディスクグループとして確保されます。
そのほかにASMの「RECO」ディスクグループとして256GB、OSのファイルシステムとして200GBが確保され、「使用可能なデータ・ストレージ」の256 GB+ RECOの 256 GB+ ファイルシステムの 200GB 合計 712 GBが合計ストレージ・サイズ(GB)となっています。

# 前提
コマンド例は以下の環境で確認

-     DBシステム・バージョン:19.9.0.0.0
-     データベース・バージョン:12.2.0.1.201020
-     シェイプ:VM.Standard2.1 (シングルノード)
-     作成時に「使用可能なデータ・ストレージ (GB)」は"256"を指定


# OS領域の確認
OS領域は opc ユーザで データベースノードに ssh 接続後 「df -h」コマンドで確認できます。

## コマンド

```
df -h 
```

### 実行例

```
[opc@db01 ~]$ df -h
Filesystem                           Size  Used Avail Use% Mounted on
devtmpfs                             7.2G     0  7.2G   0% /dev
tmpfs                                7.3G  845M  6.4G  12% /dev/shm
tmpfs                                7.3G   25M  7.2G   1% /run
tmpfs                                7.3G     0  7.3G   0% /sys/fs/cgroup
/dev/mapper/VolGroupSys0-LogVolRoot   45G  8.5G   34G  21% /
/dev/sda2                            1.4G   99M  1.2G   8% /boot
/dev/sda1                            486M  8.6M  477M   2% /boot/efi
/dev/sdj                             197G   21G  166G  12% /u01
tmpfs                                1.5G     0  1.5G   0% /run/user/102
/dev/asm/commonstore-73              5.0G  319M  4.7G   7% /opt/oracle/dcs/commonstore
tmpfs                                1.5G     0  1.5G   0% /run/user/54322
```

Size ： 割り当て領域
Used ： 使用量
Use% ： 使用率

/u01 が 197G, / が 45G 割り当てられています。


# データベース表領域の確認
データベース表領域はデータベースインスタンスに接続してSQL文で確認できます。

opc ユーザで ssh 接続後、oracle ユーザにスイッチ
oracle ユーザで SQL*PLUS でデータベースに接続しSQL文を実行

## コマンド

```
sudo su - oracle
sqlplus / as sysdba
```

(SQL*PLUSで実行）

```
col used(%)   for 990.0
select TABLESPACE_NAME,bytes/1024/1024 "TOTAL(MB)",USER_BYTES/1024/1024 "USED(MB)",(USER_BYTES/bytes*100) "USED(%)" from cdb_data_files;
```


### 実行例

```
[opc@db01 ~]$ sudo su - oracle
[oracle@db01 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Fri Dec 4 10:49:34 2020

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


Connected to:
Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production

SQL> col used(%)   for 990.0
SQL> select TABLESPACE_NAME,bytes/1024/1024 "TOTAL(MB)",USER_BYTES/1024/1024 "USED(MB)",(USER_BYTES/bytes*100) "USED(%)" from cdb_data_files;

TABLESPACE_NAME                 TOTAL(MB)   USED(MB) USED(%)
------------------------------ ---------- ---------- -------
UNDOTBS1                               75         74    98.7
SYSTEM                                830        829    99.9
SYSAUX                                600        599    99.8
USERS                                   5          4    80.0
SYSTEM                                260        259    99.6
SYSAUX                                370        369    99.7
UNDOTBS1                               55         54    98.2
USERS                                   5          4    80.0

8 rows selected.
```

TOTAL(MB) 	： 割り当て領域
USED(MB)	： 使用量
USED(%)	 	： 使用率


# 使用可能なデータ・ストレージの確認
使用可能なデータ・ストレージ領域はASMインスタンスに接続してSQL文で確認できます。

opc ユーザで ssh 接続後、grid ユーザにスイッチ
sql*plus でASMインスタンスに接続しSQL文を実行

## コマンド

```
sudo su - grid
sqlplus / as sysdba
```

(SQL*PLUSで実行）

```
col name      for a10
col disk_name for a15
col total(GB) for 999,990.0
col free(GB)  for 999,990.0
col used(%)   for 990.0

select
  group_number,
  name,
  total_mb/1024 "TOTAL(GB)",
  free_mb/1024 "FREE(GB)",
  ((total_mb-free_mb)/total_mb*100) "USED(%)"
from v$asm_diskgroup;
```

### 実行例

```
[opc@db01 ~]$ sudo su - oracle
Last login: Fri Dec  4 10:53:11 UTC 2020
[oracle@db01 ~]$ export ORACLE_HOME=/u01/app/19.0.0.0/grid
[oracle@db01 ~]$ export ORACLE_SID=+ASM1
[oracle@db01 ~]$ $ORACLE_HOME/bin/sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Dec 4 10:53:30 2020
Version 19.9.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.9.0.0.0

SQL> col name      for a10
SQL> col disk_name for a15
SQL> col total(GB) for 999,990.0
SQL> col free(GB)  for 999,990.0
SQL> col used(%)   for 990.0
SQL> select
  2    group_number,
  3    name,
  4    total_mb/1024 "TOTAL(GB)",
  5    free_mb/1024 "FREE(GB)",
  6    ((total_mb-free_mb)/total_mb*100) "USED(%)"
  7  from v$asm_diskgroup;

GROUP_NUMBER NAME        TOTAL(GB)   FREE(GB) USED(%)
------------ ---------- ---------- ---------- -------
           1 DATA            256.0      247.6     3.3
           2 RECO            256.0      252.4     1.4
```
TOTAL(GB) 	： 割り当て領域
FREE(GB)	： 空き領域量
USED(%)	 	： 使用率


#### 使用可能なデータ・ストレージ拡張後(256 -> 512)

```
GROUP_NUMBER NAME        TOTAL(GB)   FREE(GB) USED(%)
------------ ---------- ---------- ---------- -------
           1 DATA            512.0      503.6     1.6
           2 RECO            256.0      252.4     1.4
```

DATAのTOTAL(GB)が 256.0 から 512.0 に増大していることが確認できます。

# おわりに
DBCSの空き領域を、OSファイルシステム領域、データベース表領域、使用可能なデータ・ストレージ（ASMディスクグループ）で確認できました。
DBCSで 「ストレージのスケール・アップ」で使用可能なデータ・ストレージを拡張すると DATA ディスクグループの領域が拡張され、データベースの表領域は初期に作成されているものは自動拡張設定（AUTOEXTEND ON)されており、拡張ができることもあわせて確認できました。

# 参考情報

- [Oracle Cloud(OCI) DBaaSのデフォルト・ストレージ構成](https://qiita.com/feifo/items/6c965afd89c94f072fc7)
- [[Oracle Cloud] Database Cloud Service(DBCS) の ASM に入ってみた](https://qiita.com/sugimount/items/732b45aeb776ef693a47)

### DBCS ストレージのスケール・アップ

- コンソールからDataストレージのサイズを選択 (256GB ～ 40TB)
- スケールアップはオンラインで実施
- DATA領域の拡張に伴い、RECO領域も自動計算された値が割り当てられる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108635/53bd6a7f-8247-4234-df42-63562f8d27bb.png)

< 略 >

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108635/98a5d6a4-262c-ca46-0dd2-0888ccd3a1dd.png)

Web コンソールからDBCSの詳細を表示し「ストレージのスケール・アップ」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108635/224c1186-eab8-f233-de18-d55ce75d2104.png)

「使用可能なデータ・ストレージ(GB)」のプルダウンリストから拡張後のサイズを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108635/c42320e0-f3f3-0b12-b11d-7d8f30929d86.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108635/30b93f31-edf0-5a8d-aa7f-dcffd425921e.png)


「更新中」のステータスから「使用可能」に変更されれば、拡張が完了。

#### oracle ユーザで ASMインスタンスへの接続

oracle ユーザで ASMインスタンスに接続する環境変数

```
sudo su - oracle
export ORACLE_HOME=/u01/app/19.0.0.0/grid
export ORACLE_SID=+ASM1
$ORACLE_HOME/bin/sqlplus / as sysdba
```