LoginSignup
22
13

Oracle Cloud: 東京-大阪リージョン間で手動Data Guardしてみてみた

Last updated at Posted at 2020-02-03

■大阪リージョン

Oracle Cloud 大阪リージョンがオープンしました。
またいつのまにか、メルボルン(オーストラリア)、ジェッダ(サウジアラビア)、モントリオール(カナダ)、アムステルダム(オランダ)もオープンしています。
大阪リージョンができたことにより、日本国内、東京ー大阪間で容易にDR構成をとり、法的管轄外から機密データをホストせず、コンプライアンス準拠に対応することができます。
ということで、東京ー大阪間をRemoe Peering でセキュアにバックボーン接続し、Data Guardしてみてみます。

● Data Guard
Oracle Data Guardによって、これらのスタンバイ・データベースが本番データベースの同期コピーとして保持されます。
これらのスタンバイ・データベースは、本番データベース・センターから数千マイルも離れたリモート障害時リカバリ・サイトに配置でき、同じ都市、構内、もしくはビルにも配置できます。
計画停止または計画外停止が原因で本番データベースが使用不可になった場合、スタンバイ・データベースを本番ロールに切り替え、その停止に起因する停止時間を最小限に抑えて、データ損失を防止できます。
また、Active Data Guardの機能により、スタンバイ・データベース有効活用としてソース集中型のバックアップおよびレポート生成操作をスタンバイ・システムにオフロードすることで、本番データベースのパフォーマンスを改善し向上できます。

■構成

NW構成.png 今回のData Guardは勉強のために、IaaSのMarket Placeを利用してData Guardを手動で作成します。

■Remote Peering構成の設定

Remote Peeringは以前の記事を参考に設定します。
・参考:Oracle Cloud:リージョン間をRemote Peering(バックボーン接続) してみた

■Computeインスタンス作成

Oracle Cloud Market Place にOracle Databaseがあるのでこれを使用します。
大阪リージョン、東京リージョン両方同じに作成します

① Compute > Instances から[Create Instance]をクリック
01_DB作成00.png

② Browse All Imageから Oracle Databaseを選択
01_DB作成01.png

③ 必要情報を入力し、[Creaate]を実行
作成は数分で完了します。

01_DB作成02.png 01_DB作成03.png 01_DB作成04.png 01_DB作成05.png 01_DB作成06.png

■ 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のベスト・プラクティス

22
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
13