Oracle Active Data Guard (ADG) を使用することで、エンタープライズ・データの高可用性、データ保護、ディザスタ・リカバリを実現できます。1つ以上の同期されたスタンバイ・データベースを作成、維持、管理することで、障害やデータ破損を切り抜けることができます。
Active Data Guard は Data Guardの機能を拡張したもので、自動ブロック修復などのデータ保護と可用性のための高度な機能に加えて、読取り専用ワークロードのオフロード機能と本番データベースからの高速増分バックアップ機能も搭載しています。
- Fast-Start Failover (FSFO): スタンバイ・データベースに自動的にフェイルオーバーできます。
- 自動ブロック修復: スタンバイ・データベースの破損したデータベースをユーザーに意識させることなく自動的にリカバリします。
- 遠隔同期: ネットワーク・レイテンシを発生させずに、サイトの障害時にあらゆる距離でデータ損失ゼロを実現します。
- Application Continuity (AC): データベース・トランザクションをリカバリすることで、エンドユーザーやアプリケーションへの停止の影響を排除します。
- データベースのローリング・アップグレード: データベースのバージョン・アップグレードによる停止時間を短縮します。
- Global Data Services (GDS): 接続リクエストに対するロード・バランシングを提供して複数のレプリケートされたデータベースにサービス管理を分散します。
- Oracle Sharding: データを水平パーティション化および地理的分散する機能を最大限に活用して、スケーラビリティと障害分離を大幅に強化します。
今回、Active Data Guard 勉強のため次の資料を参考に Exadata Database Service を使用して 手動で構成してみてみます。
- Oracle Exadata Cloudを使用したディザスタ・リカバリ
- Deploy a hybrid DR topology for an on-premises Oracle Exadata
■ 構成
各リージョンのRemote Peering 等の Network構成は事前に作成しておきます。
・参考: DRGで東京リージョンを経由して、オンプレミスと 大阪リージョンを接続
■ 手順1:クラウド・データベースを作成
● クラウド・コンソールを使用してデータベースを作成
クラウド・コンソールを使用し、前の手順でダウンロードしたバージョンを選択して正しいバンドル・パッチでデータベースを作成します。
スタンバイのデータベース名(db_name)はプライマリ・データベースと同じにする必要があります。 ただし、db_unique_nameは別にする必要あります。
・参考: Oracle Exadata Cloud Infrastructure X9M作成
・プライマリ・データベース作成
Primaryサイトへ DB_NAME=CDB, DB_UNIQUE_NAME=CDB_OSAKA を作成
・スタンバイ・データベース作成
Standbyサイトへ DB_NAME=CDB, DB_UNIQUE_NAME=CDB_TOKYO を作成
■ 作業環境効率化設定
● sglogin.sqlファイル設定
sqlpromptの表示をプライマリDBとスタンバイDBを間違えない様 事前定義変数を使用して接続識別子(TNS接続名)を表示するように glogin.sqlファイルに設定しときます。
・参考: SQL*Plus®ユーザーズ・ガイドおよびリファレンス: 12.17.1 事前定義変数
・設定例
$ vi $ORACLE_HOME/sqlplus/admin/glogin.sql
$ cat $ORACLE_HOME/sqlplus/admin/glogin.sql
set sqlprompt '&_USER@&_connect_identifier SQL> '
set pages 1000
・確認例
[oracle@exa-tokyo-node1 ~]$ sqlplus system/<Password>@CDB_TOKYO
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 22 06:48:58 2022
Version 19.15.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to:
Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
Version 19.15.0.0.0
SYSTEM@CDB_TOKYO SQL>
[oracle@exa-osaka-node1 ~]$ sqlplus system/<Password>@CDB_OSAKA
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 22 06:49:24 2022
Version 19.15.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to:
Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
Version 19.15.0.0.0
SYSTEM@CDB_OSAKA SQL>
● 環境変数ファイル設定
よく使うコマンド構文を alias にしときます。
・設定例
[oracle@exa-tokyo-node1 ~]$ cat CDB.env
・・・
alias cdn='cd $ORACLE_HOME/network/admin'
alias sys='sqlplus sys/<Password>@$ORACLE_UNQNAME as sysdba'
alias aldb='tail -f $ORACLE_BASE/diag/rdbms/${ORACLE_UNQNAME,,}/$ORACLE_SID/trace/alert_$ORACLE_SID.log'
alias sysdgm='dgmgrl sys/<Password>@$ORACLE_UNQNAME'
■ Primaryサイト前提条件確認
● 名前解決を設定する場合
OCIとの間のSSHおよびOracle Netアクセスできるように設定
/etc/hosts ファイルまたは、Private DNSで設定します。
Remote Peeringは次を参考にして Primary と Standbyサイト間通信できるようにしておきます
・参考: リージョン間を Remote VCN Peering接続
1) Private DNS設定
次の情報を参考に Private DNSを設定して、VCNどうしの名前解決をできるようにします。
Private DNSで PeeringしたVCNどうしホスト名解決する
・参考
- OCI Document:プライベートDNS
- チュートリアルPrivate DNS Implementation
2) DNS名前解決確認
Primary, Standby サイトからお互いtnsnames.oraで接続するホスト名で接続できることを確認
・ Osaka -> Tokyo確認
[oracle@exa-osaka-node1 ~]$ nslookup exa-tokyo-zuuyk-scan.clientsubnet.vcnexatokyo.oraclevcn.com
Server: 169.254.169.254
Address: 169.254.169.254#53
Non-authoritative answer:
Name: exa-tokyo-zuuyk-scan.clientsubnet.vcnexatokyo.oraclevcn.com
Address: 10.10.1.101
Name: exa-tokyo-zuuyk-scan.clientsubnet.vcnexatokyo.oraclevcn.com
Address: 10.10.1.102
Name: exa-tokyo-zuuyk-scan.clientsubnet.vcnexatokyo.oraclevcn.com
Address: 10.10.1.103
・ Tokyo -> Osaka確認
[root@exa-tokyo-node1 ~]# nslookup exa-osaka-bozpx-scan.clientsubnet.vcnexaosaka.oraclevcn.com
Server: 169.254.169.254
Address: 169.254.169.254#53
Non-authoritative answer:
Name: exa-osaka-bozpx-scan.clientsubnet.vcnexaosaka.oraclevcn.com
Address: 10.20.1.101
Name: exa-osaka-bozpx-scan.clientsubnet.vcnexaosaka.oraclevcn.com
Address: 10.20.1.102
Name: exa-osaka-bozpx-scan.clientsubnet.vcnexaosaka.oraclevcn.com
Address: 10.20.1.103
● 名前解決を設定できない場合
名前解決できない場合、IPアドレスを tnsnames.ora の データベース記述子に設定することで可能です。
・参考: 付録B:ADDRESS_LISTを使用するtnsnames.oraサンプル
● バンドル・パッチ(BP)確認
RDBMSソフトウェアは、インスタンス化のためにプライマリとスタンバイで同じものを使用する必要があります。
現在のオンプ レミスOracle DatabaseバージョンをExadata Cloudで使用できない場合は、プライマリ・データベースにパッチを適用するか、 または使用可能なクラウド・バンドル・パッチにアップグレードする必要があります。
クラウドで使用可能なバンドル・パッチ の一覧は、以下のコマンドで表示できます。ソフトウェアのインストールについては、「デプロイメント・プロセス」セクショ ンで説明しています。
1) Bundle Patches(BP)確認
PrimaryとStandbyサイトでBP同一であることを確認
# dbaascli cswlib list
DBAAS CLI version 22.3.1.1.0
Executing command cswlib list
INFO : Log file => /var/opt/oracle/log/list/list_2022-09-20_02:48:07.493531118599.log
[INFO] [DBAAS-14011] - The usage of this command is deprecated.
ACTION: It is recommended to use 'dbaascli cswlib showImages' for this operation.
INFO : dbimage fixup executed.
INFO: exabm=1 and oss_uri from return_exabm_url() :https://swiftobjectstorage.ap-tokyo-1.oraclecloud.com
############ List of Available BP #############
-APR2022 (For DB Versions 11204 12102 12201 18000 19000)
-OCT2021 (For DB Versions 11204 12102 12201 18000 19000)
-JUL2022 (For DB Versions 11204 12102 12201 18000 19000)
-JUL2021 (For DB Versions 11204 12102 12201 18000 19000)
-JAN2022 (For DB Versions 11204 12102 12201 18000 19000)
■ 個別パッチとマージ・パッチ確認
個別パッチとマージ・パッチもプライマリとスタンバイのデータベース間で一致している必要があります。
適用された個別パッチ を以下のコマンドで検索し、パッチのドキュメントに従ってすべてのプライマリ・データベース個別パッチをクラウド・データベース・ソフ トウェアに適用します。
・ 確認
PrimaryとStandbyサイトでDBパッチが同一であることを確認
$ $ORACLE_HOME/OPatch/opatch lspatches
34088989;ONE-OFF REQUEST FOR DELETE DIR FOR SUPTOOLS/TFA + SUPTOOLS/ORACHK + SUPTOOLS/ORACHK.ZIP FROM DB PSU/BP/RU/RUR
34096213;Fix for Bug 34096213
33810360;CVE-2021-45943 REPORTED IN (OPEN SOURCE GEOSPATIAL FOUNDATION/GEOSPATIAL DATA ABSTRACTION LIBRARY/OPENGIS SIMPLE FEATURES REFERENCE IMPLEMENTATION (GDAL/OGR)/3.3.0)
33809062;TRACKING BUG FOR REGRESSION RTI 24544369 CAUSED BY PKNAGGS_BUG-32472737 APPROVED/INCLUDED IN 21.0.0.0 ADBSBP
29780459;INCREASE _LM_RES_HASH_BUCKET AND BACK OUT CHANGES FROM THE BUG 29416368 FIX
33613833;DSTV37 UPDATE - TZDATA2021E - NEED OJVM FIX
33613829;RDBMS - DSTV37 UPDATE - TZDATA2021E
32327201;RDBMS - DSTV36 UPDATE - TZDATA2020E
31335037;RDBMS - DSTV35 UPDATE - TZDATA2020A
30432118;MERGE REQUEST ON TOP OF 19.0.0.0.0 FOR BUGS 28852325 29997937
33912872;DATABASE PERL UPDATE IN 19C TO V5.32-1 (CVE-2022-23990 - LIBEXPAT UPDATE)
33810130;JDK BUNDLE PATCH 19.0.0.0.220419
33808367;OJVM RELEASE UPDATE: 19.15.0.0.220419 (33808367)
33815596;OCW RELEASE UPDATE 19.15.0.0.0 (33815596)
33806152;Database Release Update : 19.15.0.0.220419 (33806152)
OPatch succeeded.
● Data Guard Broker構成確認
プライマリ・データベースがまだ既存のData Guard Broker構成の一部 になっていないことを前提としています。
SQL> select decode(count(*),0,'NOCONFIG') from v$DG_BROKER_CONFIG;
DECODE(C
--------
NOCONFIG
● プライマリ・データベースのリスナー・ポート検証
次のコマンドを実行して、プライマリ・データベース のリスナー・ポートを検証します。
このポートは、 REDO転送の構成時に必要となり、デプロイメント・プロセス時にtns記述子に入力されます。
[oracle@exa-tokyo-node1 ~]$ lsnrctl stat| grep 'Connecting to'
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
● プライマリ・データベースでMAAベスト・プラクティスのパラメータ設定を実装する
プライマリ・データベースでMAAベスト・プラクティスのパラメータ設定を実装する
ベスト・プラクティスのリストについては、ドキュメントの付録A を参照してください。このドキュメントで説明するプロセスでは、
インスタンス 化前にプライマリ・データベースが構成されていることを前提としています。
インスタンス化前にREDOログを構成することは特に重要です。
● 適切なロギング・モードの有効化
Data Guard構成の使用方法に適したロギング・モードを有効化する必要があります。
・参考: ドキュメントの付録A
SQL> ALTER DATABASE FORCE LOGGING;
データベースが変更されました。
● STANDBY_FILE_MANAGEMENT 設定
STANDBY_FILE_MANAGEMENT を AUTO に設定すると、データファイル作成等すると スタンバイ・データベース上にファイルが自動的に作成されます。
場合によっては既存のファイルが上書きされます。STANDBY_FILE_MANAGEMENT と DB_FILE_NAME_CONVERT を設定する場合は、既存のスタンバイ・ファイルが意図せずに上書きされないように注意してください。
スタンバイ・データベースがプライマリ・データベースと同じシステム上にある場合は、プライマリ・システムとスタンバイ・システムが同じファイルを指していないことを確認してください。
・参考: データベース・リファレンス
SQL> ALTER SYSTEM SET standby_file_management=AUTO SCOPE=BOTH;
System altered.
● プライマリ・データベース・ホストとスタンバイ・データベースホストとの間の接続の検証
すべてのネットワーク接続手順を正常に実施し終えたら、以下のコマンドを実行して、全ソースから全ターゲットへ、および全ターゲットから全ソースへの接続に問題がないことをTelnet,nc,sqlp接続等で確認します。
・ Osaka -> Tokyo接続確認
・TOKYO: Node1 1521接続確認
[root@exa-osaka-node1 ~]# nc -zv 10.10.1.11 1521
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.10.1.12:1521.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
・TOKYO: Node2 1521接続確認
[root@exa-osaka-node1 ~]# nc -zv 10.10.1.12 1521
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.10.1.12:1521.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
・TOKYO: Scan1 1521接続確認
[root@exa-osaka-node1 ~]# nc -zv 10.10.1.101 1521
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.10.1.101:1521.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
・TOKYO: Scan2 1521接続確認
[root@exa-osaka-node1 ~]# nc -zv 10.10.1.102 1521
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.10.1.102:1521.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
・TOKYO: Scan3
[root@exa-osaka-node1 ~]# nc -zv 10.10.1.103 1521
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.10.1.103:1521.
Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds.
・ Tokyo -> Osaka 1521接続確認
・OSAKA: Node1 1521接続確認
[root@exa-tokyo-node1 ~]# nc -zv 10.20.1.11 1521
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.20.1.11:1521.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
・OSAKA: Node2 1521接続確認
[root@exa-tokyo-node1 ~]# nc -zv 10.20.1.12 1521
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.20.1.12:1521.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
・OSAKA: Scan1 1521接続確認
[root@exa-tokyo-node1 ~]# nc -zv 10.20.1.101 1521
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.20.1.101:1521.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
・OSAKA: Scan2 1521接続確認
[root@exa-tokyo-node1 ~]# nc -zv 10.20.1.102 1521
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.20.1.102:1521.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
・OSAKA: Scan3 1521接続確認
[root@exa-tokyo-node1 ~]# nc -zv 10.20.1.103 1521
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.20.1.103:1521.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
■ クラウド・ツール更新
dbaastools バージョン18.2.3.2.0_190618以上が必要です。最新のdbaastools rpmに更新することが常に推奨されています。
1) dbaascli Version Up
最新のdbaastoolsを適用します。
・参考: クラウド・ツール dbaascliをバージョンアップ
2) dbaascli Version Up確認
[root@ ~]# dbaascli patch tools list
DBAAS CLI version 22.3.1.1.0
Executing command patch tools list
Checking Current tools on all nodes
exa-tokyo-node1: Patchid : 22.3.1.1.0_220826.0317
No applicable tools patches are available
exa-tokyo-zuuyk2: Patchid : 22.3.1.1.0_220826.0317
No applicable tools patches are available
All Nodes have the same tools version
■ 手順2:APIで作成されたデータベースを手動で削除
● データベース・ファイル削除スクリプト作成
スクリプトを作成して、すべてのデータベース・ファイルを削除
SQL> set heading off linesize 999 pagesize 0 feedback off trimspool on
SQL> spool /tmp/delete_ASM_files.sh
SQL> select 'asmcmd rm '||name from v$datafile
union all
select 'asmcmd rm '||name from v$tempfile
union all
select 'asmcmd rm '||member from v$logfile;
SQL> spool off
SQL> create pfile='/tmp/CDB_TOKYO.pfile' from spfile;
SQL> host chmod 777 /tmp/delete_ASM_files.sh
SQL> host cat /tmp/delete_ASM_files.sh
SQL> select 'asmcmd rm '||name from v$datafile
2 union all
3 select 'asmcmd rm '||name from v$tempfile
4 union all
5 select 'asmcmd rm '||member from v$logfile;
asmcmd rm +DATAC1/CDB_TOKYO/DATAFILE/system.291.1115821901
asmcmd rm +DATAC1/CDB_TOKYO/DE03BE2347E67ADBE053C00DD10A4229/DATAFILE/system.271.1115821673
asmcmd rm +DATAC1/CDB_TOKYO/DATAFILE/sysaux.297.1115821887
asmcmd rm +DATAC1/CDB_TOKYO/DE03BE2347E67ADBE053C00DD10A4229/DATAFILE/sysaux.301.1115821673
asmcmd rm +DATAC1/CDB_TOKYO/DATAFILE/undotbs1.292.1115821915
asmcmd rm +DATAC1/CDB_TOKYO/DE03BE2347E67ADBE053C00DD10A4229/DATAFILE/undotbs1.300.1115821673
asmcmd rm +DATAC1/CDB_TOKYO/DATAFILE/users.290.1115821929
asmcmd rm +DATAC1/CDB_TOKYO/DATAFILE/undotbs2.289.1115821937
asmcmd rm +DATAC1/CDB_TOKYO/E909A6304600B2CAE05353010A0AA253/DATAFILE/system.274.1115822297
asmcmd rm +DATAC1/CDB_TOKYO/E909A6304600B2CAE05353010A0AA253/DATAFILE/sysaux.279.1115822305
asmcmd rm +DATAC1/CDB_TOKYO/E909A6304600B2CAE05353010A0AA253/DATAFILE/undotbs1.264.1115822309
asmcmd rm +DATAC1/CDB_TOKYO/E909A6304600B2CAE05353010A0AA253/DATAFILE/undo_2.283.1115822315
asmcmd rm +DATAC1/CDB_TOKYO/E909A6304600B2CAE05353010A0AA253/DATAFILE/users.270.1115822295
asmcmd rm +DATAC1/CDB_TOKYO/TEMPFILE/temp.285.1115822003
asmcmd rm +DATAC1/CDB_TOKYO/E9098419BE65BF0DE05366010A0AED64/TEMPFILE/temp.299.1115821703
asmcmd rm +DATAC1/CDB_TOKYO/E909A6304600B2CAE05353010A0AA253/TEMPFILE/temp.277.1115822291
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_4.261.1115821627
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_3.265.1115821627
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_2.278.1115821627
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_1.267.1115821627
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_5.298.1115822129
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_6.296.1115822131
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_7.295.1115822133
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_8.294.1115822135
SQL> spool off
● インスタンス化後に再適用するRMAN設定保存
[oracle@exa-osaka-node1 ~]$ rman target / log='/tmp/rman_setting.log'
RMAN> show all;
RMAN> exit
[oracle@exa-tokyo-node1 ~]$ cat /tmp/rman_setting.log
Recovery Manager: Release 19.0.0.0.0 - Production on Wed Sep 21 06:23:53 2022
Version 19.15.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: CDB (DBID=2232425141)
RMAN>
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name CDB_TOKYO are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF;
CONFIGURE ENCRYPTION ALGORITHM 'AES256';
CONFIGURE COMPRESSION ALGORITHM 'LOW' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DATAC1/CDB_TOKYO/controlfile/snapcf_CDB.f';
RMAN>
Recovery Manager complete.
● データベースをシャットダウン
後で参照できるよう、データベースのクラスタウェア構成を収集します。
[oracle@exa-tokyo-node1 ~]$ srvctl config database -d CDB_TOKYO > /tmp/CDB_TOKYO.config
[oracle@exa-tokyo-node1 ~]$ cat /tmp/CDB_TOKYO.config
Database unique name: CDB_TOKYO
Database name: CDB
Oracle home: /u02/app/oracle/product/19.0.0.0/dbhome_1
Oracle user: oracle
Spfile: +DATAC1/CDB_TOKYO/PARAMETERFILE/spfile.281.1115822137
Password file: +DATAC1/CDB_TOKYO/PASSWORD/pwdcdb_tokyo.293.1115821459
Domain: clientsubnet.vcnexatokyo.oraclevcn.com
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: DATAC1
Mount point paths: /acfs01
Services: CDB_PDB1.paas.oracle.com
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: dba
OSOPER group: racoper
Database instances: CDB_TOKYO1,CDB_TOKYO2
Configured nodes: exa-tokyo-node1,exa-tokyo-zuuyk2
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed
● 最後に、データベースを停止します。
[oracle@exa-tokyo-node1 ~]$ srvctl stop database -d CDB_TOKYO -o immediate
[oracle@exa-tokyo-node1 ~]$ srvctl status database -d CDB_TOKYO
Instance CDB_TOKYO1 is not running on node exa-tokyo-node1
Instance CDB_TOKYO2 is not running on node exa-tokyo-zuuyk2
● データベース・ファイルを削除
Standbyサイトの既存のデータファイル、ログ・ファイル、tempfileを削除します。パスワード・ファイルは置換され、spfileは再使用します。
1) データベース・ファイル削除スクリプト作成
gridユーザーとして、前に作成した/tmp/delete_ASM_files.sh を編集して、sqlplusからすべての不要な行を削除し、'asmcmd'で始まる行のみを残します。
[grid@exa-tokyo-node1 ~]$ cp /tmp/delete_ASM_files.sh /tmp/delete_ASM_files.sh.org
[grid@exa-tokyo-node1 ~]$ vi /tmp/delete_ASM_files.sh
<--すべての不要な行を削除し、'asmcmd'で始まる行のみを残します。
[grid@exa-tokyo-node1 ~]$ cat /tmp/delete_ASM_files.sh
asmcmd rm +DATAC1/CDB_TOKYO/DATAFILE/system.291.1115821901
asmcmd rm +DATAC1/CDB_TOKYO/DE03BE2347E67ADBE053C00DD10A4229/DATAFILE/system.271.1115821673
asmcmd rm +DATAC1/CDB_TOKYO/DATAFILE/sysaux.297.1115821887
asmcmd rm +DATAC1/CDB_TOKYO/DE03BE2347E67ADBE053C00DD10A4229/DATAFILE/sysaux.301.1115821673
asmcmd rm +DATAC1/CDB_TOKYO/DATAFILE/undotbs1.292.1115821915
asmcmd rm +DATAC1/CDB_TOKYO/DE03BE2347E67ADBE053C00DD10A4229/DATAFILE/undotbs1.300.1115821673
asmcmd rm +DATAC1/CDB_TOKYO/DATAFILE/users.290.1115821929
asmcmd rm +DATAC1/CDB_TOKYO/DATAFILE/undotbs2.289.1115821937
asmcmd rm +DATAC1/CDB_TOKYO/E909A6304600B2CAE05353010A0AA253/DATAFILE/system.274.1115822297
asmcmd rm +DATAC1/CDB_TOKYO/E909A6304600B2CAE05353010A0AA253/DATAFILE/sysaux.279.1115822305
asmcmd rm +DATAC1/CDB_TOKYO/E909A6304600B2CAE05353010A0AA253/DATAFILE/undotbs1.264.1115822309
asmcmd rm +DATAC1/CDB_TOKYO/E909A6304600B2CAE05353010A0AA253/DATAFILE/undo_2.283.1115822315
asmcmd rm +DATAC1/CDB_TOKYO/E909A6304600B2CAE05353010A0AA253/DATAFILE/users.270.1115822295
asmcmd rm +DATAC1/CDB_TOKYO/TEMPFILE/temp.285.1115822003
asmcmd rm +DATAC1/CDB_TOKYO/E9098419BE65BF0DE05366010A0AED64/TEMPFILE/temp.299.1115821703
asmcmd rm +DATAC1/CDB_TOKYO/E909A6304600B2CAE05353010A0AA253/TEMPFILE/temp.277.1115822291
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_4.261.1115821627
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_3.265.1115821627
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_2.278.1115821627
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_1.267.1115821627
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_5.298.1115822129
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_6.296.1115822131
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_7.295.1115822133
asmcmd rm +DATAC1/CDB_TOKYO/ONLINELOG/group_8.294.1115822135
2) スクリプトを保存して実行
/tmp/delete_ASM_files.sh これで、初期データベースのすべてのファイルが削除されました。
[grid@exa-tokyo-node1 ~]$ . /tmp/delete_ASM_files.sh
[grid@exa-tokyo-node1 ~]$ asmcmd ls +DATAC1/CDB_TOKYO
CONTROLFILE/
DATAGUARDCONFIG/
PARAMETERFILE/
PASSWORD/
[grid@exa-tokyo-node1 ~]$ asmcmd ls +DATAC1/CDB_TOKYO/ONLINELOG
ASMCMD-8002: entry 'ONLINELOG' does not exist in directory '+DATAC1/CDB_TOKYO/'
■ 手順3:パスワード・ファイルをスタンバイ・データベースにコピー
スタンバイ・データベースのパスワード・ファイルは、プライマリ・データベースのパスワード・ファイルで置き換えます。
● プライマリ・データベース のパスワード・ファイルの場所を確認する
[grid@exa-tokyo-node1 ~]$ srvctl config database -db CDB_OSAKA
Database unique name: CDB_OSAKA
Database name: CDB
Oracle home: /u02/app/oracle/product/19.0.0.0/dbhome_1
Oracle user: oracle
Spfile: +DATAC1/CDB_OSAKA/PARAMETERFILE/spfile.267.1115956849
Password file: +DATAC1/CDB_OSAKA/PASSWORD/pwdcdb_osaka.272.1115956143
Domain: clientsubnet.vcnexaosaka.oraclevcn.com
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: DATAC1
Mount point paths: /acfs01
Services: CDB_PDB1.paas.oracle.com
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: dba
OSOPER group: racoper
Database instances: CDB_OSAKA1,CDB_OSAKA2
Configured nodes: exa-osaka-node1,exa-osaka-node2
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed
● プライマリ・データベースのパスワード・ファイルを Standby へコピー
パスワード・ファイルをすべての Standbyノードにコピーします。
パスワード・ファイルの場所がASMの場合は、ユーザーを"grid"またはASM所有者に切り替え、環境変数を指定してから、以下のようにしてパスワード・ファイルをコピーします。
1) パスワード・ファイル確認
[grid@exa-osaka-node1 ~]$ asmcmd
ASMCMD> cd +DATAC1/CDB_OSAKA/PASSWORD
ASMCMD> ls
pwdcdb_osaka.272.1115956143
2) パスワード・ファイルを /tmpへコピー
ASMCMD> cp pwdcdb_osaka.272.1115956143 /tmp
copying +DATAC1/CDB_OSAKA/PASSWORD/pwdcdb_osaka.272.1115956143 -> /tmp/pwdcdb_osaka.272.1115956143
3) パスワード・ファイルを スタンバイ・データベース へコピー
[oracle@exa-osaka-node1 .ssh]$ scp -i $HOME/.ssh/id_rsa2 /tmp/pwdcdb_osaka.272.1115956143 oracle@10.10.1.11:/tmp/
pwdcdb_osaka.272.1115956143 100% 2560 247.5KB/s 00:00
● Standby のパスワード・ファイルをASMに格納
1) Standbyの既存パスワード・ファイル確認
[grid@exa-tokyo-node1 ~]$ srvctl config database -db CDB_TOKYO | grep Password
Password file: +DATAC1/CDB_TOKYO/PASSWORD/pwdcdb_tokyo.293.1115821459
2) Standbyの既存パスワード・ファイル削除
$ asmcmd rm <Password file Path>
3) Primaryパスワード・ファイルをStandbyへコピー
前に登録されたパスワード・ファイルの場所を再使用している場合、Error ASMCMD-9453: failed to register password file as a CRS resourceは無視してかまいません。
ASMCMD> pwcopy --dbuniquename CDB_TOKYO /tmp/pwdcdb_osaka.272.1115956143 +DATAC1/CDB_TOKYO/PASSWORD/pwdcdb_tokyo -f
ASMCMD-9453: failed to register password file as a CRS resource
copying /tmp/pwdcdb_osaka.272.1115956143 -> +DATAC1/CDB_TOKYO/PASSWORD/pwdcdb_tokyo
ASMCMD-9453: failed to register password file as a CRS resource
<-- ASMCMD-9453は無視できる
ASMCMD> ls -l +DATAC1/CDB_TOKYO/PASSWORD/
Type Redund Striped Time Sys Name
PASSWORD HIGH COARSE SEP 22 10:00:00 N pwdcdb_tokyo => +DATAC1/CDB_TOKYO/PASSWORD/pwdcdb_tokyo.294.1116068321
PASSWORD HIGH COARSE SEP 22 10:00:00 Y pwdcdb_tokyo.294.1116068321
4) 新規パスワード・ファイルを登録
[oracle@exa-tokyo-node1 ~]$ srvctl modify database -db CDB_TOKYO -pwfile +DATAC1/CDB_TOKYO/PASSWORD/pwdcdb_tokyo
5) 新規パスワード・ファイル登録確認
[oracle@exa-tokyo-node1 ~]$ srvctl config database -db CDB_TOKYO | grep Password
Password file: +DATAC1/CDB_TOKYO/PASSWORD/pwdcdb_tokyo
■ 手順4:スタンバイ・データベースへのウォレット・ファイルのコピー
1) プライマリ・データベース の TDEウォレットの場所を取得
以下の問合せで、プライマリ・データベース の TDEウォレットの場所を取得します。
SQL> select WRL_PARAMETER from v$encryption_wallet;
WRL_PARAMETER
--------------------------------------------------------------------------------
/var/opt/oracle/dbaas_acfs/CDB/wallet_root/tde/
SQL> host ls -l /var/opt/oracle/dbaas_acfs/CDB/wallet_root/tde/
total 32
-rw------- 1 oracle oinstall 5512 Sep 21 04:02 cwallet.sso
-rw------- 1 oracle oinstall 2555 Sep 21 03:55 ewallet_2022092103555151.p12
-rw------- 1 oracle oinstall 3995 Sep 21 04:02 ewallet_2022092104025724.p12
-rw------- 1 oracle oinstall 5467 Sep 21 04:02 ewallet.p12
2) Standbyへウォレット・ファイルをコピー
Primary の ewallet.p12ファイルと cwallet.sso ファイルを、Standbyノード1上の /tmpディレクトリにコピーします。
プライマリでは、パスワード・ファイルの場合と同様に、ASMから/tmpにファイルをコピーすることが必要になる場合があります。
[oracle@exa-osaka-node1 ~]$ cd /var/opt/oracle/dbaas_acfs/CDB/wallet_root/tde/
[oracle@exa-osaka-node1 ~]$ scp -i ~/.ssh/id_rsa2 ewallet.p12 cwallet.sso oracle@10.20.1.11:/tmp
ewallet.p12 100% 5467 570.7KB/s 00:00
cwallet.sso 100% 5512 557.9KB/s 00:00
3) Standby 既存ウォレット・ファイルを削除
/var/opt/oracle/dbaas_acfs//tde_walletの古いウォレット・ファイルを削除します。
ノード1でのみコマンドを 実行します(スタンバイ・データベース・ノードは、ACFSを使用して/var/opt/oracle/dbaas_acfsのストレージを共有)。
[oracle@exa-tokyo-node1 tde]$ cd /var/opt/oracle/dbaas_acfs/CDB/wallet_root/tde
[oracle@exa-tokyo-node1 tde]$ ls -l
total 32
-rw------- 1 oracle oinstall 5512 Sep 16 15:06 cwallet.sso
-rw------- 1 oracle oinstall 2555 Sep 16 14:59 ewallet_2022091614591224.p12
-rw------- 1 oracle oinstall 3995 Sep 16 15:06 ewallet_2022091615063141.p12
-rw------- 1 oracle oinstall 5467 Sep 16 15:06 ewallet.p12
[oracle@exa-tokyo-node1 tde]$ rm cwallet.sso ewallet*
[oracle@exa-tokyo-node1 tde]$ ls -l
total 0
4) プライマリ・データベース のウォレット・ファイルを Standby DBへコピー
[oracle@exa-tokyo-node1 ~]$ chmod 777 /tmp/cwallet.sso
[oracle@exa-tokyo-node1 ~]$ cp /tmp/ewallet.p12 /var/opt/oracle/dbaas_acfs/CDB/wallet_root/tde
[oracle@exa-tokyo-node1 ~]$ cp /tmp/cwallet.sso /var/opt/oracle/dbaas_acfs/CDB/wallet_root/tde
[oracle@exa-tokyo-node1 ~]$ chmod 600 /tmp/cwallet.sso /var/opt/oracle/dbaas_acfs/CDB/wallet_root/tde/*wallet*
[oracle@exa-tokyo-node1 ~]$ ls -l /var/opt/oracle/dbaas_acfs/CDB/wallet_root/tde
total 16
-rw------- 1 oracle oinstall 5512 Sep 22 05:11 cwallet.sso
-rw------- 1 oracle oinstall 5467 Sep 22 05:11 ewallet.p12
■ 手順5:(11gのみ)静的リスナーを構成
19cでは不要
■ 手順6:REDO転送用のオラクルのネットワーク暗号化とTNSエントリ
プレーンテキストまたは暗号化されていない表領域のREDOがWAN上で可視状態にならないよう保護するには、プライマリ・データベース のすべてとクラウドにおいてsqlnet.oraファイルに次のエントリを入力します。
● tnsnames.ora設定
REDO転送が正常に行われるようにするには、プライマリとスタンバイの両方のtnsnames.oraファイルに各データベースのエントリが含まれている必要があります。
データベースのTNS記述子は、他のシステムからスキャン・リスナーが解決可能かどうかに応じて異なります。
以下の設定内容では、スキャン名が解決可能で、TNS記述子で使用可能なことを前提としています。スキャン名を解決できない場合は、ADDRESS_LISTを使用して、付録BでTNS記述子の例を参照してください。
・tnsnames.ora設定内容
Primary(Local DB) の接続記述子には , (UR=A)オプションがあります。
<primary db_unique_name> =
(DESCRIPTION =
(SDU=65536) (RECV_BUF_SIZE=134217728)
(SEND_BUF_SIZE=134217728)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = <primary scan name>)(PORT = {1521|<port#>}))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = <primary database service name>])
(UR=A)
))
<standby db_unique_name> =
(DESCRIPTION =
(SDU=65536) (RECV_BUF_SIZE=134217728)
(SEND_BUF_SIZE=134217728)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = <standby scan name>)(PORT = {1521|<port#>}))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = <service name of the standby database>)
))
・設定確認
[oracle@exa-tokyo-node1 ~]$ cat $ORACLE_HOME/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u02/app/oracle/product/19.0.0.0/dbhome_1/network/admin/CDB/tnsnames.ora
# Generated by Oracle configuration tools.
CDB_TOKYO =
(DESCRIPTION =
(SDU=65536) (RECV_BUF_SIZE=134217728)
(SEND_BUF_SIZE=134217728)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = exa-tokyo-zuuyk-scan.clientsubnet.vcnexatokyo.oraclevcn.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = CDB_TOKYO.clientsubnet.vcnexatokyo.oraclevcn.com)
(UR=A)
)
)
CDB_OSAKA =
(DESCRIPTION =
(SDU=65536) (RECV_BUF_SIZE=134217728)
(SEND_BUF_SIZE=134217728)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = exa-osaka-node-scan.clientsubnet.vcnexaosaka.oraclevcn.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = CDB_OSAKA.clientsubnet.vcnexaosaka.oraclevcn.com)
)
)
CDB=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=exa-tokyo-zuuyk-scan.clientsubnet.vcnexatokyo.oraclevcn.com)
(PORT=1521))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=CDB_TOKYO.clientsubnet.vcnexatokyo.oraclevcn.com)
(FAILOVER_MODE=
(TYPE=select)
(METHOD=basic))))
PDB1=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=exa-tokyo-zuuyk-scan.clientsubnet.vcnexatokyo.oraclevcn.com)
(PORT=1521))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=PDB1.clientsubnet.vcnexatokyo.oraclevcn.com)
(FAILOVER_MODE=
(TYPE=select)
(METHOD=basic))))
[oracle@exa-osaka-node1 ~]$ cat $ORACLE_HOME/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u02/app/oracle/product/19.0.0.0/dbhome_1/network/admin/CDB/tnsnames.ora
# Generated by Oracle configuration tools.
CDB_OSAKA =
(DESCRIPTION =
(SDU=65536) (RECV_BUF_SIZE=134217728)
(SEND_BUF_SIZE=134217728)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = exa-osaka-node-scan.clientsubnet.vcnexaosaka.oraclevcn.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = CDB_OSAKA.clientsubnet.vcnexaosaka.oraclevcn.com)
(UR=A)
)
)
CDB_TOKYO =
(DESCRIPTION =
(SDU=65536) (RECV_BUF_SIZE=134217728)
(SEND_BUF_SIZE=134217728)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = exa-tokyo-zuuyk-scan.clientsubnet.vcnexatokyo.oraclevcn.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = CDB_TOKYO.clientsubnet.vcnexatokyo.oraclevcn.com)
)
)
CDB=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=exa-osaka-node-scan.clientsubnet.vcnexaosaka.oraclevcn.com)
(PORT=1521))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=CDB_OSAKA.clientsubnet.vcnexaosaka.oraclevcn.com)
(FAILOVER_MODE=
(TYPE=select)
(METHOD=basic))))
PDB1=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=exa-osaka-node-scan.clientsubnet.vcnexaosaka.oraclevcn.com)
(PORT=1521))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=PDB1.clientsubnet.vcnexaosaka.oraclevcn.com)
(FAILOVER_MODE=
(TYPE=select)
(METHOD=basic))))
● sqlnet.ora設定
SQLNET.ENCRYPTION_SERVER=REQUIRED
SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,AES192,AES128)
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1)
SQLNET.ENCRYPTION_CLIENT=REQUIRED
SQLNET.CRYPTO_CHECKSUM_CLIENT=REQUIRED
SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256,AES192,AES128)
SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA1)
・設定確認
[oracle@ ~]$ cat sqlnet.ora
HTTPS_SSL_VERSION=1.2
SQLNET.CRYPTO_CHECKSUM_CLIENT=REQUIRED
SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED
SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA256,SHA384,SHA512,SHA1)
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA256,SHA384,SHA512)
SQLNET.ENCRYPTION_CLIENT=REQUIRED
SQLNET.ENCRYPTION_SERVER=REQUIRED
SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256,AES192,AES128)
SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,AES192,AES128)
SQLNET.EXPIRE_TIME=10
SQLNET.IGNORE_ANO_ENCRYPTION_FOR_TCPS=TRUE
SQLNET.WALLET_OVERRIDE=FALSE
SSL_CIPHER_SUITES=(SSL_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,SSL_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,SSL_ECDHE_RSA_WITH_AES_128_GCM_SHA256,SSL_ECDHE_RSA_WITH_AES_256_GCM_SHA384)
SSL_CLIENT_AUTHENTICATION=FALSE
SSL_VERSION=1.2
WALLET_LOCATION=
(SOURCE=
(METHOD=FILE)
(METHOD_DATA=(DIRECTORY=/var/opt/oracle/dbaas_acfs/grid/tcps_wallets)))
ENCRYPTION_WALLET_LOCATION=
(SOURCE=
(METHOD=FILE)
(METHOD_DATA=(DIRECTORY=/var/opt/oracle/dbaas_acfs/CDB/wallet_root/tde)))
● プライマリ・データベース 再起動
sqlnet.ora の WALLET_LOCATION を変更もしくは新規追加した場合、DBを再起動して設定を反映します。
[oracle@exa-osaka-node1 ~]$ srvctl stop database -d CDB_OSAKA -o immediate
[oracle@exa-osaka-node1 ~]$ srvctl start database -d CDB_OSAKA
[oracle@exa-osaka-node1 ~]$ srvctl status database -d CDB_OSAKA
Instance CDB_OSAKA1 is running on node exa-osaka-node1
Instance CDB_OSAKA2 is running on node exa-osaka-node1
■ 手順7:スタンバイ・データベースをインスタンス化
● スタンバイ・インスタンス作成
1) スタンバイ・データベース停止
[oracle@exa-tokyo-node1 ~]$ srvctl stop database -d CDB_TOKYO -o immediate
PRCC-1016 : CDB_TOKYO was already stopped
2) RMAN接続
[oracle@exa-tokyo-node1 ~]$ rman target sys/<Paassword>
Recovery Manager: Release 19.0.0.0.0 - Production on Thu Sep 22 06:19:40 2022
Version 19.15.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database (not started)
3) NOMOUNT起動
RMAN> startup nomount
Oracle instance started
Total System Global Area 7953271232 bytes
Fixed Size 9157056 bytes
Variable Size 1560281088 bytes
Database Buffers 6106906624 bytes
Redo Buffers 276926464 bytes
4) Standby Control File作成
RMAN> restore standby controlfile from service 'CDB_OSAKA';
Starting restore at 22-SEP-22
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=2360 instance=CDB_TOKYO1 device type=DISK
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: using network backup set from service CDB_OSAKA
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:10
output file name=+DATAC1/CDB_TOKYO/CONTROLFILE/current.272.1115821621
Finished restore at 22-SEP-22
5)MOUNT起動
RMAN> alter database mount;
using target database control file instead of recovery catalog
Statement processed
6)並列度設定
可能分のCPU並列数を設定
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 4;
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters are successfully stored
7) スタンバイ・データベース ファイル・リストア
RMAN> restore database from service 'CDB_OSAKA' section size 64G;
Starting restore at 22-SEP-22
Starting implicit crosscheck backup at 22-SEP-22
allocated channel: ORA_DISK_1
allocated channel: ORA_DISK_2
allocated channel: ORA_DISK_3
allocated channel: ORA_DISK_4
Crosschecked 1 objects
Crosschecked 1 objects
Finished implicit crosscheck backup at 22-SEP-22
Starting implicit crosscheck copy at 22-SEP-22
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
Finished implicit crosscheck copy at 22-SEP-22
searching for all files in the recovery area
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: +RECOC1/CDB_TOKYO/ARCHIVELOG/2022_09_21/thread_1_seq_3.272.1115965625
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: using network backup set from service CDB_OSAKA
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to +DATAC1/CDB_TOKYO/DATAFILE/system.295.1116051887
channel ORA_DISK_1: restoring section 1 of 1
channel ORA_DISK_2: starting datafile backup set restore
channel ORA_DISK_2: using network backup set from service CDB_OSAKA
channel ORA_DISK_2: specifying datafile(s) to restore from backup set
channel ORA_DISK_2: restoring datafile 00002 to +DATAC1/CDB_TOKYO/E928E01AB9D5993DE0532801140ABDF5/DATAFILE/system.296.1116051889
channel ORA_DISK_2: restoring section 1 of 1
channel ORA_DISK_3: starting datafile backup set restore
channel ORA_DISK_3: using network backup set from service CDB_OSAKA
channel ORA_DISK_3: specifying datafile(s) to restore from backup set
channel ORA_DISK_3: restoring datafile 00003 to +DATAC1/CDB_TOKYO/DATAFILE/sysaux.298.1116051889
channel ORA_DISK_3: restoring section 1 of 1
channel ORA_DISK_4: starting datafile backup set restore
channel ORA_DISK_4: using network backup set from service CDB_OSAKA
channel ORA_DISK_4: specifying datafile(s) to restore from backup set
channel ORA_DISK_4: restoring datafile 00004 to +DATAC1/CDB_TOKYO/E928E01AB9D5993DE0532801140ABDF5/DATAFILE/sysaux.267.1116051891
channel ORA_DISK_4: restoring section 1 of 1
channel ORA_DISK_2: restore complete, elapsed time: 00:00:07
channel ORA_DISK_2: starting datafile backup set restore
channel ORA_DISK_2: using network backup set from service CDB_OSAKA
channel ORA_DISK_2: specifying datafile(s) to restore from backup set
channel ORA_DISK_2: restoring datafile 00005 to +DATAC1/CDB_TOKYO/DATAFILE/undotbs1.278.1116051895
channel ORA_DISK_2: restoring section 1 of 1
channel ORA_DISK_2: restore complete, elapsed time: 00:00:04
channel ORA_DISK_2: starting datafile backup set restore
channel ORA_DISK_2: using network backup set from service CDB_OSAKA
channel ORA_DISK_2: specifying datafile(s) to restore from backup set
channel ORA_DISK_2: restoring datafile 00006 to +DATAC1/CDB_TOKYO/E928E01AB9D5993DE0532801140ABDF5/DATAFILE/undotbs1.265.1116051899
channel ORA_DISK_2: restoring section 1 of 1
channel ORA_DISK_4: restore complete, elapsed time: 00:00:09
channel ORA_DISK_4: starting datafile backup set restore
channel ORA_DISK_4: using network backup set from service CDB_OSAKA
channel ORA_DISK_4: specifying datafile(s) to restore from backup set
channel ORA_DISK_4: restoring datafile 00007 to +DATAC1/CDB_TOKYO/DATAFILE/users.261.1116051901
channel ORA_DISK_4: restoring section 1 of 1
channel ORA_DISK_2: restore complete, elapsed time: 00:00:03
channel ORA_DISK_2: starting datafile backup set restore
channel ORA_DISK_2: using network backup set from service CDB_OSAKA
channel ORA_DISK_2: specifying datafile(s) to restore from backup set
channel ORA_DISK_2: restoring datafile 00008 to +DATAC1/CDB_TOKYO/DATAFILE/undotbs2.277.1116051903
channel ORA_DISK_2: restoring section 1 of 1
channel ORA_DISK_4: restore complete, elapsed time: 00:00:04
channel ORA_DISK_4: starting datafile backup set restore
channel ORA_DISK_4: using network backup set from service CDB_OSAKA
channel ORA_DISK_4: specifying datafile(s) to restore from backup set
channel ORA_DISK_4: restoring datafile 00009 to +DATAC1/CDB_TOKYO/E9290415DB2766B2E0532801140AAE9A/DATAFILE/system.299.1116051905
channel ORA_DISK_4: restoring section 1 of 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:18
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: using network backup set from service CDB_OSAKA
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00010 to +DATAC1/CDB_TOKYO/E9290415DB2766B2E0532801140AAE9A/DATAFILE/sysaux.285.1116051905
channel ORA_DISK_1: restoring section 1 of 1
channel ORA_DISK_2: restore complete, elapsed time: 00:00:04
channel ORA_DISK_2: starting datafile backup set restore
channel ORA_DISK_2: using network backup set from service CDB_OSAKA
channel ORA_DISK_2: specifying datafile(s) to restore from backup set
channel ORA_DISK_2: restoring datafile 00011 to +DATAC1/CDB_TOKYO/E9290415DB2766B2E0532801140AAE9A/DATAFILE/undotbs1.270.1116051907
channel ORA_DISK_2: restoring section 1 of 1
channel ORA_DISK_2: restore complete, elapsed time: 00:00:04
channel ORA_DISK_2: starting datafile backup set restore
channel ORA_DISK_2: using network backup set from service CDB_OSAKA
channel ORA_DISK_2: specifying datafile(s) to restore from backup set
channel ORA_DISK_2: restoring datafile 00012 to +DATAC1/CDB_TOKYO/E9290415DB2766B2E0532801140AAE9A/DATAFILE/undo_2.283.1116051911
channel ORA_DISK_2: restoring section 1 of 1
channel ORA_DISK_3: restore complete, elapsed time: 00:00:22
channel ORA_DISK_3: starting datafile backup set restore
channel ORA_DISK_3: using network backup set from service CDB_OSAKA
channel ORA_DISK_3: specifying datafile(s) to restore from backup set
channel ORA_DISK_3: restoring datafile 00013 to +DATAC1/CDB_TOKYO/E9290415DB2766B2E0532801140AAE9A/DATAFILE/users.264.1116051911
channel ORA_DISK_3: restoring section 1 of 1
channel ORA_DISK_2: restore complete, elapsed time: 00:00:02
channel ORA_DISK_4: restore complete, elapsed time: 00:00:08
channel ORA_DISK_1: restore complete, elapsed time: 00:00:10
channel ORA_DISK_3: restore complete, elapsed time: 00:00:05
Finished restore at 22-SEP-22
8) スタンバイ・データベース停止
RMAN> shutdown immediate
database dismounted
Oracle instance shut down
● スタンバイ・データベース再起動
[oracle@exa-tokyo-node1 ~]$ srvctl start database -d CDB_TOKYO -o mount
[oracle@exa-tokyo-node1 ~]$ srvctl status database -d CDB_TOKYO
Instance CDB_TOKYO1 is running on node exa-tokyo-node1
Instance CDB_TOKYO2 is running on node exa-tokyo-zuuyk2
● Standbyの すべてのオンラインおよびスタンバイREDOログを消去
すべてのオンラインおよびスタンバイREDOログを消去します。
1) ログを消去する前にDB_CREATE_ONLINE_LOG_DEST確認
• DB_CREATE_ONLINE_LOG_DEST_1= を必要に応じて修正
• DB_CREATE_ONLINE_LOG_DEST_n is not set other than n=1.
SQL> show parameter DB_CREATE_ONLINE_LOG_DEST
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_online_log_dest_1 string +DATAC1
db_create_online_log_dest_2 string
db_create_online_log_dest_3 string
db_create_online_log_dest_4 string
db_create_online_log_dest_5 string
2) すべてのlogfileを消去
logfileを消去するための clearlogs.sql ファイルを作成
[oracle@exa-tokyo-node1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 22 06:48:58 2022
Version 19.15.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to:
Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
Version 19.15.0.0.0
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
+DATAC1/CDB_TOKYO/ONLINELOG/group_4.290.1116052363
+DATAC1/CDB_TOKYO/ONLINELOG/group_3.289.1116052361
+DATAC1/CDB_TOKYO/ONLINELOG/group_2.274.1116052361
+DATAC1/CDB_TOKYO/ONLINELOG/group_1.279.1116052359
+DATAC1/CDB_TOKYO/ONLINELOG/group_5.300.1116052365
+DATAC1/CDB_TOKYO/ONLINELOG/group_6.292.1116052367
+DATAC1/CDB_TOKYO/ONLINELOG/group_7.301.1116052369
+DATAC1/CDB_TOKYO/ONLINELOG/group_8.297.1116052369
8 rows selected.
SQL> set pagesize 0 feedback off linesize 120 trimspool on
SQL> spool /tmp/clearlogs.sql
SQL> select distinct 'alter database clear logfile group '||group#||';' from v$logfile;
SQL> spool off
SQL> host vi /tmp/clearlogs.sql
<--不要な行を削除
SQL> host cat /tmp/clearlogs.sql
alter database clear logfile group 1;
alter database clear logfile group 2;
alter database clear logfile group 3;
alter database clear logfile group 4;
alter database clear logfile group 5;
alter database clear logfile group 6;
alter database clear logfile group 7;
alter database clear logfile group 8;
SQL> @/tmp/clearlogs.sql
3) Online 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 GROUP#;
THREAD# MEMBERS GROUP# SEQUENCE# MEMBER Bytes(MB) TYPE STATUS ARC
---------- ---------- ---------- ---------- ------------------------------------------------------------ ---------- ------- ---------------- ---
1 1 1 1 +DATAC1/CDB_OSAKA/ONLINELOG/group_1.277.1115956313 4000 ONLINE INACTIVE YES
1 1 2 2 +DATAC1/CDB_OSAKA/ONLINELOG/group_2.273.1115956313 4000 ONLINE INACTIVE YES
1 1 3 3 +DATAC1/CDB_OSAKA/ONLINELOG/group_3.274.1115956313 4000 ONLINE INACTIVE YES
1 1 4 4 +DATAC1/CDB_OSAKA/ONLINELOG/group_4.271.1115956313 4000 ONLINE CURRENT NO
2 1 5 1 +DATAC1/CDB_OSAKA/ONLINELOG/group_5.283.1115956841 4000 ONLINE INACTIVE YES
2 1 6 2 +DATAC1/CDB_OSAKA/ONLINELOG/group_6.264.1115956843 4000 ONLINE INACTIVE YES
2 1 7 3 +DATAC1/CDB_OSAKA/ONLINELOG/group_7.279.1115956845 4000 ONLINE CURRENT NO
2 1 8 0 +DATAC1/CDB_OSAKA/ONLINELOG/group_8.281.1115956847 4000 ONLINE UNUSED YES
8 rows selected.
■ Standby Redo 作成
Standby Redo 作成する時、以下のように数とサイズを設定
a) the size of SRLs must be the same as the size of ORLs (Online Redo Logs)
b) (number of SRLs ) = (number of ORLs + 1) for each primary thread.
● スタンバイ・データベース に Standby Redo 作成
1) Standby Redo 作成
-- thread 1
alter database add standby logfile thread 1 group 111 '+DATAC1/CDB_TOKYO/ONLINELOG/standby_group_111' SIZE 4000M;
alter database add standby logfile thread 1 group 112 '+DATAC1/CDB_TOKYO/ONLINELOG/standby_group_112' SIZE 4000M;
alter database add standby logfile thread 1 group 113 '+DATAC1/CDB_TOKYO/ONLINELOG/standby_group_113' SIZE 4000M;
alter database add standby logfile thread 1 group 114 '+DATAC1/CDB_TOKYO/ONLINELOG/standby_group_114' SIZE 4000M;
alter database add standby logfile thread 1 group 115 '+DATAC1/CDB_TOKYO/ONLINELOG/standby_group_115' SIZE 4000M;
-- thread 2
alter database add standby logfile thread 2 group 121 '+DATAC1/CDB_TOKYO/ONLINELOG/standby_group_121' SIZE 4000M;
alter database add standby logfile thread 2 group 122 '+DATAC1/CDB_TOKYO/ONLINELOG/standby_group_122' SIZE 4000M;
alter database add standby logfile thread 2 group 123 '+DATAC1/CDB_TOKYO/ONLINELOG/standby_group_123' SIZE 4000M;
alter database add standby logfile thread 2 group 124 '+DATAC1/CDB_TOKYO/ONLINELOG/standby_group_124' SIZE 4000M;
alter database add standby logfile thread 2 group 125 '+DATAC1/CDB_TOKYO/ONLINELOG/standby_group_125' SIZE 4000M;
2) Stadby Redo 作成確認
SQL> col MEMBER format a60
SQL> SELECT
b.THREAD#
,a.GROUP#
,a.MEMBER
,b.bytes/1024/1024 as "Bytes(MB)"
,a.TYPE
,b.STATUS
FROM
v$logfile a
,V$STANDBY_LOG b
WHERE
a.GROUP#=b.GROUP#
union
SELECT
b.THREAD#
,a.GROUP#
,a.MEMBER
,b.bytes/1024/1024 as "Bytes(MB)"
,a.TYPE
,b.STATUS
FROM
v$logfile a
,v$log b
WHERE
a.GROUP#=b.GROUP#
ORDER BY GROUP#;
THREAD# GROUP# MEMBER Bytes(MB) TYPE STATUS
---------- ---------- ------------------------------------------------------------ ---------- ------- ----------------
1 1 +DATAC1/CDB_TOKYO/ONLINELOG/group_1.279.1116052359 4000 ONLINE UNUSED
1 2 +DATAC1/CDB_TOKYO/ONLINELOG/group_2.274.1116052361 4000 ONLINE UNUSED
1 3 +DATAC1/CDB_TOKYO/ONLINELOG/group_3.289.1116052361 4000 ONLINE UNUSED
1 4 +DATAC1/CDB_TOKYO/ONLINELOG/group_4.290.1116052363 4000 ONLINE UNUSED
2 5 +DATAC1/CDB_TOKYO/ONLINELOG/group_5.300.1116052365 4000 ONLINE UNUSED
2 6 +DATAC1/CDB_TOKYO/ONLINELOG/group_6.292.1116052367 4000 ONLINE UNUSED
2 7 +DATAC1/CDB_TOKYO/ONLINELOG/group_7.301.1116052369 4000 ONLINE UNUSED
2 8 +DATAC1/CDB_TOKYO/ONLINELOG/group_8.297.1116052369 4000 ONLINE UNUSED
1 111 +DATAC1/CDB_TOKYO/ONLINELOG/standby_group_111 4000 STANDBY UNASSIGNED
1 112 +DATAC1/CDB_TOKYO/ONLINELOG/standby_group_112 4000 STANDBY ACTIVE
1 113 +DATAC1/CDB_TOKYO/ONLINELOG/standby_group_113 4000 STANDBY UNASSIGNED
1 114 +DATAC1/CDB_TOKYO/ONLINELOG/standby_group_114 4000 STANDBY UNASSIGNED
1 115 +DATAC1/CDB_TOKYO/ONLINELOG/standby_group_115 4000 STANDBY UNASSIGNED
2 121 +DATAC1/CDB_TOKYO/ONLINELOG/standby_group_121 4000 STANDBY UNASSIGNED
2 122 +DATAC1/CDB_TOKYO/ONLINELOG/standby_group_122 4000 STANDBY ACTIVE
2 123 +DATAC1/CDB_TOKYO/ONLINELOG/standby_group_123 4000 STANDBY UNASSIGNED
2 124 +DATAC1/CDB_TOKYO/ONLINELOG/standby_group_124 4000 STANDBY UNASSIGNED
2 125 +DATAC1/CDB_TOKYO/ONLINELOG/standby_group_125 4000 STANDBY UNASSIGNED
18 rows selected.
● プライマリ・データベース に Stadby Redo 作成
1) Stadby Redo 作成
-- thread 1
alter database add standby logfile thread 1 group 111 '+DATAC1/CDB_OSAKA/ONLINELOG/standby_group_111' SIZE 4000M;
alter database add standby logfile thread 1 group 112 '+DATAC1/CDB_OSAKA/ONLINELOG/standby_group_112' SIZE 4000M;
alter database add standby logfile thread 1 group 113 '+DATAC1/CDB_OSAKA/ONLINELOG/standby_group_113' SIZE 4000M;
alter database add standby logfile thread 1 group 114 '+DATAC1/CDB_OSAKA/ONLINELOG/standby_group_114' SIZE 4000M;
alter database add standby logfile thread 1 group 115 '+DATAC1/CDB_OSAKA/ONLINELOG/standby_group_115' SIZE 4000M;
-- thread 2
alter database add standby logfile thread 2 group 121 '+DATAC1/CDB_OSAKA/ONLINELOG/standby_group_121' SIZE 4000M;
alter database add standby logfile thread 2 group 122 '+DATAC1/CDB_OSAKA/ONLINELOG/standby_group_122' SIZE 4000M;
alter database add standby logfile thread 2 group 123 '+DATAC1/CDB_OSAKA/ONLINELOG/standby_group_123' SIZE 4000M;
alter database add standby logfile thread 2 group 124 '+DATAC1/CDB_OSAKA/ONLINELOG/standby_group_124' SIZE 4000M;
alter database add standby logfile thread 2 group 125 '+DATAC1/CDB_OSAKA/ONLINELOG/standby_group_125' SIZE 4000M;
2) Stadby Redo 作成確認
SQL> col MEMBER format a60
SQL> SELECT
b.THREAD#
,a.GROUP#
,a.MEMBER
,b.bytes/1024/1024 as "Bytes(MB)"
,a.TYPE
,b.STATUS
FROM
v$logfile a
,V$STANDBY_LOG b
WHERE
a.GROUP#=b.GROUP#
union
SELECT
b.THREAD#
,a.GROUP#
,a.MEMBER
,b.bytes/1024/1024 as "Bytes(MB)"
,a.TYPE
,b.STATUS
FROM
v$logfile a
,v$log b
WHERE
a.GROUP#=b.GROUP#
ORDER BY GROUP#;
THREAD# GROUP# MEMBER Bytes(MB) TYPE STATUS
---------- ---------- ------------------------------------------------------------ ---------- ------- ----------------
1 1 +DATAC1/CDB_OSAKA/ONLINELOG/group_1.277.1115956313 4000 ONLINE INACTIVE
1 2 +DATAC1/CDB_OSAKA/ONLINELOG/group_2.273.1115956313 4000 ONLINE INACTIVE
1 3 +DATAC1/CDB_OSAKA/ONLINELOG/group_3.274.1115956313 4000 ONLINE CURRENT
1 4 +DATAC1/CDB_OSAKA/ONLINELOG/group_4.271.1115956313 4000 ONLINE INACTIVE
2 5 +DATAC1/CDB_OSAKA/ONLINELOG/group_5.283.1115956841 4000 ONLINE CURRENT
2 6 +DATAC1/CDB_OSAKA/ONLINELOG/group_6.264.1115956843 4000 ONLINE INACTIVE
2 7 +DATAC1/CDB_OSAKA/ONLINELOG/group_7.279.1115956845 4000 ONLINE INACTIVE
2 8 +DATAC1/CDB_OSAKA/ONLINELOG/group_8.281.1115956847 4000 ONLINE INACTIVE
1 111 +DATAC1/CDB_OSAKA/ONLINELOG/standby_group_111 4000 STANDBY UNASSIGNED
1 112 +DATAC1/CDB_OSAKA/ONLINELOG/standby_group_112 4000 STANDBY UNASSIGNED
1 113 +DATAC1/CDB_OSAKA/ONLINELOG/standby_group_113 4000 STANDBY UNASSIGNED
1 114 +DATAC1/CDB_OSAKA/ONLINELOG/standby_group_114 4000 STANDBY UNASSIGNED
1 115 +DATAC1/CDB_OSAKA/ONLINELOG/standby_group_115 4000 STANDBY UNASSIGNED
2 121 +DATAC1/CDB_OSAKA/ONLINELOG/standby_group_121 4000 STANDBY UNASSIGNED
2 122 +DATAC1/CDB_OSAKA/ONLINELOG/standby_group_122 4000 STANDBY UNASSIGNED
2 123 +DATAC1/CDB_OSAKA/ONLINELOG/standby_group_123 4000 STANDBY UNASSIGNED
2 124 +DATAC1/CDB_OSAKA/ONLINELOG/standby_group_124 4000 STANDBY UNASSIGNED
2 125 +DATAC1/CDB_OSAKA/ONLINELOG/standby_group_125 4000 STANDBY UNASSIGNED
18 rows selected.
■ 手順8:Data Guard Broker を構成
● dg_broker_config_fileパラメータ有効
プライマリ・データベースとスタンバイ・データベースで、dg_broker_config_file パラメータを有効にします。
SQL> create pfile='/tmp/initCDB_OSAKA.ora_nonDG' from spfile;
File created.
SQL> alter system set dg_broker_config_file1='+DATAC1/CDB_OSAKA/dr1.dat';
System altered.
SQL> alter system set dg_broker_config_file2='+RECOC1/CDB_OSAKA/dr2.dat';
System altered.
SQL> create pfile='/tmp/initCDB_TOKYO.ora_nonDG' from spfile;
File created.
SQL> alter system set dg_broker_config_file1='+DATAC1/CDB_TOKYO/dr1.dat';
System altered.
SQL> alter system set dg_broker_config_file2='+RECOC1/CDB_TOKYO/dr2.dat';
System altered.
● Data Guard Brokerプロセス開始
プライマリ・データベースとスタンバイ・データベースで Data Guard Broker プロセスを開始します。
SQL> alter system set dg_broker_start=true;
System altered.
SQL> show parameter dg_broker_start
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
dg_broker_start boolean TRUE
SQL> select INST_ID,pname from gv$process where pname like 'DMON%';
INST_ID PNAME
---------- -----
2 DMON
1 DMON
[grid@exa-tokyo-zuuyk2 ~]$ asmcmd ls +DATAC1/CDB_TOKYO/dr1.dat
dr1.dat
[grid@exa-tokyo-zuuyk2 ~]$ asmcmd ls +RECOC1/CDB_TOKYO/dr2.dat
dr2.dat
SQL> alter system set dg_broker_start=true;
System altered.
SQL> show parameter dg_broker_start
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
dg_broker_start boolean TRUE
SQL> select INST_ID,pname from gv$process where pname like 'DMON%';
INST_ID PNAME
---------- -----
1 DMON
2 DMON
[grid@exa-osaka-node1 ~]$ asmcmd ls +DATAC1/CDB_OSAKA/dr1.dat
dr1.dat
[grid@exa-osaka-node1 ~]$ asmcmd ls +RECOC1/CDB_OSAKA/dr2.dat
dr2.dat
● Data Guard Brokerへデータベースを登録
プライマリ・サイトで Data Guard command-line interface (DGMGRL) を使用してデータベースを登録します。
$ dgmgrl sys/<sys password>@<net service name for primary database>
DGMGRL> CREATE CONFIGURATION <configuration_name> AS PRIMARY DATABASE IS <プライマリ・データベース_unique_name> CONNECT IDENTIFIER IS <Net Service name for primary database>;
DGMGRL> ADD DATABASE <standby db_unique_name> AS CONNECT IDENTIFIER IS <Net Service name for standby database> MAINTAINED AS PHYSICAL;
DGMGRL> enable configuration;
[oracle@exa-osaka-node1 ~]$ dgmgrl sys/<Password>@CDB_OSAKA
DGMGRL for Linux: Release 19.0.0.0.0 - Production on Thu Sep 22 11:20:50 2022
Version 19.15.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected to "CDB_OSAKA"
Connected as SYSDBA.
DGMGRL> CREATE CONFIGURATION DG_CONFIG AS PRIMARY DATABASE IS "CDB_OSAKA" CONNECT IDENTIFIER IS CDB_OSAKA;
Configuration "dg_config" created with primary database "CDB_OSAKA"
DGMGRL> ADD DATABASE "CDB_TOKYO" AS CONNECT IDENTIFIER IS CDB_TOKYO MAINTAINED AS PHYSICAL;
Database "CDB_TOKYO" added
DGMGRL> enable configuration;
Enabled.
● スタンバイ・データベース で フラッシュバック・データベースを有効化
1) Data Guard command-line interface (DGMGRL)接続
[oracle@exa-tokyo-node1 ~]$ dgmgrl sys/<Password>@CDB_TOKYO
DGMGRL for Linux: Release 19.0.0.0.0 - Production on Thu Sep 22 11:30:32 2022
Version 19.15.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected to "CDB_TOKYO"
Connected as SYSDBA.
2) Redo Apply 停止
DGMGRL> edit database CDB_TOKYO set state=apply-off;
Succeeded.
3) Flashback Database有効
SQL*PLUS接続して Flashback Databaseを有効にします。
SQL> sqlplus / as sysdbaexit
SQL> alter database flashback on;
Database altered.
4)Redo Apply 停止
DGMGRL> edit database CDB_TOKYO set state=apply-on;
Succeeded.
■ 手順9:(11gのみ)静的リスナーを削除
19cのため無し
■ 手順10:RMANパラメータを設定
元のRMAN構成を、前に作成した/tmp/rman_setting.log の内容で置き換えます。
これにより、もっとも重要な点として、バックアッ プ構成が、スナップショットcontrolfileの場所に加えて、暗号化、圧縮、保存で置換されます。
これらの値は、スタンバイの controlfileがプライマリ・データベースからコピーされたときに失われています。
[oracle@exa-osaka-node1 ~]$ cat /tmp/rman_setting.log
Recovery Manager: Release 19.0.0.0.0 - Production on Sun Sep 18 15:34:44 2022
Version 19.15.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: CDB (DBID=2232167610)
RMAN>
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name CDB_OSAKA are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF;
CONFIGURE ENCRYPTION ALGORITHM 'AES256';
CONFIGURE COMPRESSION ALGORITHM 'LOW' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DATAC1/CDB_OSAKA/controlfile/snapcf_CDB.f';
[oracle@exa-osaka-node1 ~]$ rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on Mon Sep 19 05:31:33 2022
Version 19.15.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: CDB (DBID=2232114498, not open)
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name CDB_OSAKA are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF;
CONFIGURE ENCRYPTION ALGORITHM 'AES256';
CONFIGURE COMPRESSION ALGORITHM 'LOW' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u02/app/oracle/product/19.0.0.0/dbhome_1/dbs/snapcf_CDB_OSAKA1.f'; # default
■ SPFILE確認
Data Guard 構成された SPFILE を確認
SQL> create pfile='/tmp/initCDB_OSAKA_DG_AFTER.ora' from spfile;
SQL> host cat /tmp/initCDB_OSAKA_DG_AFTER.ora
SQL> create pfile='/tmp/initCDB_TOKYO_DG_AFTER.ora' from spfile;
SQL> host cat /tmp/initCDB_TOKYO_DG_AFTER.ora
■ 構成確認
● 現在の保護モード確認
DGMGRL> show configuration verbose
Configuration - dg_config
Protection Mode: MaxPerformance
Members:
CDB_OSAKA - Primary database
CDB_TOKYO - Physical standby database
Properties:
FastStartFailoverThreshold = '30'
OperationTimeout = '30'
TraceLevel = 'USER'
FastStartFailoverLagLimit = '30'
CommunicationTimeout = '180'
ObserverReconnect = '0'
FastStartFailoverAutoReinstate = 'TRUE'
FastStartFailoverPmyShutdown = 'TRUE'
BystandersFollowRoleChange = 'ALL'
ObserverOverride = 'FALSE'
ExternalDestination1 = ''
ExternalDestination2 = ''
PrimaryLostWriteAction = 'CONTINUE'
ConfigurationWideServiceName = 'CDB_CFG'
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS
DGMGRL> show configuration
Configuration - dg_config
Protection Mode: MaxPerformance
Members:
CDB_OSAKA - Primary database
CDB_TOKYO - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 11 seconds ago)
● DB確認
DGMGRL> show database CDB_TOKYO
Database - CDB_TOKYO
Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds (computed 1 second ago)
Apply Lag: 0 seconds (computed 1 second ago)
Average Apply Rate: 5.00 KByte/s
Real Time Query: ON
Instance(s):
CDB_TOKYO1 (apply instance)
CDB_TOKYO2
Database Status:
SUCCESS
DGMGRL> show database verbose CDB_TOKYO
Database - CDB_TOKYO
Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds (computed 1 second ago)
Apply Lag: 0 seconds (computed 1 second ago)
Average Apply Rate: 5.00 KByte/s
Active Apply Rate: 1.07 MByte/s
Maximum Apply Rate: 1.82 MByte/s
Real Time Query: ON
Instance(s):
CDB_TOKYO1 (apply instance)
CDB_TOKYO2
Properties:
DGConnectIdentifier = 'cdb_tokyo'
ObserverConnectIdentifier = ''
FastStartFailoverTarget = ''
PreferredObserverHosts = ''
LogShipping = 'ON'
RedoRoutes = ''
LogXptMode = 'ASYNC'
DelayMins = '0'
Binding = 'optional'
MaxFailure = '0'
ReopenSecs = '300'
NetTimeout = '30'
RedoCompression = 'DISABLE'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyLagThreshold = '30'
TransportLagThreshold = '30'
TransportDisconnectedThreshold = '30'
ApplyParallel = 'AUTO'
ApplyInstances = '0'
StandbyFileManagement = ''
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '0'
LogArchiveMinSucceedDest = '0'
DataGuardSyncLatency = '0'
LogArchiveTrace = '0'
LogArchiveFormat = ''
DbFileNameConvert = ''
LogFileNameConvert = ''
ArchiveLocation = ''
AlternateLocation = ''
StandbyArchiveLocation = ''
StandbyAlternateLocation = ''
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
LogXptStatus = '(monitor)'
SendQEntries = '(monitor)'
RecvQEntries = '(monitor)'
HostName(*)
StaticConnectIdentifier(*)
TopWaitEvents(*)
SidName(*)
(*) - Please check specific instance for the property value
Log file locations(*):
(*) - Check specific instance for log file locations.
Database Status:
SUCCESS
DGMGRL> show database CDB_OSAKA
Database - CDB_OSAKA
Role: PRIMARY
Intended State: TRANSPORT-ON
Instance(s):
CDB_OSAKA1
CDB_OSAKA2
Database Status:
SUCCESS
DGMGRL> show database verbose CDB_OSAKA
Database - CDB_OSAKA
Role: PRIMARY
Intended State: TRANSPORT-ON
Instance(s):
CDB_OSAKA1
CDB_OSAKA2
Properties:
DGConnectIdentifier = 'cdb_osaka'
ObserverConnectIdentifier = ''
FastStartFailoverTarget = ''
PreferredObserverHosts = ''
LogShipping = 'ON'
RedoRoutes = ''
LogXptMode = 'ASYNC'
DelayMins = '0'
Binding = 'optional'
MaxFailure = '0'
ReopenSecs = '300'
NetTimeout = '30'
RedoCompression = 'DISABLE'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyLagThreshold = '30'
TransportLagThreshold = '30'
TransportDisconnectedThreshold = '30'
ApplyParallel = 'AUTO'
ApplyInstances = '0'
StandbyFileManagement = ''
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '0'
LogArchiveMinSucceedDest = '0'
DataGuardSyncLatency = '0'
LogArchiveTrace = '0'
LogArchiveFormat = ''
DbFileNameConvert = ''
LogFileNameConvert = ''
ArchiveLocation = ''
AlternateLocation = ''
StandbyArchiveLocation = ''
StandbyAlternateLocation = ''
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
LogXptStatus = '(monitor)'
SendQEntries = '(monitor)'
RecvQEntries = '(monitor)'
HostName(*)
StaticConnectIdentifier(*)
TopWaitEvents(*)
SidName(*)
(*) - Please check specific instance for the property value
Log file locations(*):
(*) - Check specific instance for log file locations.
Database Status:
SUCCESS
■ フィジカル・スタンバイ・データベースへの REDO転送/適用確認
スタンバイ・データベースで、V$DATAGUARD_PROCESSビューを問い合せて、REDOがプライマリ・データベースから送信され、スタンバイ・データベースに適用されていることを確認します。
1) スタンバイへ適用されているarchive redo SEQUENCE#を確認
SYS@CDB_OSAKA SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
ROLE THREAD# SEQUENCE# ACTION
------------------------ ---------- ---------- ------------
log writer 0 0 IDLE
redo transport monitor 0 0 IDLE
broker instance slave 0 0 IDLE
broker monitor 0 0 IDLE
gap manager 1 95 IDLE
redo transport timer 0 0 IDLE
archive redo 0 0 IDLE
archive redo 0 0 IDLE
archive local 0 0 IDLE
archive redo 0 0 IDLE
broker net slave 0 0 IDLE
broker net slave 0 0 IDLE
broker worker 0 0 IDLE
async ORL multi 1 95 WRITING
heartbeat redo informer 0 0 IDLE
broker net slave 0 0 IDLE
async ORL single 1 95 WRITING
async ORL single 1 95 WRITING
controlfile update 0 0 IDLE
19 rows selected.
2) Log Switch 実行
SYS@CDB_OSAKA SQL> alter system archive log current;
System altered.
SYS@CDB_OSAKA SQL> /
System altered.
SYS@CDB_OSAKA SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# FIRST_TIM NEXT_TIME APPLIED
---------- --------- --------- ---------
1 08-OCT-22 08-OCT-22 YES
1 08-OCT-22 08-OCT-22 YES
1 08-OCT-22 08-OCT-22 YES
・・・
94 01-DEC-22 01-DEC-22 YES
95 01-DEC-22 01-DEC-22 NO
95 01-DEC-22 01-DEC-22 YES
95 01-DEC-22 01-DEC-22 YES
95 01-DEC-22 01-DEC-22 YES
96 01-DEC-22 01-DEC-22 NO
96 01-DEC-22 01-DEC-22 NO
96 01-DEC-22 01-DEC-22 NO
96 01-DEC-22 01-DEC-22 NO
495 rows selected.
3) V$DATAGUARD_PROCESSで REDO SEQUENCE# 確認
スタンバイへ適用されているarchive redo SEQUENCE#を確認
SYS@CDB_TOKYO SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
ROLE THREAD# SEQUENCE# ACTION
------------------------ ---------- ---------- ------------
log writer 0 0 IDLE
redo transport monitor 0 0 IDLE
broker instance slave 0 0 IDLE
broker monitor 0 0 IDLE
gap manager 1 97 IDLE
redo transport timer 0 0 IDLE
archive redo 0 0 IDLE
archive redo 0 0 IDLE
archive local 0 0 IDLE
archive redo 0 0 IDLE
broker net slave 0 0 IDLE
broker net slave 0 0 IDLE
broker worker 0 0 IDLE
async ORL multi 1 97 WRITING
heartbeat redo informer 0 0 IDLE
broker net slave 0 0 IDLE
async ORL single 1 97 WRITING
async ORL single 1 97 WRITING
controlfile update 0 0 IDLE
archive redo 1 95 CONNECTED
20 rows selected.
4) V$ARCHIVED_LOGで REDO SEQUENCE# 確認
スタンバイへ適用されている ARCHIVE REDO SEQUENCE# を V$ARCHIVED_LOGで確認
APPLIED列が IN-MEMORYの場合、時間経過するとデータファイルへ書き込み完了して YESへ変化します
SYS@CDB_TOKYO SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# FIRST_TIM NEXT_TIME APPLIED
---------- --------- --------- ---------
1 08-OCT-22 08-OCT-22 YES
1 08-OCT-22 08-OCT-22 YES
1 14-OCT-22 14-OCT-22 YES
・・・
93 01-DEC-22 01-DEC-22 YES
94 01-DEC-22 01-DEC-22 YES
95 01-DEC-22 01-DEC-22 IN-MEMORY
96 01-DEC-22 01-DEC-22 IN-MEMORY
372 rows selected.
5) Alert Log確認
Log Switch 実行時の Alert Log確認
[oracle@db-osaka1 ~]$ tail -f $ORACLE_BASE/diag/rdbms/${ORACLE_UNQNAME,,}/$ORACLE_SID/trace/alert_$ORACLE_SID.log
ALTER SYSTEM ARCHIVE LOG
2022-12-01T09:20:44.501405+00:00
Thread 1 advanced to log sequence 96 (LGWR switch), current SCN: 29687567
Current log# 11 seq# 96 mem# 0: +RECO/CDB_TOKYO/ONLINELOG/group_11.300.1117516527
2022-12-01T09:20:44.568404+00:00
NET (PID:63070): Archived Log entry 534 added for T-1.S-95 ID 0x85477880 LAD:1
2022-12-01T09:20:49.987456+00:00
ALTER SYSTEM ARCHIVE LOG
2022-12-01T09:20:51.933879+00:00
Thread 1 advanced to log sequence 97 (LGWR switch), current SCN: 29687623
Current log# 1 seq# 97 mem# 0: +RECO/CDB_TOKYO/ONLINELOG/group_1.258.1117284581
2022-12-01T09:20:51.966838+00:00
ARC1 (PID:19474): Archived Log entry 542 added for T-1.S-96 ID 0x85477880 LAD:1
[oracle@db-tokyo1 ~]$ tail -f $ORACLE_BASE/diag/rdbms/${ORACLE_UNQNAME,,}/$ORACLE_SID/trace/alert_$ORACLE_SID.log
2022-12-01T09:20:52.098877+00:00
rfs (PID:68215): Selected LNO:111 for T-1.S-97 dbid 2233888099 branch 1118038704
2022-12-01T09:20:52.108674+00:00
ARC2 (PID:68108): Archived Log entry 379 added for T-1.S-96 ID 0x85477880 LAD:1
2022-12-01T09:20:53.117561+00:00
rfs (PID:68217): Selected LNO:121 for T-2.S-92 dbid 2233888099 branch 1118038704
2022-12-01T09:20:53.124219+00:00
ARC0 (PID:68098): Archived Log entry 380 added for T-2.S-91 ID 0x85477880 LAD:1
2022-12-01T09:20:53.163477+00:00
PR00 (PID:69052): Media Recovery Waiting for T-1.S-97 (in transit)
2022-12-01T09:20:53.169139+00:00
Recovery of Online Redo Log: Thread 1 Group 111 Seq 97 Reading mem 0
Mem# 0: +RECO/CDB_OSAKA/ONLINELOG/standby_group_111
6) GV$MANAGED_STANDBY確認
REDOがプライマリ・データベースから送信され、スタンバイ・データベースに適用されていることを確認
SYS@CDB_TOKYO SQL> SELECT CLIENT_PROCESS, PROCESS, THREAD#, SEQUENCE#, STATUS FROM GV$MANAGED_STANDBY WHERE CLIENT_PROCESS='LGWR' OR PROCESS='MRP0' order by THREAD#;
CLIENT_P PROCESS THREAD# SEQUENCE# STATUS
-------- --------- ---------- ---------- ------------
LGWR RFS 1 97 RECEIVING
N/A MRP0 2 92 APPLYING_LOG
LGWR RFS 2 92 RECEIVING
■ Active Datagurd 設定
スタンバイDB は OPEN して、SELECT文を実行できるRead Replicaとして利用できます。
● Active Datagurd 設定
スタンバイ・データベース を Read (Real Time Query)できるように設定
1) Real Time Query 設定前確認
Real Time QueryがOFFであることを確認
DGMGRL> show database CDB_TOKYO
Database - CDB_TOKYO
Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds (computed 0 seconds ago)
Apply Lag: 0 seconds (computed 0 seconds ago)
Average Apply Rate: 1.19 MByte/s
Real Time Query: OFF
Instance(s):
CDB_TOKYO1 (apply instance)
CDB_TOKYO2
Database Status:
SUCCESS
2) Redo Apply停止
DGMGRL> edit database CDB_TOKYO set state=apply-off;
Succeeded.
3) Real Time Query ON
Standby Database を Open
SQL> alter database open;
4) Redo Apply起動
DGMGRL> edit database CDB_TOKYO set state=apply-on;
5) 設定確認
DGMGRL> show database CDB_TOKYO
Database - CDB_TOKYO
Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds (computed 1 second ago)
Apply Lag: 0 seconds (computed 1 second ago)
Average Apply Rate: 812.00 KByte/s
Real Time Query: ON
Instance(s):
CDB_TOKYO1 (apply instance)
CDB_TOKYO2
Database Status:
SUCCESS
● リアル・タイム・アプライ確認
スタンバイDBは OPENして、SELECT文を実行できるRead Replicaとして利用できます。
プライマリDBで作成されたテーブルがスタンバイDBへ伝搬されSELECTできることを確認します
1) プライマリDBでテーブル作成
SYS@CDB_TOKYO1 SQL> CREATE TABLE test_table1 (id number(3), name varchar2(10)) TABLESPACE USERS;
Table created.
SYS@CDB_OSAKA SQL> INSERT INTO test_table1 VALUES (1,'AAA');
SYS@CDB_OSAKA SQL> INSERT INTO test_table1 VALUES (1,'BBB');
SYS@CDB_OSAKA SQL> commit;
Commit complete.
SYS@CDB_OSAKA SQL> select * from test_table1;
ID NAME
---------- ----------
1 AAA
2 BBB
2) スタンバイDBでプライマリDBのトランザクション伝搬確認
スタンバイDBをOPENして、プライマリDB側で作成したテーブルtest_table1が伝搬されてSELECTできることを確認
SYS@CDB_TOKYO SQL> select * from test_table1;
ID NAME
---------- ----------
1 AAA
2 BBB
■ Switchover
スイッチオーバーを実行するには、Data Guard Brokerで以下のコマンドを実行します。
DGMGRL> validate database stby;
Database Role:Physical standby database Primary Database: pri
Ready for Switchover:Yes
Ready for Failover:Yes (Primary Running) DGMGRL> switchover to <target standby>;
DGMGRL> switchover to <target standby>;
● Switchover実行(Primary:Osaka -> Tokyo)
1) Data Guardコマンドライン・インタフェース接続
[oracle@exa-osaka-node1 ~]$ dgmgrl sys/<Password>@CDB_OSAKA
DGMGRL for Linux: Release 19.0.0.0.0 - Production on Fri Sep 23 09:32:34 2022
Version 19.15.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected to "CDB_OSAKA"
Connected as SYSDBA.
2) データベース・チェック
ロール変更に先立って包括的なデータベース・チェックを実行
DGMGRL> validate database CDB_OSAKA;
Database Role: Primary database
Ready for Switchover: Yes
Managed by Clusterware:
CDB_OSAKA: YES
DGMGRL> validate database CDB_TOKYO
Database Role: Physical standby database
Primary Database: CDB_OSAKA
Ready for Switchover: Yes
Ready for Failover: Yes (Primary Running)
Managed by Clusterware:
CDB_OSAKA: YES
CDB_TOKYO: YES
3) Switchover 実行
DGMGRL> switchover to CDB_TOKYO;
Performing switchover NOW, please wait...
Operation requires a connection to database "CDB_TOKYO"
Connecting ...
Connected to "CDB_TOKYO"
Connected as SYSDBA.
New primary database "CDB_TOKYO" is opening...
Oracle Clusterware is restarting database "CDB_OSAKA" ...
Connected to "CDB_OSAKA"
Connected to "CDB_OSAKA"
Switchover succeeded, new primary is "cdb_tokyo"
4) Switchover 確認
DGMGRL> show database CDB_OSAKA
Database - CDB_OSAKA
Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds (computed 1 second ago)
Apply Lag: 0 seconds (computed 1 second ago)
Average Apply Rate: 6.00 KByte/s
Real Time Query: ON
Instance(s):
CDB_OSAKA1 (apply instance)
CDB_OSAKA2
Database Status:
SUCCESS
DGMGRL> show database CDB_TOKYO
Database - CDB_TOKYO
Role: PRIMARY
Intended State: TRANSPORT-ON
Instance(s):
CDB_TOKYO1
CDB_TOKYO2
Database Status:
SUCCESS
■ Failover と Reinstate
● Failover
DGMGRL> failover to <Standby>;
1) 事前確認
DGMGRL> show configuration
Configuration - dg_config
Protection Mode: MaxPerformance
Members:
CDB_TOKYO - Primary database
CDB_OSAKA - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 59 seconds ago)
2) Failover
Standbyで実行
DGMGRL> failover to CDB_OSAKA
Performing failover NOW, please wait...
Failover succeeded, new primary is "cdb_osaka"
DGMGRL> show configuration
Configuration - dg_config
Protection Mode: MaxPerformance
Members:
CDB_OSAKA - Primary database
CDB_TOKYO - Physical standby database (disabled)
ORA-16661: the standby database needs to be reinstated
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 0 seconds ago)
● Reinstate
・旧Primaryで実行
SQL> shutdown abort
SQL> startup mount
・新Primaryで実行
DGMGRL> reinstate database <Primary>
1) 旧Primaryで実行
DGMGRL> show configuration
Configuration - dg_config
Protection Mode: MaxPerformance
Members:
CDB_OSAKA - Primary database
CDB_TOKYO - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
DISABLED
DGM-17290: Role change detected. This database may no longer be the primary database.
SQL> shutdown abort
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 7953271232 bytes
Fixed Size 9157056 bytes
Variable Size 1644167168 bytes
Database Buffers 6023020544 bytes
Redo Buffers 276926464 bytes
Database mounted.
2) 新Primaryで実行
DGMGRL> reinstate database CDB_TOKYO
Reinstating database "cdb_tokyo", please wait...
Reinstatement of database "cdb_tokyo" succeeded
DGMGRL> show configuration
Configuration - dg_config
Protection Mode: MaxPerformance
Members:
CDB_OSAKA - Primary database
CDB_TOKYO - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 34 seconds ago)
■ スタンバイ・データベースからスナップショット・スタンバイへの変換
● スナップショット・スタンバイへの変換
1) スナップショット・スタンバイへ変換
DGMGRL> convert database 'CDB_OSAKA' to snapshot standby;
Converting database "CDB_OSAKA" to a Snapshot Standby database, please wait...
Database "CDB_OSAKA" converted successfully
2) 確認
DGMGRL> SHOW CONFIGURATION;
Configuration - dg_config
Protection Mode: MaxPerformance
Members:
CDB_TOKYO - Primary database
CDB_OSAKA - Snapshot standby database
Warning: ORA-16855: transport lag has exceeded specified threshold
Fast-Start Failover: Disabled
Configuration Status:
WARNING (status updated 37 seconds ago)
DGMGRL> show database CDB_OSAKA
Database - CDB_OSAKA
Role: SNAPSHOT STANDBY
Transport Lag: 3 minutes 5 seconds (computed 1 second ago)
Apply Lag: 3 minutes 8 seconds (computed 1 second ago)
Instance(s):
CDB_OSAKA1
CDB_OSAKA2
Database Warning(s):
ORA-16855: transport lag has exceeded specified threshold
Database Status:
WARNING
DGMGRL> show database CDB_TOKYO
Database - CDB_TOKYO
Role: PRIMARY
Intended State: TRANSPORT-ON
Instance(s):
CDB_TOKYO1
CDB_TOKYO2
Database Status:
SUCCESS
● スナップショット・スタンバイから元のフィジカル・スタンバイ・データベースに変換
Data Guard Brokerを介して、次のコマンドを発行します
DGMGRL> CONVERT DATABASE 'stby' to PHYSICAL STANDBY;
1) フィジカル・スタンバイ・データベースへ変換
DGMGRL> CONVERT DATABASE 'CDB_OSAKA' to PHYSICAL STANDBY;
Converting database "CDB_OSAKA" to a Physical Standby database, please wait...
Operation requires a connection to database "CDB_TOKYO"
Connecting ...
Connected to "CDB_TOKYO"
Connected as SYSDBA.
Oracle Clusterware is restarting database "CDB_OSAKA" ...
Connected to "CDB_OSAKA"
Connected to "CDB_OSAKA"
Continuing to convert database "CDB_OSAKA" ...
Database "CDB_OSAKA" converted successfully
2) 確認
DGMGRL> SHOW CONFIGURATION;
Configuration - dg_config
Protection Mode: MaxPerformance
Members:
CDB_TOKYO - Primary database
CDB_OSAKA - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 31 seconds ago)
■ フィジカル・スタンバイでの手動操作が必要なプライマリ・データベースの変更
プライマリ・データベースに対して行われる構造変更のほとんどは、REDOデータによってフィジカル・スタンバイ・データベースに自動的に伝播されますが、手動操作が必要な変更がいくつかあります。
次のドキュメントを参考に、フィジカル・スタンバイ・データベースで手動操作が必要な、プライマリ・データベースの構造および構成の変更を確認します。
・参考: フィジカル・スタンバイでの手動操作が必要なプライマリ・データベースの変更
■ プライマリ・データベースでの PDBの作成
PDBのサブセットをマルチテナント・コンテナ・データベース(CDB)のフィジカル・スタンバイに複製するように指定できます。このためには、ENABLED_PDBS_ON_STANDBYパラメータ初期化パラメータを使用してPDBのリストを指定するか、STANDBYS句をCREATE PLUGGABLE DATABASE文で使用するか、あるいはその両方を実行します。
・参考: プライマリ・データベースでのPDBの作成
■ 参考
● 本手順書
Oracle Exadata Cloudを使用したディザスタ・リカバリ
● Data Guard
・Data Guard
・Oracle Exadata Cloudを使用した ディザスタ・リカバリ
・Hybrid Data Guard to Exadata Cloud Services
・Solution Playbooks: Deploy a hybrid DR topology for an on-premises Oracle Exadata
・プライマリ・データベースでのPDBの作成
・フィジカル・スタンバイでの手動操作が必要なプライマリ・データベースの変更
・Data Guard Impact on Oracle Multitenant Environments (Doc ID 2049127.1)
・同期REDO転送のベスト・プラクティス
・Active Data Guard diffs from 11gR2 to 19c
● Data Guard Broker
・マニュアル: Oracle Data Guard Broker
・Oracle Data Guardのベスト・プラクティス
● Exadata
・概要: Oracle Exadata Database Service
・キュメント: Exadataシステム
・キュメント: DBAASツール: dbaascliを使用したクラウド・ツール・ログの収集およびクラウド・ツールの ヘルス・チェックの実行
・Oracle Database Product Management
● Private DNS
・キュメント: OCI Document:プライベートDNS
・チュートリアル: Private DNS Implementation
● ENCRYPTION 暗号化
・Oracle Data Guard Redo Decryption for Hybrid Disaster Recovery Configurations
・TABLESPACE_ENCRYPTION
● Oracle Cloud:Maximum Availability Architecture (MAA)
・Oracle CloudのMAAベスト・プラクティス まとめ
・Oracle WebLogic Server for Oracle Cloud Infrastructureの障害時リカバリ
・Oracle Cloud Infrastructure Marketplace上のSOA Suiteの障害時リカバリ
● My Oracle Support
・ When do SQLNET.ORA changes take effect ? (Doc ID 562589.1)
・ [Data Guard] Data Guard に関する FAQ(KROWN:125680) (Doc ID 1740071.1)
・ [DataGuard] フィジカル・スタンバイ環境での個別パッチの適用手順(KROWN:140197) (Doc ID 1748475.1)
● Qiitaまとめ
・ DRGで東京リージョンを経由して、オンプレミスと 大阪リージョンを接続
・ Oracle Exadata Cloud Infrastructure X9M作成
・ リージョン間を Remote VCN Peering接続
・ Private DNSで PeeringしたVCNどうしホスト名解決する
・ クラウド・ツール dbaascliをバージョンアップ