■ 大阪リージョン
2020年2月3日 Oracle Cloud 大阪リージョンがオープンしました。
またいつのまにか、メルボルン(オーストラリア)、ジェッダ(サウジアラビア)、モントリオール(カナダ)、アムステルダム(オランダ)もオープンしています。
大阪リージョンができたことにより、日本国内、東京ー大阪間で容易にDR構成をとり、法的管轄外から機密データをホストせず、コンプライアンス準拠に対応することができます。
ということで、東京ー大阪間をRemoe Peering でセキュアにバックボーン接続し、Data Guardしてみてみます。
● Data Guard
Oracle Data Guardによって、これらのスタンバイ・データベースが本番データベースの同期コピーとして保持されます。
これらのスタンバイ・データベースは、本番データベース・センターから数千マイルも離れたリモート障害時リカバリ・サイトに配置でき、同じ都市、構内、もしくはビルにも配置できます。
計画停止または計画外停止が原因で本番データベースが使用不可になった場合、スタンバイ・データベースを本番ロールに切り替え、その停止に起因する停止時間を最小限に抑えて、データ損失を防止できます。
また、Active Data Guardの機能により、スタンバイ・データベース有効活用としてソース集中型のバックアップおよびレポート生成操作をスタンバイ・システムにオフロードすることで、本番データベースのパフォーマンスを改善し向上できます。
■ 構成
今回のData Guardは勉強のために、IaaSのMarket Placeを利用してData Guardを手動で作成します。
■ Remote Peering構成の設定
Remote Peeringは以前の記事を参考に設定します。
・参考:Oracle Cloud:リージョン間をRemote Peering(バックボーン接続) してみた
■ Computeインスタンス作成
Oracle Cloud Market Place にOracle Databaseがあるのでこれを使用します。
大阪リージョン、東京リージョン両方同じに作成します
1) Compute > Instances から[Create Instance]をクリック

2) Browse All Imageから Oracle Databaseを選択

3) 必要情報を入力し、[Creaate]を実行
作成は数分で完了します。
■ Database作成
Oracle Databaseサーバー作成後、buildsingle.shでDatabaseを作成します
buildsingle.shの引数は次のものとなります
| 引数 | デフォルト値 | 概要 |
|---|---|---|
| SIDNAME | orcl | SID名 |
| DBNAME | orcl | DB名 |
| DBCA_SAMPLE_SCHEMA | no | サンプルスキーマーのインストール |
| CLONE_SYS_PASSWORD | Ora_DB4U | SYSユーザーパスワード |
| CLONE_SYSTEM_PASSWORD | Ora_DB4U | SYSTEMユーザーパスワード |
| CLONE_PDBADMIN_PASSWORD | Ora_DB4U | PDBADMINユーザーパスワード |
| CLONE_SYSMAN_PASSWORD | Ora_DB4U | SYSMANユーザーパスワード |
1) /u01をmount
/u01をmountします、通常マウントされているので、dfコマンドで確認し、mountされていなければmountします
・mount確認
[opc@tokyo-db-inst01 ~]$ sudo -s
[root@tokyo-db-inst01 opc]# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 15G 0 15G 0% /dev
tmpfs 15G 0 15G 0% /dev/shm
tmpfs 15G 8.7M 15G 1% /run
tmpfs 15G 0 15G 0% /sys/fs/cgroup
/dev/sda3 39G 3.2G 36G 9% /
/dev/sda1 200M 9.7M 191M 5% /boot/efi
tmpfs 3.0G 0 3.0G 0% /run/user/54321
/dev/sda4 250G 28G 210G 12% /u01
tmpfs 3.0G 0 3.0G 0% /run/user/1000
・/u01 mountコマンド
```shell-session
[opc@tokyo-db-inst01 ~]$ sudo -s
[root@tokyo-db-inst01 opc]# mount /u01
2) Database 作成
東京リージョン:tokyodb:SIDNAME=tokyodb DBNAME=tokyodb
大阪リージョン:osakadb:SIDNAME=osakadb DBNAME=osakadb
として作成します
大阪リージョンのosakadbは作成しなくてもOKです。後からtokyodbを複製して作成するので、必要ディレクトリとorapwdファイル、Oracle*NET関連ファイルを手動作成してもOKです
[root@tokyo-db-inst01 opc]# /u01/ocidb/GenerateNetconfig.sh > /u01/ocidb/netconfig.ini
[root@tokyo-db-inst01 opc]# SIDNAME=tokyodb DBNAME=tokyodb DBCA_SAMPLE_SCHEMA=yes /u01/ocidb/buildsingle.sh -s
Invoking on tokyo-db-inst01 as root...
Oracle (DB/RAC OCI) OneCommand - 19c/18c/12c/11gR2 (v2.2.2c) - (c) 2010-2019 Oracle Corporation
Cksum: [2600197023 651500 dbrac.sh] at 2020年 2月 2日 日曜日 03:47:53 GMT
Kernel: 4.14.35-1902.6.6.el7uek.x86_64 (x86_64) [4 processor(s)] 29880 MB | KVM
Kit Version: 19.5.0.0.191015 (Single Instance Mode, Enterprise Edition)
Step(s): buildsingle
INFO (node:tokyo-db-inst01): Skipping confirmation, flag (-s) supplied on command line
2020-02-02 03:47:53:[buildsingle:Start:tokyo-db-inst01] Building 19c Single Instance
2020-02-02 03:47:53:[usrsgrps:Start:tokyo-db-inst01] Verifying Oracle users & groups on local node (create/modify mode)..
2020-02-02 03:47:54:[usrsgrpslocal:Start:tokyo-db-inst01] Verifying Oracle users & groups (create/modify mode)..
INFO (node:tokyo-db-inst01): The (oracle) user as specified in DBOWNER/RACOWNER is defined as follows:
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)
2020-02-02 03:47:54:[usrsgrpslocal:Done :tokyo-db-inst01] Verifying Oracle users & groups (create/modify mode)..
2020-02-02 03:47:54:[usrsgrpslocal:Time :tokyo-db-inst01] Completed successfully in 0 seconds (0h:00m:00s)
2020-02-02 03:47:54:[usrsgrps:Done :tokyo-db-inst01] Verifying Oracle users & groups on local node (create/modify mode)..
2020-02-02 03:47:54:[usrsgrps:Time :tokyo-db-inst01] Completed successfully in 1 seconds (0h:00m:01s)
INFO (node:tokyo-db-inst01): Parameters loaded from params.ini...
Users & Groups:
Role Separation: no Running as: root
OInstall : oinstall GID: 54321
DB Owner : oracle UID: 54321
DB OSDBA : dba GID: 54322
DB OSOPER : GID:
DB OSBACKUP: dba GID:
DB OSDGDBA : dba GID:
DB OSKMDBA : dba GID:
DB OSRAC : dba GID:
Software Locations:
Operating Mode: Single Instance Database Edition:
Central Inventory: /u01/app/oraInventory
DB Home : /u01/app/oracle/product/19c/dbhome_1 (Detected: 19c, Enterprise Edition)
DB Name : OraDB19Home1
DB Base : /u01/app/oracle
DB/RAC OCI kit : /u01/ocidb
Attach RAC Home: yes GI Home: yes Relink Homes: no On OS Change: yes
Addnode Copy: no
Database & Storage:
Database : yes DBName: tokyodb SIDName: tokyodb DG: OCRVFDG Listener Port: 1521
Container DB: yes Pluggable DB Name: tokyodbpdb Count: 1
FS Datafile location: /u01/app/oracle/oradata DB on FS: yes FS Permisisons: 770
Persistent disknames: yes Stamp: yes Partition: yes Align: yes GPT: Dsk.Permissions: 660
Network information loaded from netconfig.ini...
Default Gateway: 10.0.0.1 Domain:
DNS: 169.254.169.254
Public NIC : ens3 Mask: 255.255.255.0
Node PubIP : 10.0.0.101 PubName : tokyo-db-inst01
Running on tokyo-db-inst01 as root...
Oracle (DB/RAC OCI) OneCommand - 19c/18c/12c/11gR2 (v2.2.2c) - (c) 2010-2019 Oracle Corporation
Cksum: [2600197023 651500 dbrac.sh] at 2020年 2月 2日 日曜日 03:47:54 GMT
Kernel: 4.14.35-1902.6.6.el7uek.x86_64 (x86_64) [4 processor(s)] 29880 MB | KVM
Kit Version: 19.5.0.0.191015 (Single Instance Mode, Enterprise Edition)
2020-02-02 03:47:54:[printparams:Time :tokyo-db-inst01] Completed successfully in 0 seconds (0h:00m:00s)
2020-02-02 03:47:54:[diskconfig:Start:tokyo-db-inst01] Storage Setup
INFO (node:tokyo-db-inst01): Filesystem checks (diskconfig)...
INFO (node:tokyo-db-inst01): Successfully created directory (/u01/app/oracle/oradata/tokyodb) for Database on filesystem location (/u01/app/oracle/oradata) set in FS_DATAFILE_LOCATION
INFO (node:tokyo-db-inst01): Successfully changed permissions (770) & ownership (oracle:oinstall) on Filesystem location (/u01/app/oracle/oradata) set in FS_DATAFILE_LOCATION; to skip in the future set CLONE_SKIP_FS_LOCATION_PERMISSION_CHANGE=yes
2020-02-02 03:47:54:[diskconfig:Done :tokyo-db-inst01] Storage Setup
2020-02-02 03:47:54:[diskconfig:Time :tokyo-db-inst01] Completed successfully in 0 seconds (0h:00m:00s)
2020-02-02 03:47:54:[check:Start:tokyo-db-inst01] Pre-install checks
.2020-02-02 03:47:55:[checkfs:Start:tokyo-db-inst01] Checking filesystem mount options
INFO (node:tokyo-db-inst01): Checking database filesystem location on: tokyo-db-inst01
2020-02-02 03:47:55:[checkfslocal:Time :tokyo-db-inst01] Completed successfully in 0 seconds (0h:00m:00s)
2020-02-02 03:47:56:[checkfs:Done :tokyo-db-inst01] Checking filesystem mount options
2020-02-02 03:47:56:[checklocal:Start:tokyo-db-inst01] Pre-install checks
2020-02-02 03:47:57:[usrsgrpslocal:Start:tokyo-db-inst01] Verifying Oracle users & groups (check only mode)..
INFO (node:tokyo-db-inst01): The (oracle) user as specified in DBOWNER/RACOWNER is defined as follows:
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)
2020-02-02 03:47:57:[usrsgrpslocal:Done :tokyo-db-inst01] Verifying Oracle users & groups (check only mode)..
INFO (node:tokyo-db-inst01): Node forming new Single Instance installation; Kernel: 4.14.35-1902.6.6.el7uek.x86_64 (x86_64) [4 processor(s)] 29880 MB | KVM
INFO (node:tokyo-db-inst01): Skipping disk checks since running in a Single Instance environment (database files should reside on a filesystem)
INFO (node:tokyo-db-inst01): Running network checks...
.........
INFO (node:tokyo-db-inst01): Check completed successfully
2020-02-02 03:48:02:[checklocal:Done :tokyo-db-inst01] Pre-install checks
2020-02-02 03:48:02:[checklocal:Time :tokyo-db-inst01] Completed successfully in 6 seconds (0h:00m:06s)
2020-02-02 03:48:03:[check:Done :tokyo-db-inst01] Pre-install checks
2020-02-02 03:48:03:[check:Time :tokyo-db-inst01] Completed successfully in 9 seconds (0h:00m:09s)
2020-02-02 03:48:03:[preparelocal:Start:tokyo-db-inst01] Preparing node for Oracle installation
INFO (node:tokyo-db-inst01): Resetting permissions on Oracle Homes... May take a while...
INFO (node:tokyo-db-inst01): Configured size of /dev/shm is (see output below):
ファイルシス サイズ 使用 残り 使用% マウント位置
tmpfs 15G 0 15G 0% /dev/shm
2020-02-02 03:48:11:[preparelocal:Done :tokyo-db-inst01] Preparing node for Oracle installation
2020-02-02 03:48:11:[preparelocal:Time :tokyo-db-inst01] Completed successfully in 8 seconds (0h:00m:08s)
2020-02-02 03:48:12:[prepare:Time :tokyo-db-inst01] Completed successfully in 9 seconds (0h:00m:09s)
2020-02-02 03:48:14:[dbclone:Start:tokyo-db-inst01] Attaching 19c DB Home
INFO (node:tokyo-db-inst01): Running on: tokyo-db-inst01 as root: /bin/chown -HRf oracle:oinstall /u01/app/oracle/product/19c/dbhome_1 2>/dev/null
2020-02-02 03:48:15:[dbattachlocal:Start:tokyo-db-inst01] Attaching DB Home on node tokyo-db-inst01
INFO (node:tokyo-db-inst01): Running on: tokyo-db-inst01 as oracle: /u01/app/oracle/product/19c/dbhome_1/oui/bin/runInstaller -silent -ignoreSysPrereqs -waitforcompletion -attachHome INVENTORY_LOCATION='/u01/app/oraInventory' ORACLE_HOME='/u01/app/oracle/product/19c/dbhome_1' ORACLE_HOME_NAME='OraDB19Home1' ORACLE_BASE='/u01/app/oracle' -local
Oracle Universal Installerを起動中です...
スワップ領域の確認中: 500MBを超えている必要があります. 実際 8191MB 問題なし
The inventory pointer is located at /etc/oraInst.loc
このインストール・セッションのログは次の場所にあります:
/u01/app/oraInventory/logs/AttachHome2020-02-02_03-48-15AM.log
セッション終了時に'/u01/app/oraInventory/orainstRoot.sh'スクリプトを実行してください。
'AttachHome'が成功しました。
INFO (node:tokyo-db-inst01): Running on: tokyo-db-inst01 as root: /u01/app/oraInventory/orainstRoot.sh
権限を変更中 /u01/app/oraInventory.
グループの読取り/書込み権限を追加中。
全ユーザーの読取り/書込み/実行権限を削除中。
グループ名の変更 /u01/app/oraInventory 宛先 oinstall.
スクリプトの実行が完了しました。
2020-02-02 03:48:19:[dbattachlocal:Done :tokyo-db-inst01] Attaching DB Home on node tokyo-db-inst01
2020-02-02 03:48:19:[dbattachlocal:Time :tokyo-db-inst01] Completed successfully in 4 seconds (0h:00m:04s)
2020-02-02 03:48:19:[dbrootlocal:Start:tokyo-db-inst01] Running root.sh on DB Home
Check /u01/app/oracle/product/19c/dbhome_1/install/root_tokyo-db-inst01_2020-02-02_03-48-19-236416923.log for the output of root script
2020-02-02 03:48:19:[dbrootlocal:Done :tokyo-db-inst01] Running root.sh on DB Home
2020-02-02 03:48:19:[dbrootlocal:Time :tokyo-db-inst01] Completed successfully in 0 seconds (0h:00m:00s)
INFO (node:tokyo-db-inst01): Resetting permissions on Oracle Home (/u01/app/oracle/product/19c/dbhome_1)...
2020-02-02 03:48:19:[racclonelocal:Done :tokyo-db-inst01] Attaching 19c DB Home
2020-02-02 03:48:19:[dbclone:Time :tokyo-db-inst01] Completed successfully in 7 seconds (0h:00m:07s)
2020-02-02 03:48:19:[dbassist:Start:tokyo-db-inst01] Running DB Home assistants (netca)
INFO (node:tokyo-db-inst01): Creating the node Listener using NETCA... (03:48:19)
INFO (node:tokyo-db-inst01): Running on: tokyo-db-inst01 as oracle: export ORACLE_BASE=/u01/app/oracle; export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1; /u01/app/oracle/product/19c/dbhome_1/bin/netca /orahome /u01/app/oracle/product/19c/dbhome_1 /instype typical /inscomp client,oraclenet,javavm,server,ano /insprtcl tcp /cfg local /authadp NO_VALUE /responseFile /u01/app/oracle/product/19c/dbhome_1/network/install/netca_typ.rsp /lisport 1521 /silent /orahnam OraDB19Home1
コマンドライン引数の解析:
パラメータ "orahome" = /u01/app/oracle/product/19c/dbhome_1
パラメータ "instype" = typical
パラメータ "inscomp" = client,oraclenet,javavm,server,ano
パラメータ "insprtcl" = tcp
パラメータ "cfg" = local
パラメータ "authadp" = NO_VALUE
パラメータ "responsefile" = /u01/app/oracle/product/19c/dbhome_1/network/install/netca_typ.rsp
パラメータ "lisport" = 1521
パラメータ "silent" = true
パラメータ "orahnam" = OraDB19Home1
コマンドライン引数の解析が終了しました。
Oracle Net Servicesの構成:
プロファイルの構成が完了しました。
リスナーは、コマンドラインで指定されたポートを使用しています:1521
Oracle Net Listenerの起動:
リスナーの制御の実行:
/u01/app/oracle/product/19c/dbhome_1/bin/lsnrctl start LISTENER
リスナーの制御が完了しました。
リスナーの起動に成功しました。
リスナーの構成が完了しました。
Oracle Net Servicesの構成に成功しました。終了コードは次のとおりです。0
2020-02-02 03:48:21:[dbassist:Done :tokyo-db-inst01] Running DB Home assistants (netca)
2020-02-02 03:48:21:[dbassist:Time :tokyo-db-inst01] Completed successfully in 2 seconds (0h:00m:02s)
2020-02-02 03:48:21:[createdb:Start:tokyo-db-inst01] Creating 19c Single Instance Database (tokyodb)
2020-02-02 03:48:22:[adjustmemlocal:Start:tokyo-db-inst01] Adjusting memory settings
INFO (node:tokyo-db-inst01): Not attempting to adjust size of /dev/shm since the available space (14940MB) exceeds the calculated needed space
INFO (node:tokyo-db-inst01): Configured size of /dev/shm is (see output below):
ファイルシス サイズ 使用 残り 使用% マウント位置
tmpfs 15G 0 15G 0% /dev/shm
2020-02-02 03:48:22:[adjustmemlocal:Done :tokyo-db-inst01] Adjusting memory settings
2020-02-02 03:48:22:[adjustmemlocal:Time :tokyo-db-inst01] Completed successfully in 0 seconds (0h:00m:00s)
INFO (node:tokyo-db-inst01): Creating database (tokyodb) (Single Instance)
INFO (node:tokyo-db-inst01): Running on: tokyo-db-inst01 as oracle: export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1; export ORACLE_BASE=/u01/app/oracle; /u01/app/oracle/product/19c/dbhome_1/bin/dbca -silent -createDatabase -emConfiguration NONE -templateName 'General_Purpose.dbc' -storageType FS -datafileDestination '/u01/app/oracle/oradata' -datafileJarLocation '/u01/app/oracle/product/19c/dbhome_1/assistants/dbca/templates' -sampleSchema true -oratabLocation /etc/oratab -runCVUChecks false -continueOnNonFatalErrors true -createAsContainerDatabase true -numberOfPDBs 1 -pdbName tokyodbpdb -gdbName 'tokyodb' -sid 'tokyodb' -initParams filesystemio_options=setall -ignorePrereqs
SYSユーザー・パスワードを入力してください:
SYSTEMユーザー・パスワードを入力してください:
************
PDBADMINユーザー・パスワードを入力してください:
**********
DB操作の準備
8%完了
データベース・ファイルのコピー中
31%完了
Oracleインスタンスの作成および起動中
32%完了
36%完了
40%完了
43%完了
46%完了
データベース作成の完了
51%完了
53%完了
54%完了
プラガブル・データベースの作成
58%完了
77%完了
構成後アクションの実行
100%完了
データベースの作成が完了しました。詳細は、次の場所にあるログ・ファイルを参照してください:
/u01/app/oracle/cfgtoollogs/dbca/tokyodb。
データベース情報:
グローバル・データベース名:tokyodb
システム識別子(SID):tokyodb
詳細はログ・ファイル"/u01/app/oracle/cfgtoollogs/dbca/tokyodb/tokyodb.log"を参照してください。
INFO (node:tokyo-db-inst01): Adding Service (tokyodbpdb) stored in DBCA_PLUGGABLE_DB_NAME used to access the Pluggable Database to: /u01/app/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora
INFO (node:tokyo-db-inst01): Enabling automated startup of all Pluggable Database due to CLONE_DATABASE_AUTOSTART_PDBS=yes specified (or defaulted) in params.ini
INFO (node:tokyo-db-inst01): Setting Single Instance database to automatically start on next boot due to CLONE_SI_DATABASE_AUTOSTART=yes (/etc/rc.d/rc.local)
INFO (node:tokyo-db-inst01): DBCA post creation scripts are running in background (due to DBCA_POST_SQL_BG=yes) as pid: 10616... (continuing execution)
See log at: /u01/ocidb/buildsingle2_createdbpostsql_2020 2月02_04_09_45.log
INFO (node:tokyo-db-inst01): Setup oracle's environment
2020-02-02 04:09:46:[createdb:Done :tokyo-db-inst01] Creating 19c Single Instance Database (tokyodb)
2020-02-02 04:09:46:[createdb:Time :tokyo-db-inst01] Completed successfully in 1285 seconds (0h:21m:25s)
INFO (node:tokyo-db-inst01): Current Single Instance state (04:09:46)...
oracle 5960 1 0 03:48 ? 00:00:00 /u01/app/oracle/product/19c/dbhome_1/bin/tnslsnr LISTENER -inherit
oracle 10154 1 0 04:09 ? 00:00:00 ora_dbw0_tokyodb
INFO (node:tokyo-db-inst01): Single Instance running (see output above)
2020-02-02 04:09:46:[singlestate:Time :tokyo-db-inst01] Completed successfully in 0 seconds (0h:00m:00s)
2020-02-02 04:09:46:[buildsingle:Done :tokyo-db-inst01] Building 19c Single Instance
2020-02-02 04:09:46:[buildsingle:Time :tokyo-db-inst01] Completed successfully in 1313 seconds (0h:21m:53s)
INFO (node:tokyo-db-inst01): This entire build was logged in logfile: /u01/ocidb/buildsingle2.log
● 作成されたDB情報確認
作成されたDBのsysパスワードなどDB情報はparams.iniで確認できます
[root@tokyo-db-inst01 opc]# cat /u01/ocidb/params.ini
#
#/* Copyright 2013-2019, Oracle. All rights reserved. */
#
#
・・・・
● 環境変数 .bashrc設定確認
デフォルトで以下のように.bashrcへ環境変数が設定されます
ここでは追加でNLS_LANGを設定します
[oracle@tokyo-db-inst01 ~]$ 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
[ -f /home/oracle/.bash_history ] || rm -f /home/oracle/.bash_history && touch /home/oracle/.bash_history
#
# Oracle user environment setup
#
function addpath {
[[ ":${PATH}:" =~ :$1: ]] && return
PATH="$PATH:$1"
}
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1
export ORACLE_UNQNAME=tokyodb
export ORACLE_SID=tokyodb
# If binary locations do not already exist in
# $PATH add them to the end without duplicates...
addpath ${ORACLE_HOME%/}/bin
addpath ${ORACLE_HOME%/}/OPatch
export NLS_LANG=Japanese_Japan.AL32UTF8
[oracle@tokyo-db-inst01 ~]$ . .bashrc
[oracle@tokyo-db-inst01 ~]$ env | grep LA
NLS_LANG=Japanese_Japan.AL32UTF8
● sqlplus 変数設定
glogin.sqlファイルにsqlplus変数をあらかじめ設定できるので、
プライマリDBとスタンバイDBを間違えない様に以下を設定しときます。
1) 設定
[oracle@tokyo-db-inst01 ~]$ vi $ORACLE_HOME/sqlplus/admin/glogin.sql
set sqlprompt '&_USER@&_connect_identifier SQL> '
set pages 1000
2) 設定確認
各DBへ接続してLoginユーザー名、SID名が表示されることを確認
・tokyodb
[oracle@tokyo-db-inst01 admin]$ sqlplus / as sysdba
SYS@tokyodb SQL>
・osakadb
[oracle@osaka-db-inst01 OSAKADB]$ sqlplus / as sysdba
SYS@osakadb SQL>
● 初期化パラメータ確認
初期化パラメータをcreate pfileで確認します
[oracle@tokyo-db-inst01 oracle]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on 日 2月 2 04:44:50 2020
Version 19.5.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.5.0.0.0
に接続されました。
SYS@tokyodb SQL> create pfile='/tmp/inittokyodb.ora' from spfile;
ファイルが作成されました。
SYS@tokyodb SQL> host cat /tmp/inittokyodb.ora
tokyodb.__data_transfer_cache_size=0
tokyodb.__db_cache_size=7784628224
tokyodb.__inmemory_ext_roarea=0
tokyodb.__inmemory_ext_rwarea=0
tokyodb.__java_pool_size=0
tokyodb.__large_pool_size=33554432
tokyodb.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
tokyodb.__pga_aggregate_target=3154116608
tokyodb.__sga_target=9428795392
tokyodb.__shared_io_pool_size=134217728
tokyodb.__shared_pool_size=1442840576
tokyodb.__streams_pool_size=0
tokyodb.__unified_pga_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/tokyodb/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/u01/app/oracle/oradata/TOKYODB/control01.ctl','/u01/app/oracle/oradata/TOKYODB/control02.ctl'
*.db_block_size=8192
*.db_name='tokyodb'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=tokyodbXDB)'
*.enable_pluggable_database=true
*.filesystemio_options='setall'
*.local_listener='LISTENER_TOKYODB'
*.nls_language='JAPANESE'
*.nls_territory='JAPAN'
*.open_cursors=300
*.pga_aggregate_target=2988m
*.processes=320
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=8964m
*.undo_tablespace='UNDOTBS1'
■ スタンバイ・データベースを作成するためのプライマリ・データベースの準備
適切なロギング・モードの有効化
REDO転送の認証の構成
REDOデータを受信するためのプライマリ・データベースの構成
プライマリ・データベースの初期化パラメータの設定
アーカイブの有効化
■ Archive Log Mode と Flashback Database有効化
Data Guardするには、Flashback Log ModeとFlashback Databaseが必要です。
初期状態では、Archive Log ModeとFlashback DatabaseとついでにBLOCK CHANGE TRACKINGが有効化されていないのでしときます
● Archive Log ModeとFlashback Database有効化
初期化パラメータ・ファイルにDB_RECOVERY_FILE_DESTおよびDB_RECOVERY_FILE_DEST_SIZEパラメータを設定して、
高速リカバリ領域のデフォルトの場所を識別できるようにします。高速リカバリ領域には、次が格納されます。
REDOログ・ファイルまたはその多重コピー
制御ファイルまたはその多重コピー
RMANバックアップ(データファイルのコピー、制御ファイルのコピー、バックアップ・ピース、制御ファイルの自動バックアップ)
アーカイブ・ログ
フラッシュバック・ログ
1) Flash_recovery_areaディレクトリ作成
SYS@tokyodb SQL> host mkdir /u01/app/oracle/flash_recovery_area
SYS@tokyodb SQL> host ls /u01/app/oracle
admin audit cfgtoollogs checkpoints crsdata diag flash_recovery_area oradata product tfa
2) flash_recovery_area用パラメータ設定
SYS@tokyodb SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE=10G;
システムが変更されました。
SYS@tokyodb SQL> alter system set DB_RECOVERY_FILE_DEST='/u01/app/oracle/flash_recovery_area' scope=both;
システムが変更されました。
SYS@tokyodb SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/u01/app/oracle/oradata';
システムが変更されました。
3) BLOCK CHANGE TRACKING有効化
SYS@tokyodb SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
データベースが変更されました。
4) DB停止
SYS@tokyodb SQL> SHUTDOWN IMMEDIATE;
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
5) DB MOUNT
SYS@tokyodb SQL> STARTUP MOUNT;
ORACLEインスタンスが起動しました。
Total System Global Area 9428793296 bytes
Fixed Size 9144272 bytes
Variable Size 1476395008 bytes
Database Buffers 7918845952 bytes
Redo Buffers 24408064 bytes
データベースがマウントされました。
6) ARCHIVELOGモード有効化
SYS@tokyodb SQL> ALTER DATABASE ARCHIVELOG;
データベースが変更されました。
7) FLASHBACKモード有効化
SYS@tokyodb SQL> ALTER DATABASE FLASHBACK ON;
データベースが変更されました。
8) DB OPEN
SYS@tokyodb SQL> ALTER DATABASE OPEN;
データベースが変更されました。
9) Archive Log ModeとFlashback Database設定確認
SYS@tokyodb SQL> select NAME,DB_UNIQUE_NAME,LOG_MODE,FLASHBACK_ON from v$database;
NAME DB_UNIQUE_NAME LOG_MODE FLASHBACK_ON
--------- ------------------------------ ------------ ------------------
TOKYODB tokyodb ARCHIVELOG YES
10) BLOCK CHANGE TRACKING設定確認
SYS@tokyodb SQL> col FILENAME format a100
SYS@tokyodb SQL> SELECT status, filename FROM V$BLOCK_CHANGE_TRACKING;
STATUS FILENAME
---------- ----------------------------------------------------------------------------------------------------
ENABLED /u01/app/oracle/oradata/TOKYODB/changetracking/o1_mf_h3fj0p28_.chg
● Archive Log Mode動作確認
Log SwitchしてArchive Log が作成されることを確認
SYS@tokyodb SQL> host ls -la /u01/app/oracle/flash_recovery_area/TOKYODB/archivelog/2020_02_02
total 153400
drwxr-x---. 2 oracle dba 4096 Feb 2 05:08 .
drwxr-x---. 3 oracle dba 4096 Feb 2 05:05 ..
SYS@tokyodb SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
システムが変更されました。
SYS@tokyodb SQL> host ls -la /u01/app/oracle/flash_recovery_area/TOKYODB/archivelog/2020_02_02
total 153400
drwxr-x---. 2 oracle dba 4096 Feb 2 05:08 .
drwxr-x---. 3 oracle dba 4096 Feb 2 05:05 ..
-rw-r-----. 1 oracle dba 157072384 Feb 2 05:08 o1_mf_1_12_h3dp9vz1_.arc
■ Oracle*Net設定
osakadbとtokyodb双方向でClient/Server接続できるよう設定します。
大阪リージョンと東京リージョン間では、デフォルトでDNS名前解決できないため、それぞれのインスタンス間で名前解決して、Oracle*Net接続できるようにします
● 名前解決設定
ここでは、対抗のDBホスト名をIPアドレスからホスト名で解決できるように/etc/hostsファイルを設定します。
・ tokyodb
[root@tokyo-db-inst01 opc]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.5.0.101 osaka-db-inst01 osaka-db-inst01.publicsubnet01.vcn10500.oraclevcn.com
・ osakadb
[root@osaka-db-inst01 opc]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.101 tokyo-db-inst01 tokyo-db-inst01.publicsubnet01.vcn10000.oraclevcn.com
● tnsnames.ora
tokyodbとosakadbそれぞれ、双方向接続できるよう設定します。
また、OSAKADBがnomountでも接続できるように (UR = A) を設定しときます
[oracle@tokyo-db-inst01 admin]$ cat $ORACLE_HOME/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
TOKYODB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = tokyo-db-inst01.publicsubnet01.vcn10000.oraclevcn.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = tokyodb)
)
)
LISTENER_TOKYODB =
(ADDRESS = (PROTOCOL = TCP)(HOST = tokyo-db-inst01.publicsubnet01.vcn10000.oraclevcn.com)(PORT = 1521))
tokyodbpdb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = tokyo-db-inst01)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = tokyodbpdb)
)
)
OSAKADB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = osaka-db-inst01.publicsubnet01.vcn10500.oraclevcn.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = osakadb)
(UR = A)
)
)
osakadbpdb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = osaka-db-inst01)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TOKYODBPDB)
)
)
● Firewalld設定
OSのファイアーウォールfilrewalldは、1521が閉じられているため開けときます
1) 事前確認
[root@osaka-db-inst01 opc]# firewall-cmd --list-all
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
2) 1521/tcp Port設定
[root@osaka-db-inst01 opc]# firewall-cmd --add-port=1521/tcp --zone=public --permanent
success
3) 設定反映
[root@osaka-db-inst01 opc]# firewall-cmd --reload
success
4) 設定確認
[root@osaka-db-inst01 opc]# firewall-cmd --list-all
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client ssh
ports: 1521/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
● 疎通確認
・tokyodb -> osakadb接続確認
osakadbはDB作成されていないので、tnspingで設定確認しときます
[oracle@tokyo-db-inst01 admin]$ tnsping osakadbpdb
TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 02-2月 -2020 05:48:47
Copyright (c) 1997, 2019, Oracle. All rights reserved.
パラメータ・ファイルを使用しました:
/u01/app/oracle/product/19c/dbhome_1/network/admin/sqlnet.ora
エイリアスを解決するためにTNSNAMESアダプタを使用しました。
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = osaka-db-inst01)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = TOKYODBPDB)))に接続の試行中
OK (20ミリ秒)
・osakadb -> tokyodb接続確認
[oracle@osaka-db-inst01 admin]$ sqlplus system/Ora_DB4U@tokyodb
SQL*Plus: Release 19.0.0.0.0 - Production on 月 2月 3 06:50:01 2020
Version 19.5.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
最終正常ログイン時間: 日 2月 02 2020 07:50:50 +00:00
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.5.0.0.0
に接続されました。
SYSTEM@tokyodb SQL>
■ Data Guard設定
● 適切なロギング・モードの有効化
プライマリ・データベースの準備の一部として、3種類あるData Guard構成の使用方法に適したロギング・モードを有効化する必要があります。
・参考: 適切なロギング・モードの有効化
ここでは、 STANDBY NOLOGGING FOR DATA AVAILABILITYを設定します
1) FORCELOGGING
2) STANDBY NOLOGGING FOR DATA AVAILABILITY
3) STANDBY NOLOGGING FOR LOAD PERFORMANCE
SYS@tokyodb SQL> ALTER DATABASE SET STANDBY NOLOGGING FOR DATA AVAILABILITY;
データベースが変更されました。
● REDOデータを受信するためのプライマリ・データベースの構成
STANDBY LOGFILEを作成し、REDOを受信するようにプライマリ・データベースを構成します
プライマリ・データベースは、スタンバイ・ロールに速やかに推移してREDOデータの受信を開始できるようになります。
ここでは、REDOと同じサイズでSTANDBY LOGFILEを3つ作成します
SYS@tokyodb SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/TOKYODB/slog1.rdo') SIZE 200M;
データベースが変更されました。
SYS@tokyodb SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/TOKYODB/slog2.rdo') SIZE 200M;
データベースが変更されました。
SYS@tokyodb SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/TOKYODB/slog3.rdo') SIZE 200M;
データベースが変更されました。
● プライマリ・データベースの初期化パラメータの設定
プライマリ・データベースでは、データベースがプライマリ・ロールで動作している間のREDO転送サービスを制御する初期化パラメータを定義します。
また、プライマリ・データベースがスタンバイ・ロールに推移したときにREDOデータの受信と適用サービスを制御するパラメータを追加する必要があります。
次の例は、プライマリ・データベースでメンテナンスする、プライマリ・ロールの初期化パラメータを示しています。
DB_NAME=tokyodb
DB_UNIQUE_NAME=tokyodb
LOG_ARCHIVE_CONFIG='DG_CONFIG=(tokyodb,osakadb)'
LOG_ARCHIVE_DEST_1= 'LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=tokyodb'
LOG_ARCHIVE_DEST_2= 'SERVICE=osakadb ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=osakadb'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT='%t_%s_%r.arc'
LOG_ARCHIVE_MAX_PROCESSES=2
次の例は、プライマリ・データベース上のその他のスタンバイ・ロールの初期化パラメータを示しています。
これらのパラメータは、プライマリ・データベースがスタンバイ・ロールに推移すると有効になります。
FAL_SERVER=OSAKADB
FAL_CLIENT=TOKYODB
DB_FILE_NAME_CONVERT='OSAKADB','TOKYODB','osakadb','tokyodb'
LOG_FILE_NAME_CONVERT='OSAKADB','TOKYODB','osakadb','tokyodb'
STANDBY_FILE_MANAGEMENT=AUTO
1) Data Gaurd必要パラメータ設定
SYS@tokyodb SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(tokyodb,osakadb)' scope=spfile;
SYS@tokyodb SQL> alter system set LOG_ARCHIVE_DEST_1= 'LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=tokyodb' scope=spfile;
SYS@tokyodb SQL> alter system set LOG_ARCHIVE_DEST_2= 'SERVICE=osakadb ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=osakadb' scope=spfile;
SYS@tokyodb SQL> alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=spfile;
SYS@tokyodb SQL> alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=spfile;
SYS@tokyodb SQL> alter system set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE scope=spfile;
SYS@tokyodb SQL> alter system set LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' scope=spfile;
SYS@tokyodb SQL> alter system set LOG_ARCHIVE_MAX_PROCESSES=2 scope=spfile;
SYS@tokyodb SQL> alter system set FAL_SERVER=OSAKADB scope=spfile;
SYS@tokyodb SQL> alter system set FAL_CLIENT=TOKYODB scope=spfile;
SYS@tokyodb SQL> alter system set DB_FILE_NAME_CONVERT='OSAKADB','TOKYODB','osakadb','tokyodb' scope=spfile;
SYS@tokyodb SQL> alter system set LOG_FILE_NAME_CONVERT='OSAKADB','TOKYODB','osakadb','tokyodb' scope=spfile;
SYS@tokyodb SQL> alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=spfile;
システムが変更されました。
2) 設定反映
DBを再起動して設定を反映
SYS@tokyodb SQL> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SYS@tokyodb SQL>
SYS@tokyodb SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area 9428793296 bytes
Fixed Size 9144272 bytes
Variable Size 1476395008 bytes
Database Buffers 7918845952 bytes
Redo Buffers 24408064 bytes
データベースがマウントされました。
データベースがオープンされました。
3) 設定パラメーター確認
設定されたパラメータを Create pfileで確認
SYS@tokyodb SQL> create pfile='/tmp/inittokyo2.ora' from spfile;
ファイルが作成されました。
SYS@tokyodb SQL> host cat /tmp/inittokyo2.ora
tokyodb.__data_transfer_cache_size=0
tokyodb.__db_cache_size=7784628224
tokyodb.__inmemory_ext_roarea=0
tokyodb.__inmemory_ext_rwarea=0
tokyodb.__java_pool_size=0
tokyodb.__large_pool_size=33554432
tokyodb.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
tokyodb.__pga_aggregate_target=3154116608
tokyodb.__sga_target=9428795392
tokyodb.__shared_io_pool_size=134217728
tokyodb.__shared_pool_size=1442840576
tokyodb.__streams_pool_size=0
tokyodb.__unified_pga_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/tokyodb/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/u01/app/oracle/oradata/TOKYODB/control01.ctl','/u01/app/oracle/oradata/TOKYODB/control02.ctl'
*.db_block_size=8192
*.db_create_file_dest='/u01/app/oracle/oradata'
*.db_file_name_convert='OSAKADB','TOKYODB','osakadb','tokyodb'
*.db_name='tokyodb'
*.db_recovery_file_dest_size=10737418240
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=tokyodbXDB)'
*.enable_pluggable_database=true
*.fal_client='TOKYODB'
*.fal_server='OSAKADB'
*.filesystemio_options='setall'
*.local_listener='LISTENER_TOKYODB'
*.log_archive_config='DG_CONFIG=(tokyodb,osakadb)'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=tokyodb'
*.log_archive_dest_2='SERVICE=osakadb ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=osakadb'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arc'
*.log_archive_max_processes=2
*.log_file_name_convert='OSAKADB','TOKYODB','osakadb','tokyodb'
*.nls_language='JAPANESE'
*.nls_territory='JAPAN'
*.open_cursors=300
*.pga_aggregate_target=2988m
*.processes=320
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=8964m
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'
■ フィジカル・スタンバイ・データベースの作成
ここからは、osakadbの設定をします。
● スタンバイ・データベース用の制御ファイルの作成
tokyodbから、スタンバイ・データベース用の制御ファイルを作成し、これをosakadbの制御ファイルとして使用します
SYS@tokyodb SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/osakadb_ctlcontrol01.ctl';
データベースが変更されました。
[root@tokyo-db-inst01 ~]# scp -i id_rsa /tmp/osakadb_ctlcontrol01.ctl opc@osaka-db-inst01:/tmp/
osakadb_ctlcontrol01.ctl
● スタンバイ・データベース用のパラメータ・ファイルの作成
作成したプライマリDBの初期化パラメータからスタンバイDB用初期化パラメータを作成します。
1) osakadb用初期化パラメーター作成
SYS@tokyodb SQL> CREATE PFILE='/tmp/initosakadb.ora' FROM SPFILE;
ファイルが作成されました。
2) osakadb用初期化パラメーター設定
プライマリDB(tokyodb,TOKYODB) とスタンバイDB(osakadb,OSAKADB)の文字列を入れ替えます。
ただし、DB_NAME=tokyodb だけはそのままにしておきます
・ 変更前
[oracle@tokyo-db-inst01 TOKYODB]$ cat /tmp/initosakadb.ora
*.audit_file_dest='/u01/app/oracle/admin/tokyodb/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/u01/app/oracle/oradata/TOKYODB/control01.ctl','/u01/app/oracle/oradata/TOKYODB/control02.ctl'
*.db_block_size=8192
*.db_file_name_convert='OSAKADB','TOKYODB','osakadb','tokyodb'
*.db_name='tokyodb'
*.db_recovery_file_dest_size=10737418240
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=tokyodbXDB)'
*.enable_pluggable_database=true
*.fal_client='TOKYODB'
*.fal_server='OSAKADB'
*.filesystemio_options='setall'
*.local_listener='LISTENER_TOKYODB'
*.log_archive_config='DG_CONFIG=(tokyodb,osakadb)'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=tokyodb'
*.log_archive_dest_2='SERVICE=osakadb ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=osakadb'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arc'
*.log_archive_max_processes=2
*.log_file_name_convert='OSAKADB','TOKYODB','osakadb','tokyodb'
*.nls_language='JAPANESE'
*.nls_territory='JAPAN'
*.open_cursors=300
*.pga_aggregate_target=2988m
*.processes=320
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=8964m
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'
・ 変更後
DB_UNIQUE_NAME='osakadb' を一番下に設定しておくと一番下のパラメータが有効化されるので2重登録しても間違えなくてすみます
[oracle@tokyo-db-inst01 TOKYODB]$ cat /tmp/initosakadb.ora
*.audit_file_dest='/u01/app/oracle/admin/osakadb/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/u01/app/oracle/oradata/OSAKADB/control01.ctl','/u01/app/oracle/oradata/OSAKADB/control02.ctl'
*.db_block_size=8192
*.db_file_name_convert='TOKYODB','OSAKADB','tokyodb','osakadb'
*.db_name='osakadb'
*.db_recovery_file_dest_size=10737418240
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=osakadbXDB)'
*.enable_pluggable_database=true
*.fal_client='OSAKADB'
*.fal_server='TOKYODB'
*.filesystemio_options='setall'
*.local_listener='LISTENER_OSAKADB'
*.log_archive_config='DG_CONFIG=(osakadb,tokyodb)'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=osakadb'
*.log_archive_dest_2='SERVICE=osakadb ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=tokyodb'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arc'
*.log_archive_max_processes=2
*.log_file_name_convert='TOKYODB','OSAKADB','tokyodb','osakadb'
*.nls_language='JAPANESE'
*.nls_territory='JAPAN'
*.open_cursors=300
*.pga_aggregate_target=2988m
*.processes=320
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=8964m
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'
DB_NAME='tokyodb'
DB_UNIQUE_NAME='osakadb'
3) osakadbへ転送
[root@tokyo-db-inst01 ~]# scp -i id_rsa -p /tmp/initosakadb.ora opc@osaka-db-inst01:/tmp/
initosakadb.ora 100% 1871 216.9KB/s 00:00
4) スタンバイDB spfile作成
転送したpfileをspfileへ変換して配置
SYS@osakadb SQL> create spfile from pfile'/tmp/initosakadb.ora' ;
SYS@osakadb SQL> host ls -la $ORACLE_HOME/dbs
total 18332
drwxr-xr-x. 2 oracle oinstall 4096 Feb 2 15:25 .
drwxr-xr-x. 72 oracle oinstall 4096 Feb 2 15:15 ..
-rw-r--r--. 1 oracle oinstall 3079 May 14 2015 init.ora
-rw-r-----. 1 oracle oinstall 2048 Feb 2 11:31 orapwosakadb
-rw-r-----. 1 oracle dba 4608 Feb 2 15:15 spfileosakadb.ora
5) スタンバイDB 事前準備
スタンバイDBを起動するには、事前に必要なディレクトリを作成しておきます。
・ flash_recovery_areaディレクトリ作成
[oracle@osaka-db-inst01 ~]$ mkdir /u01/app/oracle/flash_recovery_area
6) スタンバイDB Startup Nomount
SYS@osakadb SQL> startup nomount ';
ORACLEインスタンスが起動しました。
Total System Global Area 9428793296 bytes
Fixed Size 9144272 bytes
Variable Size 1476395008 bytes
Database Buffers 7918845952 bytes
Redo Buffers 24408064 bytes
7) リスナーへ起動DB情報登録
リスナーへの起動DB情報はDB起動直後では登録されないため、手動登録しときます
SYS@osakadb SQL> alter system register;
システムが変更されました。
8) リスナー情報確認
[oracle@osaka-db-inst01 admin]$ lsnrctl stat
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 02-2月 -2020 08:04:16
Copyright (c) 1991, 2019, Oracle. All rights reserved.
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=osaka-db-inst01.publicsubnet01.vcn10500.oraclevcn.com)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for Linux: Version 19.0.0.0.0 - Production
開始日 02-2月 -2020 08:01:43
稼働時間 0 日 0 時間 2 分 32 秒
トレース・レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
パラメータ・ファイル /u01/app/oracle/product/19c/dbhome_1/network/admin/listener.ora
ログ・ファイル /u01/app/oracle/diag/tnslsnr/osaka-db-inst01/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=osaka-db-inst01)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
サービスのサマリー...
サービス"osakadb"には、1件のインスタンスがあります。
インスタンス"osakadb"、状態BLOCKEDには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。
● osakadb作成
tokyodbからRMANでosakadbのスタンバイDBを作成します
1) RMANでDB複製
[oracle@tokyo-db-inst01 admin]$ rman target sys/Ora_DB4U@tokyodb auxiliary sys/Ora_DB4U@osakadb
Recovery Manager: Release 19.0.0.0.0 - Production on 日 2月 2 09:20:24 2020
Version 19.5.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
ターゲット・データベース: TOKYODB (DBID=2384963737)に接続されました
補助データベース: TOKYODBに接続されました(マウントされていません)
RMAN> duplicate target database for standby from active database;
Duplicate Dbを20-02-02で開始しています
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_AUX_DISK_1が割り当てられました
チャネルORA_AUX_DISK_1: SID=135 デバイス・タイプ=DISK
メモリー・スクリプトの内容:
{
backup as copy reuse
passwordfile auxiliary format '/u01/app/oracle/product/19c/dbhome_1/dbs/orapwosakadb' ;
}
メモリー・スクリプトを実行しています
backupを20-02-02で開始しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=24 デバイス・タイプ=DISK
backupを20-02-02で終了しました
メモリー・スクリプトの内容:
{
restore clone from service 'tokyodb' standby controlfile;
}
メモリー・スクリプトを実行しています
restoreを20-02-02で開始しています
チャネルORA_AUX_DISK_1の使用
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスtokyodbのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: 制御ファイルをリストア中です
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:02
出力ファイル名=/u01/app/oracle/oradata/OSAKADB/control01.ctl
出力ファイル名=/u01/app/oracle/oradata/OSAKADB/control02.ctl
restoreを20-02-02で終了しました
メモリー・スクリプトの内容:
{
sql clone 'alter database mount standby database';
}
メモリー・スクリプトを実行しています
SQL文: alter database mount standby database
メモリー・スクリプトの内容:
{
set newname for tempfile 1 to
"/u01/app/oracle/oradata/OSAKADB/temp01.dbf";
set newname for tempfile 2 to
"/u01/app/oracle/oradata/OSAKADB/pdbseed/temp012020-02-02_03-58-25-069-AM.dbf";
set newname for tempfile 3 to
"/u01/app/oracle/oradata/OSAKADB/tokyodbpdb/temp01.dbf";
switch clone tempfile all;
set newname for datafile 1 to
"/u01/app/oracle/oradata/OSAKADB/system01.dbf";
set newname for datafile 3 to
"/u01/app/oracle/oradata/OSAKADB/sysaux01.dbf";
set newname for datafile 4 to
"/u01/app/oracle/oradata/OSAKADB/undotbs01.dbf";
set newname for datafile 5 to
"/u01/app/oracle/oradata/OSAKADB/pdbseed/system01.dbf";
set newname for datafile 6 to
"/u01/app/oracle/oradata/OSAKADB/pdbseed/sysaux01.dbf";
set newname for datafile 7 to
"/u01/app/oracle/oradata/OSAKADB/users01.dbf";
set newname for datafile 8 to
"/u01/app/oracle/oradata/OSAKADB/pdbseed/undotbs01.dbf";
set newname for datafile 9 to
"/u01/app/oracle/oradata/OSAKADB/tokyodbpdb/system01.dbf";
set newname for datafile 10 to
"/u01/app/oracle/oradata/OSAKADB/tokyodbpdb/sysaux01.dbf";
set newname for datafile 11 to
"/u01/app/oracle/oradata/OSAKADB/tokyodbpdb/undotbs01.dbf";
set newname for datafile 12 to
"/u01/app/oracle/oradata/OSAKADB/tokyodbpdb/users01.dbf";
restore
from nonsparse from service
'tokyodb' clone database
;
sql 'alter system archive log current';
}
メモリー・スクリプトを実行しています
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
制御ファイルで一時ファイル1の名前を/u01/app/oracle/oradata/OSAKADB/temp01.dbfに変更しました
制御ファイルで一時ファイル2の名前を/u01/app/oracle/oradata/OSAKADB/pdbseed/temp012020-02-02_03-58-25-069-AM.dbfに変更しました
制御ファイルで一時ファイル3の名前を/u01/app/oracle/oradata/OSAKADB/tokyodbpdb/temp01.dbfに変更しました
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
restoreを20-02-02で開始しています
チャネルORA_AUX_DISK_1の使用
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスtokyodbのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00001を/u01/app/oracle/oradata/OSAKADB/system01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:25
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスtokyodbのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00003を/u01/app/oracle/oradata/OSAKADB/sysaux01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:08
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスtokyodbのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00004を/u01/app/oracle/oradata/OSAKADB/undotbs01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:07
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスtokyodbのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00005を/u01/app/oracle/oradata/OSAKADB/pdbseed/system01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:03
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスtokyodbのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00006を/u01/app/oracle/oradata/OSAKADB/pdbseed/sysaux01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:03
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスtokyodbのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00007を/u01/app/oracle/oradata/OSAKADB/users01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:01
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスtokyodbのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00008を/u01/app/oracle/oradata/OSAKADB/pdbseed/undotbs01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:01
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスtokyodbのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00009を/u01/app/oracle/oradata/OSAKADB/tokyodbpdb/system01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:03
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスtokyodbのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00010を/u01/app/oracle/oradata/OSAKADB/tokyodbpdb/sysaux01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:04
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスtokyodbのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00011を/u01/app/oracle/oradata/OSAKADB/tokyodbpdb/undotbs01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:03
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスtokyodbのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00012を/u01/app/oracle/oradata/OSAKADB/tokyodbpdb/users01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:01
restoreを20-02-02で終了しました
SQL文: alter system archive log current
メモリー・スクリプトの内容:
{
switch clone datafile all;
}
メモリー・スクリプトを実行しています
データファイル1はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=5 スタンプ=1031304112 ファイル名=/u01/app/oracle/oradata/OSAKADB/system01.dbf
データファイル3はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=6 スタンプ=1031304112 ファイル名=/u01/app/oracle/oradata/OSAKADB/sysaux01.dbf
データファイル4はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=7 スタンプ=1031304112 ファイル名=/u01/app/oracle/oradata/OSAKADB/undotbs01.dbf
データファイル5はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=8 スタンプ=1031304112 ファイル名=/u01/app/oracle/oradata/OSAKADB/pdbseed/system01.dbf
データファイル6はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=9 スタンプ=1031304112 ファイル名=/u01/app/oracle/oradata/OSAKADB/pdbseed/sysaux01.dbf
データファイル7はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=10 スタンプ=1031304112 ファイル名=/u01/app/oracle/oradata/OSAKADB/users01.dbf
データファイル8はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=11 スタンプ=1031304112 ファイル名=/u01/app/oracle/oradata/OSAKADB/pdbseed/undotbs01.dbf
データファイル9はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=12 スタンプ=1031304112 ファイル名=/u01/app/oracle/oradata/OSAKADB/tokyodbpdb/system01.dbf
データファイル10はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=13 スタンプ=1031304112 ファイル名=/u01/app/oracle/oradata/OSAKADB/tokyodbpdb/sysaux01.dbf
データファイル11はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=14 スタンプ=1031304112 ファイル名=/u01/app/oracle/oradata/OSAKADB/tokyodbpdb/undotbs01.dbf
データファイル12はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=15 スタンプ=1031304112 ファイル名=/u01/app/oracle/oradata/OSAKADB/tokyodbpdb/users01.dbf
Duplicate Dbを20-02-02で終了しました
● スタンバイ制御ファイル作成
プライマリDBから、スタンバイ制御ファイルを作成し、スタンバイDBで使用するように配置します
1) スタンバイ制御ファイル作成
RMAN> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/tokyo.ctl';
文が処理されました
2) プライマリ・システムからスタンバイ・システムへファイルを転送
[root@tokyo-db-inst01 tmp]# scp -i ~/id_rsa -p /tmp/tokyo.ctl opc@168.138.46.251:/tmp/
tokyo.ctl 100% 18MB 65.5MB/s 00:00
[root@osaka-db-inst01 oradata]# chown oracle:dba /tmp/tokyo.ctl
3) スタンバイ制御ファイル配置
初期化パラメータ control_filesと同じ数分、同じ場所へ配置します
[root@osaka-db-inst01 oradata]# cp -p /tmp/tokyo.ctl /u01/app/oracle/oradata/OSAKADB/control01.ctl
[root@osaka-db-inst01 oradata]# cp -p /tmp/tokyo.ctl /u01/app/oracle/oradata/OSAKADB/control02.ctl
[root@osaka-db-inst01 oradata]# ls -la /u01/app/oracle/oradata/OSAKADB/contro*
-rw-r-----. 1 oracle dba 18726912 2月 2 11:36 /u01/app/oracle/oradata/OSAKADB/control01.ctl
-rw-r-----. 1 oracle dba 18726912 2月 2 11:36 /u01/app/oracle/oradata/OSAKADB/control02.ctl
●フィジカル・スタンバイ・データベース起動
1) osakadbをMOUNT
[oracle@osaka-db-inst01 OSAKADB]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on 日 2月 2 11:44:54 2020
Version 19.5.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.5.0.0.0
に接続されました。
SYS@osakadb SQL> shutdown abort
ORACLEインスタンスがシャットダウンされました。
SYS@osakadb SQL> startup mount
ORACLEインスタンスが起動しました。
Total System Global Area 9428793296 bytes
Fixed Size 9144272 bytes
Variable Size 1476395008 bytes
Database Buffers 7918845952 bytes
Redo Buffers 24408064 bytes
データベースがマウントされました。
2) REDO Applyの開始
SYS@osakadb SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
データベースが変更されました。
● フィジカル・スタンバイ・データベースが正しく実行されているかどうかの確認
スタンバイ・データベースで、V$DATAGUARD_PROCESSビューを問い合せて、REDOがプライマリ・データベースから送信され、スタンバイ・データベースに適用されていることを確認します。
1) スタンバイへ適用されているarchive redo SEQUENCE#を確認
SYS@tokyodb 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
gap manager 1 36 IDLE
redo transport timer 0 0 IDLE
archive local 0 0 IDLE
async ORL multi 1 36 WRITING
heartbeat redo informer 0 0 IDLE
archive redo 0 0 IDLE
FAL announce 0 0 IDLE
archive redo 1 35 CLOSING
controlfile update 0 0 IDLE
11行が選択されました。
2) Log Switch 実行
SYS@tokyodb SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
システムが変更されました。
SYS@tokyodb SQL> /
システムが変更されました。
SYS@tokyodb SQL> /
システムが変更されました。
SYS@tokyodb SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# FIRST_TI NEXT_TIM APPLIED
---------- -------- -------- ---------
12 20-02-02 20-02-02 YES
13 20-02-02 20-02-02 YES
・・・
38 20-02-02 20-02-02 YES
38 20-02-02 20-02-02 YES
39 20-02-02 20-02-02 YES
39 20-02-02 20-02-02 YES
3) スタンバイへ適用されているarchive redo SEQUENCE#を確認
SYS@tokyodb 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
gap manager 1 39 IDLE
redo transport timer 0 0 IDLE
archive local 0 0 IDLE
async ORL multi 1 39 WRITING
heartbeat redo informer 0 0 IDLE
archive redo 0 0 IDLE
archive redo 1 38 CLOSING
controlfile update 0 0 IDLE
10行が選択されました。
・ ARCHIVED_LOG SEQUENCE# 確認
スタンバイへ適用されている Archive redo SEQUENCE番号 を V$ARCHIVED_LOG で確認
SYS@osakadb SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# FIRST_TI NEXT_TIM APPLIED
---------- -------- -------- ---------
30 20-02-02 20-02-02 YES
31 20-02-02 20-02-02 YES
32 20-02-02 20-02-02 YES
33 20-02-02 20-02-02 YES
34 20-02-02 20-02-02 YES
35 20-02-02 20-02-02 YES
36 20-02-02 20-02-02 YES
37 20-02-02 20-02-02 YES
38 20-02-02 20-02-02 YES
39 20-02-02 20-02-02 YES
4) Log Switch 実行したときの Alert Log確認
・ tokyodb Alert Log
[oracle@tokyo-db-inst01 oracle]$ tail -f /u01/app/oracle/diag/rdbms/tokyodb/tokyodb/trace/alert_tokyodb.log
ALTER SYSTEM ARCHIVE LOG
2020-02-02T12:09:16.144759+00:00
Thread 1 advanced to log sequence 37 (LGWR switch)
Current log# 1 seq# 37 mem# 0: /u01/app/oracle/oradata/TOKYODB/redo01.log
2020-02-02T12:09:16.214602+00:00
NET (PID:8796): Archived Log entry 31 added for T-1.S-36 ID 0x8e281599 LAD:1
2020-02-02T12:09:16.347855+00:00
TT02 (PID:8807): SRL selected for T-1.S-37 for LAD:2
2020-02-02T12:09:17.291780+00:00
ALTER SYSTEM ARCHIVE LOG
2020-02-02T12:09:17.304383+00:00
Thread 1 cannot allocate new log, sequence 38
Checkpoint not complete
Current log# 1 seq# 37 mem# 0: /u01/app/oracle/oradata/TOKYODB/redo01.log
2020-02-02T12:09:18.925992+00:00
Thread 1 advanced to log sequence 38 (LGWR switch)
Current log# 2 seq# 38 mem# 0: /u01/app/oracle/oradata/TOKYODB/redo02.log
2020-02-02T12:09:18.997710+00:00
NET (PID:8796): Archived Log entry 33 added for T-1.S-37 ID 0x8e281599 LAD:1
2020-02-02T12:09:19.004989+00:00
ALTER SYSTEM ARCHIVE LOG
2020-02-02T12:09:19.053334+00:00
Thread 1 advanced to log sequence 39 (LGWR switch)
Current log# 3 seq# 39 mem# 0: /u01/app/oracle/oradata/TOKYODB/redo03.log
2020-02-02T12:09:19.131073+00:00
TT02 (PID:8807): SRL selected for T-1.S-39 for LAD:2
2020-02-02T12:09:19.133549+00:00
NET (PID:8796): Archived Log entry 35 added for T-1.S-38 ID 0x8e281599 LAD:1
2020-02-02T12:09:19.315747+00:00
ARC1 (PID:8805): SRL selected for T-1.S-38 for LAD:2
・ osakadb Alert Log
[root@osaka-db-inst01 trace]# tail -f /u01/app/oracle/diag/rdbms/osakadb/osakadb/trace/alert_osakadb.log
020-02-02T12:09:16.343387+00:00
rfs (PID:8816): Selected LNO:5 for T-1.S-37 dbid 2384963737 branch 1031284251
2020-02-02T12:09:16.391802+00:00
ARC0 (PID:8738): Archived Log entry 7 added for T-1.S-36 ID 0x8e281599 LAD:1
2020-02-02T12:09:16.413934+00:00
PR00 (PID:8769): Media Recovery Waiting for T-1.S-37 (in transit)
2020-02-02T12:09:16.426051+00:00
Recovery of Online Redo Log: Thread 1 Group 5 Seq 37 Reading mem 0
Mem# 0: /u01/app/oracle/oradata/OSAKADB/slog2.rdo
2020-02-02T12:09:19.126588+00:00
rfs (PID:8816): Selected LNO:4 for T-1.S-39 dbid 2384963737 branch 1031284251
2020-02-02T12:09:19.203522+00:00
ARC0 (PID:8738): Archived Log entry 8 added for T-1.S-37 ID 0x8e281599 LAD:1
2020-02-02T12:09:19.230324+00:00
PR00 (PID:8769): Media Recovery Waiting for T-1.S-38
2020-02-02T12:09:19.311491+00:00
rfs (PID:8893): Selected LNO:5 for T-1.S-38 dbid 2384963737 branch 1031284251
2020-02-02T12:09:19.457898+00:00
ARC0 (PID:8738): Archived Log entry 9 added for T-1.S-38 ID 0x8e281599 LAD:1
2020-02-02T12:09:20.378674+00:00
PR00 (PID:8769): Media Recovery Log /u01/app/oracle/flash_recovery_area/OSAKADB/archivelog/2020_02_02/o1_mf_1_38_h3fgzhf4_.arc
PR00 (PID:8769): Media Recovery Waiting for T-1.S-39 (in transit)
2020-02-02T12:09:20.508528+00:00
Recovery of Online Redo Log: Thread 1 Group 4 Seq 39 Reading mem 0
Mem# 0: /u01/app/oracle/oradata/OSAKADB/slog1.rdo
■ リアル・タイム・アプライ(Active Data Gurd)
スタンバイDBは OPENして、SELECT文を実行できるRead Replicaとして利用できます。
プライマリDBで作成されたテーブルがスタンバイDBへ伝搬されSELECTできることを確認します
1) スタンバイDBをOPENしてRedo Apply
SYS@osakadb SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
データベースが変更されました。
SYS@osakadb SQL> ALTER DATABASE OPEN;
データベースが変更されました。
SYS@osakadb SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
データベースが変更されました。
-- REDOがプライマリ・データベースから送信され、スタンバイ・データベースに適用されていることを確認
SQL> SELECT CLIENT_PROCESS, PROCESS, THREAD#, SEQUENCE#, STATUS FROM V$MANAGED_STANDBY WHERE CLIENT_PROCESS='LGWR' OR PROCESS='MRP0' order by THREAD#;
CLIENT_P PROCESS THREAD# SEQUENCE# STATUS
-------- --------- ---------- ---------- ------------
LGWR RFS 1 2715 RECEIVING
N/A MRP0 1 2715 APPLYING_LOG
2) プライマリDBでテーブル作成
SYS@tokyodb SQL> CREATE TABLE test_table1 (id number(3), name varchar2(10)) TABLESPACE USERS;
Table created.
SYS@tokyodb SQL> INSERT INTO test_table1 VALUES (1,'AAA');
SYS@tokyodb SQL> commit;
Commit complete.
SYS@tokyodb SQL> select * from test_table1;
ID NAME
---------- ----------
1 AAA
3) スタンバイDBでプライマリDBのトランザクション伝搬確認
スタンバイDBをOPENして、プライマリDB側で作成したテーブルtest_table1が伝搬されてSELECTできることを確認
SYS@osakadb SQL> select * from test_table1;
ID NAME
---------- ----------
1 AAA
■ SWITCH OVER
WITCH OVERしてtokyodbがスタンバイDB,osakadbがプライマリDBになり、
osakadbからのトランザクションがtokyodbに伝搬されることを確認
1) プライマリDB(tokyodb)停止してMOUNT
SYS@tokyodb SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
TO STANDBY
SYS@tokyodb SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
データベースが変更されました。
SYS@tokyodb SQL> STARTUP MOUNT;
ORACLEインスタンスが起動しました。
Total System Global Area 9428793296 bytes
Fixed Size 9144272 bytes
Variable Size 1476395008 bytes
Database Buffers 7918845952 bytes
Redo Buffers 24408064 bytes
データベースがマウントされました。
2) スタンバイDB(osakadb)でSwitch OverしプライマリDBへ移行
SYS@osakadb SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
SYS@osakadb SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
データベースが変更されました。
SYS@osakadb SQL> ALTER DATABASE OPEN;
データベースが変更されました。
3) スタンバイDB(tokyodb)をOPENしてRedo Apply
SYS@tokyodb SQL> ALTER DATABASE OPEN;
データベースが変更されました。
SYS@tokyodb SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
データベースが変更されました。
4) プライマリDB(osakadb)でトランザクション発行
SYS@osakadb SQL> INSERT INTO test_table1 VALUES (2,'BBB');
1行が作成されました。
SYS@osakadb SQL> commit;
コミットが完了しました。
SYS@osakadb SQL> select * from test_table1;
ID NAME
---------- ----------
1 AAA
2 BBB
5) スタンバイDB(tokyodb)でプライマリDB(osakadb)のトランザクション伝搬確認
SYS@tokyodb SQL> select * from test_table1;
ID NAME
---------- ----------
1 AAA
2 BBB
■ Snapshot Standby Database
スナップショット・スタンバイ・データベースは完全に更新可能なスタンバイ・データベースです。これは、プライマリ・データベースからREDOデータを受信およびアーカイブしますが、適用はしません。
そのため、プライマリDBが切り離された状態であるため、検証用途として利用できます。復旧はスナップショット・スタンバイ・データベースからフィジカル・スタンバイ・データベースへ変更すると自動でFLASH BACK機能によりDB時間が戻り溜まったREDOを適用していきます。
● Snapshot Standby Database有効化
1) Redo Apply停止
SYS@tokyodb SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
データベースが変更されました。
2) Snapshot Standby Database有効化
SYS@tokyodb SQL> ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
データベースが変更されました。
SYS@tokyodb SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
SNAPSHOT STANDBY MOUNTED
3) Snapshot Standby Database READ WRITEモードでOPEN
SYS@tokyodb SQL> ALTER DATABASE OPEN READ WRITE;
データベースが変更されました。
SYS@tokyodb SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
SNAPSHOT STANDBY READ WRITE
4) トランザクション発行テスト
SYS@tokyodb SQL> select * from test_table1;
ID NAME
---------- ----------
1 AAA
2 BBB
SYS@tokyodb SQL> INSERT INTO test_table1 VALUES (10,'OOO');
1行が作成されました。
SYS@tokyodb SQL> INSERT INTO test_table1 VALUES (11,'PPP');
1行が作成されました。
SYS@tokyodb SQL> INSERT INTO test_table1 VALUES (12,'QQQ');
1行が作成されました。
SYS@tokyodb SQL> INSERT INTO test_table1 VALUES (13,'RRR');
1行が作成されました。
SYS@tokyodb SQL> select * from test_table1;
ID NAME
---------- ----------
1 AAA
2 BBB
10 OOO
11 PPP
12 QQQ
13 RRR
6行が選択されました。
SYS@tokyodb SQL> commit;
コミットが完了しました。
● Snapshot Standby Databaseから Physical standby databaseへ変換
フィジカル・スタンバイ・データベースからスナップショット・スタンバイ・データベースへ戻します
※ RAC構成の場合は、1NodeのみMOUNTして、Physical standby databaseへ変換する必要があり、変更後Active Data Guardで全Node Openできます
1) スタンバイDB 停止
SYS@tokyodb SQL> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
2) スタンバイDB MOUNT
SYS@tokyodb SQL> STARTUP MOUNT
ORACLEインスタンスが起動しました。
Total System Global Area 9428793296 bytes
Fixed Size 9144272 bytes
Variable Size 1476395008 bytes
Database Buffers 7918845952 bytes
Redo Buffers 24408064 bytes
データベースがマウントされました。
3) Physical standby databaseへ変換
SYS@tokyodb SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
データベースが変更されました。
4) Physical standby database起動
SYS@tokyodb SQL> ALTER DATABASE OPEN;
データベースが変更されました。
5) Redo Apply適用
SYS@tokyodb SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
データベースが変更されました。
SYS@tokyodb SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY READ ONLY WITH APPLY
6) test_table1データ確認
スナップショット・スタンバイ・データベース時に発行したトランザクションが初期化されていることを確認
SYS@tokyodb SQL> select * from test_table1;
ID NAME
---------- ----------
1 AAA
2 BBB
■ Standby DB の REDO適用遅延(LAG)確認
V$DATAGUARD_STATSは、スタンバイ・データベース上での問合せに対して、Oracle Data Guardメトリックに関する情報を示します。
SQL> select name,value,time_computed,unit from v$dataguard_stats;
NAME VALUE TIME_COMPUTED UNIT
-------------------------------- ---------------------------------------------------------------- ------------------------------ ------------------------------
transport lag +00 00:00:00 02/02/2020 18:49:03 day(2) to second(0) interval
apply lag +00 00:00:00 02/02/2020 18:49:03 day(2) to second(0) interval
apply finish time +00 00:00:00.000 02/02/2020 18:49:03 day(2) to second(3) interval
estimated startup time 22 02/02/2020 18:49:03 second
■ 参考
● Market Place
・Oracle Database
・Oracle Cloud Marketplace Home
● Doucuments
・Oracle Database Documentation
・フィジカル・スタンバイ・データベースの作成
・SQL*Plus®ユーザーズ・ガイドおよびリファレンス
・フィジカルおよびスナップショット・スタンバイ・データベースの管理
● Data Guard
・Data Guard
・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のベスト・プラクティス