Edited at

Oracle Cloud: Exadata Cloud Service作成してみてみた

Exadataは、エンタープライズ規模のデータベースの実行に特化した、最高のパフォーマンスを誇るOracleのEngineered Systemです

あらゆる規模のOLTP、データ・ウェアハウス/リアルタイム・アナリティクスおよび混合データベース・ワークロードをサポートするように設計されています。

Oracle Cloud Infrastructure (OCI)では、Exadata Cloud Service(ExaCS)があり、

オラクルがHardware, Storage および Networkインフラを管理することで、お客様は事業の拡大に注力できます。

ということでExaCSやってみてみます。


■構成



ExaCSのNetwork要件などはマニュアルを参考

 ・Exadata DBシステムのネットワーク設定

 ・Exadata Databaseのバックアップ


■ExaCS作成

① [DBシステムの作成]クリック

②Exadataシステム情報設定

次のように[Exadata]を選択し次の様に設定して[次]をクリック

・Name your DB system: 名前を設定

・シェイプ・タイプの選択: Exadataを選択
・シェイプの選択:Exadata CSのシェイプを選択
・仮想クラウド・ネットワーク:Exadata CS配置するVCNを選択
・クライアントのサブネット:Exadata CSのクライアント接続側Subnet選択
・BACKUP SUBNET: Exadata CSのバックアップSubnet選択
・Hostname prefix:Exadata CSのhostnameを設定
・Time zone:UTC もしくは他のTime Zoneを選択

③Database情報設定

次のようにDatabase情報設定を設定して[DBシステムの作成]をクリック

・データベース名: DB_NAMEを設定

・Database version: 11.2.0.4 ~ 19cを選択
・パスワード: DB(CDB)のsysパスワードを設定
・Select workload type: OLTP/DSSを選択
・Configure database backups:自動バックアップする場合選択
・Backup retention period: リカバリ復旧可能期間RPO(Recovery Point Objective)を選択
・Character set: 通常AL32UTF8を選択
・各国語文字セット: AL16UTF16 を選択


■ExaCS作成確認


●Database情報

設定した情報やSingle Client Access Name(SCAN)に関する SCAN名、SCAN IP等確認できます


●Node情報

各Nodeのhostname、Private/Public IPを確認できます

※Public IPは、Public Subnetへ配置した場合に付与されます


■CPU動的追加/削減

ExaCSの画面から簡単にCPUの上げ下げができます

・参考:リソース追加してみよう - スケール・アップ/ダウン OCI Exadata 編

ということで、今回はCLIでやってみてみます

①現在のOCPU数を確認

$ oci db system get --db-system-id <db-system-id> --query  'data.{"1.Name":"display-name","2.shape":"shape","3.cpu-core-count": "cpu-core-count"}'

{
"1.Name": “ExaCS",
"2.shape": "Exadata.Quarter2.92",
"3.cpu-core-count": 22
}

②22-> 48 OCPUにスケール・アップ

$ oci db system update –cpu-count 48 --db-system-id <db-system-id>


③48 OCPUへ変更されたことを確認

$ oci db system get --db-system-id <db-system-id> --query  'data.{"1.Name":"display-name","2.shape":"shape","3.cpu-core-count": "cpu-core-count"}' 

{
"1.Name": “ExaCS",
"2.shape": "Exadata.Quarter2.92",
"3.cpu-core-count": 48
}


■Database(CDB)追加

Exadata DBシステムは、データベースのバージョンを混在させることができます

 ・参考:既存のExadata DBシステムに新しいデータベースを作成するには

①Database画面で[Create Database]をクリック

次のようにDatabase情報設定を設定して[Create Database]をクリックしてDBを追加

・データベース名: DB_NAMEを設定

・Database version: 11.2.0.4 ~ 19cを選択
・PDB Name: PDB名を設定
・パスワード: DB(CDB)のsysパスワードを設定
・Select workload type: OLTP/DSSを選択
・Configure database backups:自動バックアップする場合選択
・Backup retention period: リカバリ復旧可能期間RPO(Recovery Point Objective)を選択
・Character set: 通常AL32UTF8を選択
・各国語文字セット: AL16UTF16 を選択


■Pluggable Dataabse (PDB)追加

EM Express , SQL DeveloperのGUIでPDBを作成することができます。

今回はSQLで作成してみてみます

SQL> CREATE PLUGGABLE DATABASE test_pdb ADMIN USER admin IDENTIFIED BY <User パスワード>;

Pluggable database created.

SQL> show pdbs

CON_ID CON_NAME OPEN MODE RESTRICTED
---------- -------------- ----------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 READ WRITE NO
3 TEST_PDB MOUNTED

SQL> alter pluggable database TEST_PDB open;
Pluggable database altered.

SQL> show pdbs

CON_ID CON_NAME OPEN MODE RESTRICTED
---------- -------------- ----------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 READ WRITE NO
3 TEST_PDB READ WRITE NO

SQL> alter session set container=TEST_PDB;
SQL> show con_name

CON_NAME
------------------------------
TEST_PDB


■ACFS領域確認とサイズ変更

Oracle ACFS(ASM Cluster File System)は、POSIX、X/OPEN、およびWindowsに準拠した業界標準のクラスタ・ファイル・システムで複数のノードからアクセスできる共有ファイルシステムで、expdp/impdp,バッチやデータ・ロード用途のファイル配置場所として使用します

ACFSの管理コマンドとしてacfsutilがあり、ファイルシステムを動的拡張することができ、18c以降ではファイル・システムのサイズを縮小することもできます

 ・ACFSホワイトペーパ: Oracle ACFS 18c ASM Cluster File System

 ・Oracle Automatic Storage Management 管理者ガイド19c: acfsutil size

ということで、データ移行用途でデータ・ポンプのdumpファイルを配置する場合、容量が足りないことがあるので、拡張してみてみます

※ 初期利用領域は+DATAC1のASMディスクが設定されています


●ACFS領域拡張

①acfsマウントポイントとサイズ確認

[oracle@rac19c2 admin]$ df -hT | grep acfs

/dev/asm/acfsvol01-53 acfs 800G 53G 748G 7% /acfs01

②ASMディスク・グループ確認

[opc@rac19c2 ~]$ sudo /sbin/acfsutil info storage

Diskgroup Consumer Space Size With Mirroring Usable Free %Free Path
DATAC1 256.57 85.52 80.88 94%
ACFSVOL01 2.34 0.78 0.73 93% /acfs01
RECOC1 384.82 128.27 121.98 95%
----
unit of measurement: TB

③acfsサイズ拡張

[opc@rac19c2 ~]$ sudo /sbin/acfsutil size 1024G /acfs01

acfsutil size: Resizing file system in steps
acfsutil size: Resizing file system to 0.7969 TB
acfsutil size: Resizing file system to 0.8125 TB
acfsutil size: Resizing file system to 0.8281 TB
acfsutil size: Resizing file system to 0.8438 TB
acfsutil size: Resizing file system to 0.8594 TB
acfsutil size: Resizing file system to 0.8750 TB
acfsutil size: Resizing file system to 0.8906 TB
acfsutil size: Resizing file system to 0.9063 TB
acfsutil size: Resizing file system to 0.9219 TB
acfsutil size: Resizing file system to 0.9375 TB
acfsutil size: Resizing file system to 0.9531 TB
acfsutil size: Resizing file system to 0.9688 TB
acfsutil size: Resizing file system to 0.9844 TB
acfsutil size: Resizing file system to 1.0000 TB
acfsutil size: new file system size: 1099511627776 (1048576MB)

④ASMディスク・グループ確認

ファイルシステムが拡張されたため、Usable Freeが縮小されていることが確認できます

[opc@rac19c2 ~]$ sudo /sbin/acfsutil info storage

Diskgroup Consumer Space Size With Mirroring Usable Free %Free Path
DATAC1 256.57 85.52 80.66 94%
ACFSVOL01 3.00 1.00 0.95 94% /acfs01
RECOC1 384.82 128.27 121.98 95%
----
unit of measurement: TB

⑤acfsのサイズが拡張されていることを確認

[opc@rac19c2 ~]$ df -hT | grep acfs

/dev/asm/acfsvol01-53 acfs 1.0T 53G 972G 6% /acfs01


●ACFS領域縮小

①acfsサイズ縮小

[opc@rac19c2 ~]$ sudo /sbin/acfsutil size 800G /acfs01

acfsutil size: Resizing file system in steps
acfsutil size: Resizing file system to 0.9844 TB
acfsutil size: Resizing file system to 0.9688 TB
acfsutil size: Resizing file system to 0.9531 TB
acfsutil size: Resizing file system to 0.9375 TB
acfsutil size: Resizing file system to 0.9219 TB
acfsutil size: Resizing file system to 0.9063 TB
acfsutil size: Resizing file system to 0.8906 TB
acfsutil size: Resizing file system to 0.8750 TB
acfsutil size: Resizing file system to 0.8594 TB
acfsutil size: Resizing file system to 0.8438 TB
acfsutil size: Resizing file system to 0.8281 TB
acfsutil size: Resizing file system to 0.8125 TB
acfsutil size: Resizing file system to 0.7969 TB
acfsutil size: Resizing file system to 0.7813 TB
acfsutil size: new file system size: 858993459200 (819200MB)

⑤acfsのサイズが縮小されていることを確認

[opc@rac19c1 ~]$ df -hT | grep acfs

/dev/asm/acfsvol01-53 acfs 800G 53G 748G 7% /acfs01


■DB確認


●DB接続

・oracleユーザーへスイッチ

[opc@rac19c1 ~]$ sudo su - oralce

[oracle@rac19c1 ~]$ id
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba),1003(racoper),1004(asmdba)

・環境変数ファイル確認

[oracle@rac19c1 ~]$ ls

orcl.env

・環境変数設定と確認

[oracle@rac19c1 ~]$ . orcl.env

[oracle@rac19c1 ~]$ env | grep ORA
ORACLE_UNQNAME=orcl_xxxx9
ORACLE_SID=orcl1
ORACLE_HOSTNAME=rac19c1.clientsubnet01.vcn10000sn01.oraclevcn.com
ORACLE_BASE=/u02/app/oracle
ORACLE_HOME=/u02/app/oracle/product/19.0.0.0/dbhome_1

[oracle@rac19c1 ~]$ cat tnsnames.ora


ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = exacs-xxxx-scan.clientsubnet01.vcn10000sn01.oraclevcn.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl_xxxxx9.clientsubnet01.vcn10000sn01.oraclevcn.com)
(FAILOVER_MODE =
(TYPE = select)
(METHOD = basic)
)
)
)

PDB01 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = exacs-xxxx-scan.clientsubnet01.vcn10000sn01.oraclevcn.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdb01.clientsubnet01.vcn10000sn01.oraclevcn.com)
(FAILOVER_MODE =
(TYPE = select)
(METHOD = basic)
)
)
)

[oracle@rac19c1 ~]$ cat sqlnet.ora

SQLNET.ENCRYPTION_SERVER = required

SQLNET.CRYPTO_CHECKSUM_SERVER = required

SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER = (SHA1)

ENCRYPTION_WALLET_LOCATION =
(SOURCE=
(METHOD=FILE)
(METHOD_DATA=
(DIRECTORY=/var/opt/oracle/dbaas_acfs/orcl/tde_wallet)))

SQLNET.ENCRYPTION_TYPES_SERVER = (AES256, AES192, AES128)

SQLNET.IGNORE_ANO_ENCRYPTION_FOR_TCPS = TRUE

SQLNET.EXPIRE_TIME = 10

SQLNET.WALLET_OVERRIDE = FALSE

SSL_VERSION = 1.2

WALLET_LOCATION = (SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/u02/app/oracle/admin/orcl/db_wallet)))

・SQL*Plus接続

[oracle@rac19c1 ~]$ sqlplus / as sysdba


SQL*Plus: Release 19.0.0.0.0 - Production on Fri Aug 9 13:25:54 2019
Version 19.3.0.0.0

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

Connected to:
Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
Version 19.3.0.0.0


●データファイル確認

SQL> col FILE_NAME format a70

SQL> col TABLESPACE_NAME format a10
SQL> set lin 200 pages 1000
SQL> SELECT
a.TABLESPACE_NAME
,a.BYTES/1024/1024 as "Size(MB)"
,a.FILE_NAME
,a.autoextensible as "Auto_Extent"
,a.increment_by * (select VALUE from v$parameter where NAME='db_block_size') /1024 as "Auto_Extent_Size(MB)"
,b.MAX_SIZE/1024/1024 as "MAX_SIZE(MB)"
,b.BLOCK_SIZE
,b.BIGFILE
FROM DBA_DATA_FILES a
, DBA_TABLESPACES b
WHERE a.TABLESPACE_NAME=b.TABLESPACE_NAME
union all
SELECT
x.TABLESPACE_NAME
,x.BYTES/1024/1024 as "Size(MB)"
,x.FILE_NAME
,x.autoextensible as "Auto_Extent"
,x.increment_by * (select VALUE from v$parameter where NAME='db_block_size') /1024 as "Auto_Extent_Size(MB)"
,y.MAX_SIZE/1024/1024 as "MAX_SIZE(MB)"
,y.BLOCK_SIZE
,y.BIGFILE
FROM dba_temp_files x
, DBA_TABLESPACES y
WHERE x.TABLESPACE_NAME=y.TABLESPACE_NAME
ORDER By TABLESPACE_NAME
;

TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG
---------- ---------- ---------------------------------------------------------------------- --- -------------------- ------------ ---------- ---
SYSAUX 2227.6875 +DATAC1/ORCL_XXXX9/DATAFILE/sysaux.262.1013308697 YES 4194304 2048 8192 YES
SYSTEM 2000 +DATAC1/ORCL_XXXX9/DATAFILE/system.261.1013308697 YES 4194304 2048 8192 YES
TEMP 1000 +DATAC1/ORCL_XXXX9/TEMPFILE/temp YES 16777216 2048 8192 YES
UNDOTBS1 2000 +DATAC1/ORCL_XXXX9/DATAFILE/undotbs1.263.1013308697 YES 4194304 2048 8192 YES
UNDOTBS2 2048 +DATAC1/ORCL_XXXX9/DATAFILE/undotbs2.279.1013309667 YES 2097152 2048 8192 YES
UNDOTBS3 2048 +DATAC1/ORCL_XXXX9/DATAFILE/undotbs3.284.1013309677 YES 2097152 2048 8192 YES
UNDOTBS4 2048 +DATAC1/ORCL_XXXX9/DATAFILE/undotbs4.289.1013309685 YES 2097152 2048 8192 YES
USERS 1024 +DATAC1/ORCL_XXXX9/DATAFILE/users.264.1013308697 YES 512000 2048 8192 YES

8 rows selected.


●REDO確認

SQL> col MEMBER format a60

SQL> SELECT
b.THREAD#
,b.MEMBERS
,a.GROUP#
,b.SEQUENCE#
,a.MEMBER
,b.bytes/1024/1024 as "Bytes(MB)"
,a.TYPE
,b.STATUS
,b.ARCHIVED
FROM
v$logfile a
,v$log b
WHERE
a.GROUP#=b.GROUP#
ORDER BY 1,2,3;

THREAD# MEMBERS GROUP# SEQUENCE# MEMBER Bytes(MB) TYPE STATUS ARC
---------- ---------- ---------- ---------- ------------------------------------------------------------ ---------- ------- ---------------- ---
1 1 1 221 +DATAC1/ORCL_XXXX9/ONLINELOG/group_1.270.1013309445 4000 ONLINE INACTIVE YES
1 1 2 222 +DATAC1/ORCL_XXXX9/ONLINELOG/group_2.268.1013309447 4000 ONLINE INACTIVE YES
1 1 3 223 +DATAC1/ORCL_XXXX9/ONLINELOG/group_3.269.1013309449 4000 ONLINE INACTIVE YES
1 1 4 224 +DATAC1/ORCL_XXXX9/ONLINELOG/group_4.271.1013309449 4000 ONLINE CURRENT NO
2 1 9 221 +DATAC1/ORCL_XXXX9/ONLINELOG/group_9.275.1013309661 4000 ONLINE INACTIVE YES
2 1 10 222 +DATAC1/ORCL_XXXX9/ONLINELOG/group_10.276.1013309663 4000 ONLINE INACTIVE YES
2 1 11 223 +DATAC1/ORCL_XXXX9/ONLINELOG/group_11.277.1013309665 4000 ONLINE CURRENT NO
2 1 12 220 +DATAC1/ORCL_XXXX9/ONLINELOG/group_12.278.1013309665 4000 ONLINE INACTIVE YES
3 1 13 93 +DATAC1/ORCL_XXXX9/ONLINELOG/group_13.280.1013309671 4000 ONLINE INACTIVE YES
3 1 14 94 +DATAC1/ORCL_XXXX9/ONLINELOG/group_14.281.1013309673 4000 ONLINE INACTIVE YES
3 1 15 95 +DATAC1/ORCL_XXXX9/ONLINELOG/group_15.282.1013309675 4000 ONLINE INACTIVE YES
3 1 16 96 +DATAC1/ORCL_XXXX9/ONLINELOG/group_16.283.1013309675 4000 ONLINE CURRENT NO
4 1 17 93 +DATAC1/ORCL_XXXX9/ONLINELOG/group_17.285.1013309681 4000 ONLINE INACTIVE YES
4 1 18 94 +DATAC1/ORCL_XXXX9/ONLINELOG/group_18.286.1013309683 4000 ONLINE CURRENT NO
4 1 19 91 +DATAC1/ORCL_XXXX9/ONLINELOG/group_19.287.1013309683 4000 ONLINE INACTIVE YES
4 1 20 92 +DATAC1/ORCL_XXXX9/ONLINELOG/group_20.288.1013309685 4000 ONLINE INACTIVE YES

16 rows selected.


●DB初期化パラメータ確認

SQL> create pfile='/tmp/init.ora' from spfile;


File created.

SQL> host cat /tmp/init.ora
*._ASSM_SEGMENT_REPAIR_BG=FALSE
*._PARALLEL_ADAPTIVE_MAX_USERS=2
*.audit_sys_operations=TRUE
*.audit_trail='db'
*.cluster_database=TRUE
orcl1.cluster_interconnects='192.168.132.26:192.168.132.27'
orcl2.cluster_interconnects='192.168.132.28:192.168.132.29'
*.compatible='19.0.0.0.0'
*.control_file_record_keep_time=39
*.control_files='+DATAC1/orcl_xxxxx9/CONTROLFILE/control.ctl'
*.control_management_pack_access='DIAGNOSTIC+TUNING'
*.db_block_checking='OFF'
*.db_block_checksum='TYPICAL'
*.db_block_size=8192
*.db_create_file_dest='+DATAC1'
*.db_create_online_log_dest_1='+DATAC1'
*.db_domain='lpvcn00sn01.lpvcn00.oraclevcn.com'
*.db_files=1024
*.db_flashback_retention_target=120
*.db_lost_write_protect='typical'
*.db_name='orcl'
*.db_recovery_file_dest='+RECOC1'
*.db_recovery_file_dest_size=137083544928256
*.db_unique_name='ORCL_XXXXX9'#ENSURE THAT DB_UNIQUE_NAME IS UNIQUE ACROSS THE ENTERPRISE
*.diagnostic_dest='/u02/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.distributed_lock_timeout=360
*.enable_ddl_logging=TRUE
*.enable_pluggable_database=true
*.encrypt_new_tablespaces='CLOUD_ONLY'
*.fast_start_mttr_target=300
*.filesystemio_options='setall'
*.global_names=TRUE
*.inmemory_size=1470103552
family:dw_helper.instance_mode='read-only'
orcl1.instance_number=1
orcl2.instance_number=2
orcl3.instance_number=3
orcl4.instance_number=4
*.local_listener='-oraagent-dummy-'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST REOPEN=60 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl_xxxxx9 ALTERNATE=LOG_ARCHIVE_DEST_10'
*.log_archive_dest_10='LOCATION=+DATAC1 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl_xxxxx9 ALTERNATE=LOG_ARCHIVE_DEST_1'
*.log_archive_dest_state_10='ALTERNATE'
*.log_archive_format='%t_%s_%r.dbf'
*.log_buffer=67108864
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=1000
*.os_authent_prefix=''
*.parallel_execution_message_size=16384
*.parallel_threads_per_cpu=1
*.pga_aggregate_target=5000m
*.processes=2048
*.recyclebin='on'
*.remote_listener='lp-exacs-47f2w-scan.lpvcn00sn01.lpvcn00.oraclevcn.com:1521'
*.remote_login_passwordfile='exclusive'
*.sga_target=7000m
*.sql92_security=TRUE
orcl1.thread=1
orcl2.thread=2
orcl3.thread=3
orcl4.thread=4
orcl1.undo_tablespace='UNDOTBS1'
orcl2.undo_tablespace='UNDOTBS2'
orcl3.undo_tablespace='UNDOTBS3'
orcl4.undo_tablespace='UNDOTBS4'
*.use_large_pages='TRUE'


■Appendix


●Data Sheet

 ・Oracle Database Exadata Cloud Service


●マニュアル

 ・ Exadata DBシステム: Exadata DBシステム

   - Exadata DBシステムのネットワーク設定

   - Exadata Databaseのバックアップ

 ・2日でデータベース管理者: EM Expressを使用したPDBの管理

 ・ACFSホワイトペーパ: Oracle ACFS 18c ASM Cluster File System

 ・Oracle Automatic Storage Management 管理者ガイド19c: acfsutil size

 


●ホワイトペーパー

 ・Oracle Cloud Infrastructure Exadata Backup & Restore Best Practices using Cloud Object Storage

 ・Hybrid Data Guard to Exadata Cloud Services


●技術記事

 ・ Oracle Cloud Infrastructure Exadata の構成について

 ・ リソース追加してみよう - スケール・アップ/ダウン OCI Exadata 編


●FAQ

 ・Oracle Cloud Infrastructure Database FAQ