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

■Remote Peering構成の設定
Remote Peeringは以前の記事を参考に設定します。
・参考:Oracle Cloud:リージョン間をRemote Peering(バックボーン接続) してみた
■Computeインスタンス作成
Oracle Cloud Market Place にOracle Databaseがあるのでこれを使用します。
大阪リージョン、東京リージョン両方同じに作成します
① Compute > Instances から[Create Instance]をクリック
② Browse All Imageから Oracle Databaseを選択
③ 必要情報を入力し、[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ユーザーパスワード |
① /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
② 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を間違えない様に以下を設定しときます。
① 設定
[oracle@tokyo-db-inst01 ~]$ vi $ORACLE_HOME/sqlplus/admin/glogin.sql
set sqlprompt '&_USER@&_connect_identifier SQL> '
set pages 1000
② 設定確認
各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するには、rhice 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バックアップ(データファイルのコピー、制御ファイルのコピー、バックアップ・ピース、制御ファイルの自動バックアップ)
アーカイブ・ログ
フラッシュバック・ログ
① 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
② 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';
システムが変更されました。
③ BLOCK CHANGE TRACKING有効化
SYS@tokyodb SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
データベースが変更されました。
④ DB停止
SYS@tokyodb SQL> SHUTDOWN IMMEDIATE;
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
⑤ 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
データベースがマウントされました。
⑥ ARCHIVELOGモード有効化
SYS@tokyodb SQL> ALTER DATABASE ARCHIVELOG;
データベースが変更されました。
⑦ FLASHBACKモード有効化
SYS@tokyodb SQL> ALTER DATABASE FLASHBACK ON;
データベースが変更されました。
⑧ DB OPEN
SYS@tokyodb SQL> ALTER DATABASE OPEN;
データベースが変更されました。
⑨ 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
⑩ 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が閉じられているため開けときます
① 事前確認
[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:
② 1521/tcp Port設定
[root@osaka-db-inst01 opc]# firewall-cmd --add-port=1521/tcp --zone=public --permanent
success
③ 設定反映
[root@osaka-db-inst01 opc]# firewall-cmd --reload
success
④ 設定確認
[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
① 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;
システムが変更されました。
② 設定反映
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
データベースがマウントされました。
データベースがオープンされました。
③ 設定パラメーター確認
設定されたパラメータを 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用初期化パラメータを作成します。
① osakadb用初期化パラメーター作成
SYS@tokyodb SQL> CREATE PFILE='/tmp/initosakadb.ora' FROM SPFILE;
ファイルが作成されました。
② 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'
③ 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
④ スタンバイ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
⑤ スタンバイDB 事前準備
スタンバイDBを起動するには、事前に必要なディレクトリを作成しておきます。
・flash_recovery_areaディレクトリ作成
[oracle@osaka-db-inst01 ~]$ mkdir /u01/app/oracle/flash_recovery_area
⑥ スタンバイ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
⑥ リスナーへ起動DB情報登録
リスナーへの起動DB情報はDB起動直後では登録されないため、手動登録しときます
SYS@osakadb SQL> alter system register;
システムが変更されました。
⑦ リスナー情報確認
[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を作成します
① 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で使用するように配置します
① スタンバイ制御ファイル作成
RMAN> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/tokyo.ctl';
文が処理されました
② プライマリ・システムからスタンバイ・システムへファイルを転送
[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
③ スタンバイ制御ファイル配置
初期化パラメータ 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
●フィジカル・スタンバイ・データベース起動
① 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
データベースがマウントされました。
② REDO Applyの開始
SYS@osakadb SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
データベースが変更されました。
● フィジカル・スタンバイ・データベースが正しく実行されているかどうかの確認
スタンバイ・データベースで、V$DATAGUARD_PROCESSビューを問い合せて、REDOがプライマリ・データベースから送信され、スタンバイ・データベースに適用されていることを確認します。
① スタンバイへ適用されている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行が選択されました。
② 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
③ スタンバイへ適用されている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行が選択されました。
・スタンバイへ適用されている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
④ 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できることを確認します
① スタンバイ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
② プライマリ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
③ スタンバイ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に伝搬されることを確認
① プライマリ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
データベースがマウントされました。
② スタンバイ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;
データベースが変更されました。
③ スタンバイDB(tokyodb)をOPENしてRedo Apply
SYS@tokyodb SQL> ALTER DATABASE OPEN;
データベースが変更されました。
SYS@tokyodb SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
データベースが変更されました。
④ プライマリ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
⑤ スタンバイ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有効化
① Redo Apply停止
SYS@tokyodb SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
データベースが変更されました。
② 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
③ 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
④ トランザクション発行テスト
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できます
① スタンバイDB 停止
SYS@tokyodb SQL> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
② スタンバイ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
データベースがマウントされました。
③ Physical standby databaseへ変換
SYS@tokyodb SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
データベースが変更されました。
④ Physical standby database起動
SYS@tokyodb SQL> ALTER DATABASE OPEN;
データベースが変更されました。
⑤ 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
⑥ 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
● マニュアル
・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のベスト・プラクティス