Data Guard Brokerの検証および構成

Netcatのtnspingおよびpingを使用して、Oracle Database Exadata Cloud ServiceとオンプレミスのOracle Exadata Database Machine間の接続を確認します。

Oracle Data Guard Brokerは、Data Guard構成の作成、メンテナンスおよび監視を自動化および集中化する分散管理フレームワークです。

ブローカの使いやすいインタフェース(ブローカのグラフィカル・ユーザー・インタフェース(GUI)であるOracle Enterprise ManagerのData Guard管理ページおよびDGMGRLと呼ばれるData Guardコマンドライン・インタフェース)を使用して、すべての管理操作をローカルまたはリモートで実行できます。

ソースおよびスタンバイExadataシステムの接続

ソースおよびスタンバイのExadataシステムをOracle Data Guard Broker構成に接続し、NetCat、TNS Ping UtilityおよびPingを使用して両方向の接続を確認します。

このステップでは、オンプレミス・プライマリ・データベースが既存のData Guard Broker構成の一部ではないことを前提としています。

  1. オンプレミス・プライマリ・データベースがすでに既存のData Guard Broker構成の一部であるかどうかを確認します。
    SQL> select decode(count(1),0,'NOCONFIG') from v$DG_BROKER_CONFIG;
    NOCONFIG以外の値は、既存のブローカ構成を意味します。オンプレミス・データベースに既存のブローカ構成がある場合、管理者はブローカの知識があり、新しいスタンバイ・データベースを既存のブローカ構成に追加する方法がわかっていることを前提としています。

    既存のブローカ構成がない場合は、次のステップを実行します。

  2. デフォルト・リスナーの名前がLISTENERであることを確認します。
    $lsnrctl show current_listener | grep Current Listener

    出力は次のようになります。

    Current Listener is LISTENER
  3. オンプレミス・マシンから次のコマンドを実行して、リスナー・ポートを確認します。期待される結果が示されています。
    [oracle@exa11db01 bin]$ ./lsnrctl status | grep 'Connecting'

    出力は次のようになります。

    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=10.136.74.2)(PORT=1521))
  4. オンプレミスOracle Exadata Database Machineで、NetCatを使用してスタンバイOracle Database Exadata Cloud Serviceに接続し、接続を検証します。
    [oracle@exa11db01 bin]$ nc -v 10.255.195.131 1521

    出力は次のようになります。

    Ncat: Version 7.50 (https://nmap.org/ncat )
    Ncat: Connected to 10.255.195.131:1521.
  5. オンプレミスOracle Exadata Database Machineで、TNS Ping Utility for Linuxを使用してスタンバイOracle Database Exadata Cloud Serviceに接続し、接続を検証します。
    [oracle@exa11db01 bin]$ tnsping DB1_phx3g7

    出力は次のようになります。

    TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 23-JAN-2021 
    19:46:55
    Copyright (c) 1997, 2020, Oracle.  All rights reserved.
    Used parameter files:
    /u01/app/oracle/product/19.0.0.0/dbhome_1/network/admin/sqlnet.ora
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (SDU=65536) (RECV_BUF_SIZE=134217728) 
    (SEND_BUF_SIZE=134217728) (ADDRESS_LIST = (FAILOVER=on) 
    (CONNECT_TIMEOUT=3)(RETRY_COUNT=3) (ADDRESS = (PROTOCOL = TCP)(HOST 
    =10.255.195.131)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) 
    (SERVICE_NAME = db11) (UR=A)))
    OK (40 msec)
  6. オンプレミスOracle Exadata Database Machineで、スタンバイOracle Database Exadata Cloud Serviceにpingを実行して接続を検証します。
    [oracle@exa11db01 bin]$ ping 10.255.195.131

    出力は次のようになります。

    PING 10.255.195.131 (10.255.195.131) 56(84) bytes of data.
    64 bytes from 10.255.195.131: icmp_seq=1 ttl=60 time=19.7 ms
    64 bytes from 10.255.195.131: icmp_seq=2 ttl=60 time=19.6 ms
    64 bytes from 10.255.195.131: icmp_seq=3 ttl=60 time=19.5 ms
    ^C
    --- 10.255.195.131 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2003ms
    rtt min/avg/max/mdev = 19.521/19.633/19.718/0.141 ms
  7. Oracle Database Exadata Cloud Serviceで、NetCatを使用してオンプレミスのOracle Exadata Database Machineに接続し、接続を検証します。
    [oracle@exacs82-vm3sv1 ~]$ nc -v 10.136.74.2

    出力は次のようになります。

    -bash: nc: command not found
  8. Oracle Database Exadata Cloud Serviceで、TNS Ping Utility for Linuxを使用してオンプレミスのOracle Exadata Database Machineに接続し、接続を検証します。
    [oracle@exacs82-vm3sv1 ~]$ tnsping db1

    出力は次のようになります。

    TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 23-JAN-2021 
    19:53:02
    Copyright (c) 1997, 2020, Oracle.  All rights reserved.
    Used parameter files:
    /u02/app/oracle/product/19.0.0.0/dbhome_5/network/admin/DB1/sqlnet.ora
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (SDU=65536) (RECV_BUF_SIZE=134217728) 
    (SEND_BUF_SIZE=134217728) (ADDRESS_LIST = (FAILOVER=on) 
    (CONNECT_TIMEOUT=3)(RETRY_COUNT=3) (ADDRESS = (PROTOCOL = TCP)(HOST = 
    10.136.74.2)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = 
    db11) (UR=A)))
    OK (40 msec)
  9. Oracle Database Exadata Cloud Serviceで、オンプレミスOracle Exadata Database Machineにpingを実行して接続を検証します。
    [oracle@exacs82-vm3sv1 ~]$ ping 10.136.74.2

    出力は次のようになります。

    PING 10.136.74.2 (10.136.74.2) 56(84) bytes of data.
    64 bytes from 10.136.74.2: icmp_seq=1 ttl=60 time=18.6 ms
    64 bytes from 10.136.74.2: icmp_seq=2 ttl=60 time=18.6 ms
    64 bytes from 10.136.74.2: icmp_seq=3 ttl=60 time=18.5 ms
    64 bytes from 10.136.74.2: icmp_seq=4 ttl=60 time=18.4 ms
    ^C
    --- 10.136.74.2 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3003ms
    rtt min/avg/max/mdev = 18.442/18.574/18.665/0.162 ms

スタンバイExadataインスタンスからのデータファイルの削除

スクリプトを実行して、スタンバイ・データベースからデータファイルを削除します。

  1. Oracle Database Exadata Cloud Serviceインスタンスにログインします。
  2. データ・ファイルを削除するスクリプトを作成します。
    SQL> set heading off linesize 999 pagesize 0 feedback off trimspool on
    SQL> spool /tmp/files.lst
    SQL> select 'asmcmd rm '||name from v$datafile union all select 'asmcmd rm 
    '||name from v$tempfile union all select 'asmcmd rm '||member from 
    v$logfile;
    SQL> spool off
    SQL> create pfile='/tmp/ ORACLE_UNQNAME.pfile' from spfile;         
    SQL> exit
  3. Oracle Database Exadata Cloud Serviceインスタンスのデータベースを停止します。
    srvctl stop database -d DB1_phx3g7
  4. files.1stファイルを編集し、次の行を削除して、データ・ファイルを削除します。
    SQL> select 'asmcmd rm '||name from v$datafile union all select 'asmcmd rm 
    '||name from v$tempfile union all select 'asmcmd rm '||member from 
    v$logfile;
    SQL> spool off
  5. すべてのユーザーが読取り、書込みおよび実行できるようにファイル権限を変更します。
    chmod 777 /tmp/files.1st
  6. スクリプトを保存して実行します。
    ./tmp/files.lst
初期データベースのすべてのファイルが削除されます。

パスワード・ファイルのコピー

オンプレミスのExadataシステムでパスワード・ファイルを探し、そのファイルをOracle Database Exadata Cloud Serviceインスタンスにコピーします。オンプレミスのExadataシステムのパスワード・ファイルは、Oracle Automatic Storage Management (Oracle ASM)ディスクにあります。

  1. オンプレミス・データベースの現在の構成を確認し、出力を表示します。
    srvctl config database -d db1
    出力には、パスワード・ファイルが含まれます。
  2. oratabファイルを編集し、それにOracle ASMを追加します。
    vi /etc/oratab 
    db11:/u01/app/oracle/product/19.0.0.0/dbhome
    _1:N
    +ASM1:/u01/app/19.0.0.0/grid:N
  3. Oracle ASMコマンドライン・ユーティリティを使用して、パスワード・ファイルを取得します。
    asmcmd pwget --dbuniquename db1
    出力には、パスワード・ファイルが含まれます。
  4. Oracle ASMコマンドライン・ユーティリティにログインし、コマンドpwcopyを使用してパスワード・ファイルをローカル・ディスクにコピーします。
    出力には、パスワード・ファイルが含まれます。
  5. コマンドls -lrtを使用して、ファイルがローカル・ディスクにコピーされたことを確認します。
  6. SCPネットワーク・プロトコルを使用して、パスワード・ファイルをOracle Database Exadata Cloud Serviceインスタンスに保存します。
    scp -i Key.ssh -r pwddb1 opc@10.255.195.131:/tmp/pwddb1
  7. opcユーザーとしてOracle Database Exadata Cloud Serviceインスタンスにログインし、パスワード・ファイルのモードを777に変更します。
    chmod 777 /tmp/pwddb1
  8. su -oracleユーザーとしてOracle Database Exadata Cloud Serviceインスタンスにログインし、ディレクトリを表示します。
    sudo su - oracle
    ls -lrt
    source DB1.env
  9. Oracle ASMコマンドライン・ユーティリティを使用して、tmpフォルダからパスワード・ファイルを配置する$ORACLE_HOME/dbsにファイルをコピーします。
    ASMCMD> pwcopy --dbuniquename DB1_phx3g7 /tmp/pwddb1 +DATAC1/DB1_phx3g7/PASSWORD/passwd
    次のようなエラーメッセージが表示されます。これは、パスワードがすでに登録されているためです。
    ASMCMD-9453: failed to register password file as a CRS resource
    copying /u02/app/oracle/product/19.0.0.0/dbhome_5/dbs/pwddb1 -> +DATAC1/DB1_phx3g7/PASSWORD/passwd
    ASMCMD-9453: failed to register password file as a CRS resource
  10. Oracle ASMコマンドライン・ユーティリティを使用して、パスワード・ファイルがコピーされていることを確認します。
    ls -al