■ 目的
Real Application Clusters(RAC)は、2台以上の個々のコンピュータを連結し、1台のコンピュータとして機能するテクノロジです。
クラスタ・ノードの1台に障害が発生したり、オフラインにされた場合でも、残りのクラスタ・ノードで処理を続行するため、RACデータベース全体は使用可能なままです。
つまり、2台以上のコンピュータが、1台のより強力なコンピュータのように動作します。
また、OCIのRACは複数ノードが複数のFalt Domainに分散配置された高可用性構成となります。
ということでやってみてみます
■ 構成
Network要件等はマニュアルを参照 ・[DBシステムのネットワーク設定](https://docs.oracle.com/cd/E97706_01/Content/Database/Tasks/network.htm) ・[データベースのバックアップ](https://docs.oracle.com/cd/E97706_01/Content/Database/Tasks/backingup.htm)■ RAC作成
● DB情報入力
● データベース情報入力
■ RAC作成確認
● OSユーザー確認
[opc@rac19c1 ~]# uname -a
Linux rac19c1 4.1.12-124.27.1.el7uek.x86_64 #2 SMP Mon May 13 08:56:17 PDT 2019 x86_64 x86_64 x86_64 GNU/Linux
[opc@rac19c1 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.5 (Maipo)
[opc@rac19c1 ~]$ id -a
uid=54322(opc) gid=54323(opc) groups=54323(opc)
[opc@rac19c1 ~]$ sudo su - oracle
[oracle@rac19c1 ~]$ id -a
uid=101(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dbaoper),1003(dba),1006(asmdba)
[oracle@rac19c1 ~]$ env | grep ORA
ORACLE_UNQNAME=cdb01_nrt1t4
ORACLE_SID=cdb011
ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1
● 環境変数確認確認
GRID_HOMEにはパスが通ってないので、必要に応じて設定
[oracle@rac19c1 ~]$ cat .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1; export ORACLE_HOME
PATH=$PATH:/u01/app/oracle/product/19.0.0.0/dbhome_1/bin; export PATH
PATH=$PATH:/u01/app/19.0.0.0/grid/bin; export PATH
LD_LIBRARY_PATH=/u01/app/oracle/product/19.0.0.0/dbhome_1/lib; export LD_LIBRARY_PATH
ORACLE_UNQNAME=cdb01_nrt1t4;export ORACLE_UNQNAME
ORACLE_SID=cdb011; export ORACLE_SID
● RACリソース稼働確認
[oracle@rac19c1 ~]$ /u01/app/19.0.0.0/grid/bin/crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.COMMONSTORE.advm
ONLINE ONLINE rac19c1 STABLE
ONLINE ONLINE rac19c2 STABLE
ora.LISTENER.lsnr
ONLINE ONLINE rac19c1 STABLE
ONLINE ONLINE rac19c2 STABLE
ora.chad
ONLINE ONLINE rac19c1 STABLE
ONLINE ONLINE rac19c2 STABLE
ora.data.commonstore.acfs
ONLINE ONLINE rac19c1 mounted on /opt/orac
le/dcs/commonstore,S
TABLE
ONLINE ONLINE rac19c2 mounted on /opt/orac
le/dcs/commonstore,S
TABLE
ora.net1.network
ONLINE ONLINE rac19c1 STABLE
ONLINE ONLINE rac19c2 STABLE
ora.ons
ONLINE ONLINE rac19c1 STABLE
ONLINE ONLINE rac19c2 STABLE
ora.proxy_advm
ONLINE ONLINE rac19c1 STABLE
ONLINE ONLINE rac19c2 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE rac19c1 STABLE
2 ONLINE ONLINE rac19c2 STABLE
ora.DATA.dg(ora.asmgroup)
1 ONLINE ONLINE rac19c1 STABLE
2 ONLINE ONLINE rac19c2 STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rac19c2 STABLE
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE rac19c1 STABLE
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE rac19c1 STABLE
ora.RECO.dg(ora.asmgroup)
1 ONLINE ONLINE rac19c1 STABLE
2 ONLINE ONLINE rac19c2 STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE rac19c1 Started,STABLE
2 ONLINE ONLINE rac19c2 Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE rac19c1 STABLE
2 ONLINE ONLINE rac19c2 STABLE
ora.cdb01_nrt1t4.db
1 ONLINE ONLINE rac19c1 Open,HOME=/u01/app/o
racle/product/19.0.0
.0/dbhome_1,STABLE
2 ONLINE ONLINE rac19c2 Open,HOME=/u01/app/o
racle/product/19.0.0
.0/dbhome_1,STABLE
ora.cvu
1 ONLINE ONLINE rac19c1 STABLE
ora.qosmserver
1 ONLINE ONLINE rac19c1 STABLE
ora.rac19c1.vip
1 ONLINE ONLINE rac19c1 STABLE
ora.rac19c2.vip
1 ONLINE ONLINE rac19c2 STABLE
ora.scan1.vip
1 ONLINE ONLINE rac19c2 STABLE
ora.scan2.vip
1 ONLINE ONLINE rac19c1 STABLE
ora.scan3.vip
1 ONLINE ONLINE rac19c1 STABLE
--------------------------------------------------------------------------------
■ Database確認
デフォルトで作成されるDatabaseはデモDBという位置付けのため、本番利用できない内容になっています。
ということで最低、REDOログ、DataファイルのサイズやSPFILEの初期化パラメータを適宜調整します。
● sqlplus接続
[oracle@rac19c1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Aug 14 22:25:27 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 1610 +DATA/CDB01_NRT1T4/DATAFILE/sysaux.261.1014777807 YES 10240 2048 8192 NO
SYSTEM 920 +DATA/CDB01_NRT1T4/DATAFILE/system.260.1014777769 YES 10240 2048 8192 NO
TEMP 43 +DATA/CDB01_NRT1T4/TEMPFILE/temp.263.1014777927 YES 640 2048 8192 NO
UNDOTBS1 85 +DATA/CDB01_NRT1T4/DATAFILE/undotbs1.262.1014777825 YES 5120 2048 8192 NO
UNDOTBS2 50 +DATA/CDB01_NRT1T4/DATAFILE/undotbs2.268.1014778247 YES 25600 2048 8192 NO
USERS 5 +DATA/CDB01_NRT1T4/DATAFILE/users.275.1014779225 YES 1280 2048 8192 NO
6 rows selected.
● REDO確認
col MEMBER format a60
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 39 +RECO/CDB01_NRT1T4/ONLINELOG/group_1.257.1014777905 1024 ONLINE CURRENT NO
1 1 2 38 +RECO/CDB01_NRT1T4/ONLINELOG/group_2.258.1014777905 1024 ONLINE INACTIVE YES
2 1 3 37 +RECO/CDB01_NRT1T4/ONLINELOG/group_3.259.1014778529 1024 ONLINE INACTIVE YES
2 1 4 38 +RECO/CDB01_NRT1T4/ONLINELOG/group_4.260.1014778537 1024 ONLINE CURRENT NO
● 初期化パラメータ確認
SQL> create pfile='/tmp/init.ora' from spfile;
File created.
SQL> host cat /tmp/init.ora
*._datafile_write_errors_crash_instance=false
*._db_writer_coalesce_area_size=16777216
*._disable_interface_checking=TRUE
*._enable_numa_support=FALSE
*._file_size_increase_increment=2143289344
*._fix_control='18960760:on'
*._gc_policy_time=20
*._gc_undo_affinity=TRUE
*.audit_file_dest='/u01/app/oracle/admin/cdb01_nrt1t4/adump'
*.audit_sys_operations=TRUE
*.audit_trail='db'
*.cluster_database=true
*.compatible='19.0.0.0'
*.control_file_record_keep_time=38
*.control_files='+RECO/CDB01_NRT1T4/CONTROLFILE/current.256.1014777901'
*.control_management_pack_access='DIAGNOSTIC+TUNING'
*.cpu_count=0
*.cursor_sharing='EXACT'
*.db_block_checking='FULL'
*.db_block_checksum='FULL'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_create_online_log_dest_1='+RECO'
*.db_domain='publicsubnet01.vcn172160016.oraclevcn.com'
*.db_files=1024
*.db_lost_write_protect='TYPICAL'
*.db_name='cdb01'
*.db_recovery_file_dest='+RECO'
*.db_recovery_file_dest_size=255g
*.db_unique_name='cdb01_nrt1t4'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=cdb01XDB)'
*.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=0m
family:dw_helper.instance_mode='read-only'
cdb011.instance_number=1
cdb012.instance_number=2
*.local_listener='-oraagent-dummy-'
*.log_archive_format='%t_%s_%r.dbf'
*.log_buffer=16777216
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=1000
*.os_authent_prefix='ops$'
*.parallel_execution_message_size=16384
*.parallel_threads_per_cpu=2
*.pga_aggregate_limit=30720m
*.pga_aggregate_target=15360m
*.processes=400
*.remote_login_passwordfile='exclusive'
*.sec_case_sensitive_logon=FALSE
*.session_cached_cursors=100
*.sga_target=7680m
*.spatial_vector_acceleration=TRUE
*.sql92_security=TRUE
cdb012.thread=2
cdb011.thread=1
*.undo_retention=900
cdb011.undo_tablespace='UNDOTBS1'
cdb012.undo_tablespace='UNDOTBS2'
*.use_large_pages='only'
■ REDOログ設定(サイズ変更とGroup追加)
デフォルトはサイズ1G、各ThreadノードGroup 2つ
少ないので、サイズ変更と各Threadノード 4 Group構成にしてみてみます
REDOは動的にサイズ変更できないので、全削除して作り直しをします
● 手順概要
① 新規REDO THREAD 1 GROUP 11 ~ 14 追加
② 新規REDO THREAD 2 GROUP 21 ~ 22 追加
③ 既存REDO THREAD 1 GROUP 1, 2 削除
④ 既存REDO THREAD 2 GROUP 3, 4 削除
● THREAD 1 GROUP 11 ~ 14 追加
SQL> ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 11 SIZE 10G ;
SQL> ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 12 SIZE 10G ;
SQL> ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 13 SIZE 10G ;
SQL> ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 14 SIZE 10G ;
● THREAD 2 GROUP 21 ~ 22 追加
SQL> ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 21 SIZE 10G ;
SQL> ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 22 SIZE 10G ;
SQL> ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 23 SIZE 10G ;
SQL> ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 24 SIZE 10G ;
● 既存REDO削除
削除するREDOはSTATUS= INACTIVEにする必要があります
REDOのSTATUS= INACTIVEになるようにlogスイッチ を実行
SQL> alter system archive log current;
System altered.
STATUSがACTIVEのままでINACTIVEになかなかならない場合チェックポイントします
SQL> alter system checkpoint;
● 既存THREAD 1 GROUP 1, 2 削除
SQL> alter database drop logfile group 1;
SQL> alter database drop logfile group 2;
● 既存THREAD 2 GROUP 3, 4 削除
SQL> alter database drop logfile group 3;
SQL> alter database drop logfile group 4;
● REDO作成確認
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 11 54 +RECO/CDB01_NRT1T4/ONLINELOG/group_11.332.1016285139 10240 ONLINE INACTIVE YES
1 1 12 55 +RECO/CDB01_NRT1T4/ONLINELOG/group_12.333.1016285231 10240 ONLINE CURRENT NO
1 1 13 0 +RECO/CDB01_NRT1T4/ONLINELOG/group_13.334.1016285453 10240 ONLINE UNUSED YES
1 1 14 0 +RECO/CDB01_NRT1T4/ONLINELOG/group_14.335.1016285539 10240 ONLINE UNUSED YES
2 1 21 50 +RECO/CDB01_NRT1T4/ONLINELOG/group_21.336.1016285625 10240 ONLINE INACTIVE YES
2 1 22 51 +RECO/CDB01_NRT1T4/ONLINELOG/group_22.337.1016285711 10240 ONLINE CURRENT NO
2 1 23 0 +RECO/CDB01_NRT1T4/ONLINELOG/group_23.338.1016285799 10240 ONLINE UNUSED YES
2 1 24 0 +RECO/CDB01_NRT1T4/ONLINELOG/group_24.339.1016285885 10240 ONLINE UNUSED YES
8 rows selected.
● logスイッチ動作確認
logスイッチ を実行して一回りしてもエラーでないことを確認しておきます
SQL> alter system archive log current;
System altered.
● DB_RECOVERY_FILE_DEST_SIZE 設定
db_recovery_file_dest_size 領域が大きすぎて不要なARCHIVE REDOファイル削除できなくならないように調整します。
1) RECO ASM Disk容量確認
[grid@rac19c1 ~]$ asmcmd lsdg
State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 512 4096 4194304 262144 242664 0 242664 0 Y DATA/
MOUNTED EXTERN N 512 512 4096 4194304 262144 217452 0 217452 0 N RECO/
[grid@rac19c1 ~]$ asmcmd ls RECO/CDB_TOKYO
ARCHIVELOG/
AUTOBACKUP/
BACKUPSET/
CONTROLFILE/
FLASHBACK/
ONLINELOG/
[grid@db-tokyo1 ~]$ asmcmd du RECO/CDB_TOKYO/CONTROLFILE/
Used_MB Mirror_used_MB
64 64
[grid@db-tokyo1 ~]$ asmcmd du RECO/CDB_TOKYO/ONLINELOG/
Used_MB Mirror_used_MB
14448 14448
2) db_recovery_file_dest_size設定
RECOのASM Diskサイズは 262144MB なので、ARCHIVELOG/とFLASHBACK/用に必要なサイズを計算してdb_recovery_file_dest_size を設定ます。
SQL> alter system set db_recovery_file_dest_size=200G scope=BOTH;
System altered.
SQL> show parameter db_recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string +RECO
db_recovery_file_dest_size big integer 200G
■ 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ファイルを配置する場合、容量が足りないことがあるので、拡張してみてみます
※ 初期利用領域は+DATAのASMディスクが設定されています
● ACFSマウントポイントと容量確認
[root@rac19c1 ~]# df -hT | grep acfs
/dev/asm/commonstore-431 acfs 100G 833M 100G 1% /opt/oracle/dcs/commonstore
● ACFS +DATAディスク・グループ容量確認
[root@rac19c1 ~]# /sbin/acfsutil info storage
Diskgroup Consumer Space Size With Mirroring Usable Free %Free Path
DATA 1024.00 1024.00 919.46 89%
COMMONSTORE 100.00 100.00 99.19 99% /opt/oracle/dcs/commonstore
RECO 256.00 256.00 248.91 97%
----
unit of measurement: GB
● ACFS拡張
[root@rac19c1 ~]# /sbin/acfsutil size 200G /opt/oracle/dcs/commonstore
acfsutil size: Resizing file system in steps
acfsutil size: Resizing file system to 0.1133 TB
acfsutil size: Resizing file system to 0.1289 TB
acfsutil size: Resizing file system to 0.1445 TB
acfsutil size: Resizing file system to 0.1602 TB
acfsutil size: Resizing file system to 0.1758 TB
acfsutil size: Resizing file system to 0.1914 TB
acfsutil size: Resizing file system to 0.1953 TB
acfsutil size: new file system size: 214748364800 (204800MB)
● ACFS拡張確認
[root@rac19c1 ~]# df -hT | grep acfs
/dev/asm/commonstore-431 acfs 200G 1.1G 199G 1% /opt/oracle/dcs/commonstore
[root@rac19c1 ~]# /sbin/acfsutil info storage
Diskgroup Consumer Space Size With Mirroring Usable Free %Free Path
DATA 1024.00 1024.00 819.46 80%
COMMONSTORE 200.00 200.00 198.99 99% /opt/oracle/dcs/commonstore
RECO 256.00 256.00 248.91 97%
----
unit of measurement: GB
● ACFS縮小
[root@rac19c1 ~]# /sbin/acfsutil size 100G /opt/oracle/dcs/commonstore
acfsutil size: Resizing file system in steps
acfsutil size: Resizing file system to 0.1797 TB
acfsutil size: Resizing file system to 0.1641 TB
acfsutil size: Resizing file system to 0.1484 TB
acfsutil size: Resizing file system to 0.1328 TB
acfsutil size: Resizing file system to 0.1172 TB
acfsutil size: Resizing file system to 0.1016 TB
acfsutil size: Resizing file system to 0.0977 TB
acfsutil size: new file system size: 107374182400 (102400MB)
● ACFS縮小確認
[root@rac19c1 ~]# df -hT | grep acfs
/dev/asm/commonstore-431 acfs 100G 940M 100G 1% /opt/oracle/dcs/commonstore
■ Transparent Application Failover(TAF)接続
透過的アプリケーションフェイルオーバー TAFは接続先のデータベース・インスタンスに障害が発生した場合でも、アプリケーションはデータベースに自動的に再接続でき、
オープン・カーソルもフェッチを続行するのでSELECT文はエラーすることなく処理を続行することができます
● TAFクライアント接続設定
TAF接続できるようにクライアントのtnsname.oraを設定します
[oracle@rac19c1 admin]$ vi $ORACLE_HOME/network/admin/tnsnames.ora
CDB01_NRT1T4 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac19c-scan.publicsubnet01.vcn172160016.oraclevcn.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = cdb01_nrt1t4.publicsubnet01.vcn172160016.oraclevcn.com)
)
)
==>次の様にFAILOVER_MODE項目を追加
CDB01_NRT1T4 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac19c-scan.publicsubnet01.vcn172160016.oraclevcn.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = cdb01_nrt1t4.publicsubnet01.vcn172160016.oraclevcn.com)
(FAILOVER_MODE = (TYPE = select)(METHOD = basic) )
)
)
● TAF接続動作確認
dba_objectsなど件数の多いテーブルをSELECT中に 接続インスタンスのプロセスをKillしてインスタンス・ダウン障害を発生させ、SELECTが途中でエラーせず処理完了することを確認し、別ノードのインスタンスに接続していることを確認します
① 接続インスタンス確認
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
cdb011
② SELECT文実行
SQL> select * from dba_objects;
・・・・
③ 接続インスタンス障害実行
ここではpmonプロセスをkillしてインスタンス障害を発生させます
[root@rac19c1 opc]# ps -ef | grep ora_pmon_cdb011
oracle 36047 1 0 16:40 ? 00:00:00 ora_pmon_cdb011
[root@rac19c1 opc]# kill -9 36047
④SELECT文正終了確認
SELECT文が正常終了したことを確認します
・・・・
SYS SYS_HUB DATABASE LINK 16-JUN-19 VALID N N N NONE N N N N
73135 rows selected.
SQL>
⑤ 接続インスタンス確認
v$instanceで接続インスタンスを確認し、SELECT実行した別のインスタンス・ノードへ自動接続フェールオーバーしていることを確認します
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
cdb012
■ Application Continuity(AC)
TAFはcommit必要なSQLはフェールオーバーできませんが、Application Continuity(AC)はできます。
ということで、12.2からはACをつかいましょう
・参考:Oracle Database: SQL*PlusでApplication Continuity(AC)やってみてみた
■ EM Express接続
● EM ポート確認
SQL> select dbms_xdb_config.getHttpsPort() from dual;
DBMS_XDB_CONFIG.GETHTTPSPORT()
------------------------------
5500
● EM 起動確認
SQL> host lsnrctl status | grep HTTP
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=rac19c1.publicsubnet01.vcn172160016.oraclevcn.com)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/product/19.0.0.0/dbhome_1/admin/cdb01_nrt1t4/xdb_wallet))(Presentation=HTTP)(Session=RAW))
● iptables設定
5500ポートアクセスできるようにiptablesを設定します
全RACノードで実施します
・iptables起動確認
[root@rac19c1 init.d]# systemctl status iptables
● iptables.service - IPv4 firewall with iptables
Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: disabled)
Active: active (exited) since 日 2019-07-28 01:28:30 UTC; 2 weeks 3 days ago
Main PID: 4226 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/iptables.service
7月 28 01:28:30 localhost systemd[1]: Starting IPv4 firewall with iptables...
7月 28 01:28:30 localhost iptables.init[4226]: iptables: Applying firewall rules: [ OK ]
7月 28 01:28:30 localhost systemd[1]: Started IPv4 firewall with iptables.
・5500ポート設定
[root@rac19c1 init.d]# vi /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5500 -j ACCEPT -m comment --comment "Required for access to EM. "
・iptables設定反映再起動
※全ノード
[root@rac19c1 init.d]# systemctl restart iptables.service
● EM Expressアクセス
・Login情報を入力し、[Log in]をクリック
Username: sys
Password: sysユーザ・パスワード
■ REPORT_PERFHUBファンクション
Enterprise Managerを使用でいない場合、REPORT_PERFHUBファンクションで指定した期間のデータベース・システム全体のコンポジット・アクティブ・パフォーマンス・レポートのHTMLを生成することができます。
・参考:REPORT_PERFHUBファンクション
SQL> set pages 0 linesize 32767 trimspool on trim on long 1000000 longchunksize 10000000
SQL> spool perfhub_active.html
SQL> select dbms_perf.report_perfhub(is_realtime=>1,type=>'active') from dual;
SQL> spool off
・・・
d2QhZDvj63uAZqx9Uaz/4Ibt9nXns6p/jNPVumL0uTXH1b1S7L054Nv15Xp5gv42
fyD+An46Sr0=
</report>
</report>
</report>
<!--FXTMODEL-->
</script>
</body>
</html>