[Oracle Cloud] Hybrid Data GuardをDBCS同士で構築してみた

本記事の目的

オンプレミスにあるOracle DatabaseとOracle CloudにあるDBCSとの間でData Guardを構築する手順は、Hybrid Data Guardと呼ばれており以下のホワイトペーパーが公開されています。

Hybrid Data Guard to Oracle Cloud Infrastructure オンプレミスの本番データベースとOracle Cloud InfrastructureのDBaaS BMまたはVMシェイプを使用したディザスタ・リカバリ

今回は検証目的でプライマリとスタンバイの両方をDBCSで用意して、Hybrid Data Guardの手順を確認してみました。

 

なお、DBCS同士でのData Guardに関してはPaaSの機能が提供されておりコンソールから簡単に構築・管理できるので、基本的にはHybrid Data Guardを利用する必要はありません。手動で構築するのに比べて圧倒的に手軽なので、もしご存知ない方は是非そちらの機能もチェックしてみてください。

 

 

構築手順の流れ

ホワイトペーパーより、抜粋。

データベース、OS環境、およびネットワークの前提条件

手順1:DBシステムのVMまたはBMを作成する
手順2:ツールを使用して、作成済みのデータベースを手動で削除する
手順3:パスワード・ファイルをOCI DBaaSホストにコピーする
手順4:ウォレット・ファイルをOCI DBaaSホストにコピーする
手順5:静的リスナーを構成する
手順6:REDO転送用のオラクルのネットワーク暗号化とTNSエントリ
手順7:スタンバイ・データベースをインスタンス化する
手順8:tnsnames.oraにRACインスタンスを追加する(RACのみ)
手順9:Data Guard Brokerを構成する

 

 

構築検証メモ

基本的にはホワイトペーパーの手順に沿って構築すれば良いはず。ポイントだけ記載。

 

データベース、OS環境、およびネットワークの前提条件

前述の通り、今回はDBCS同士でのData Guard構築。

まずはプライマリDBをコンソールからプロビジョニング。

DBCS(VM)
Shape: 

 

前提条件にあわせて初期化パラメータの調整やスタンバイREDOログの作成などを実施。

一部メモ。

SQL> alter database flashback on;

SQL> alter system set STANDBY_FILE_MANAGEMENT='AUTO';

SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 SIZE 1073741824;
SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 SIZE 1073741824;
SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 SIZE 1073741824;
SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 SIZE 1073741824;
# 環境にあわせて調整すること。

 

 

手順1:DBシステムのVMまたはBMを作成する

スタンバイDBもコンソールからプロビジョニング。プライマリと同じDB_NAMEを付ける。

 

手順2~手順4

淡々と。

 

手順5:静的リスナーを構成する

複製する方法によっては、静的リスナーは必須ではない。

参考)Active Database Duplicateで静的リスナーが不要になっていた件

 

今回は簡略化のため手順スキップ。

 

 

手順6:REDO転送用のオラクルのネットワーク暗号化とTNSエントリ

ネットワーク暗号化に関しては、DBCSはデフォルトで有効化されているので、該当手順はスキップ。

TCPソケット・サイズもDBCSはデフォルトで推奨値が設定されている。

 

手順7:スタンバイ・データベースをインスタンス化する

プライマリDBからの複製手順は以下で実施。

$ rman target /
RMAN> startup nomount
RMAN> restore standby controlfile from service 'primary';
RMAN> alter database mount;
RMAN> restore database from service 'DB19C_NRT19D' section size 5G;

⇒複製時間はDBサイズに依存。今回は検証環境のため2分程度で終了。

 

・スタンバイDBをマウントモードで起動

RMAN> shutdown immediate

database dismounted
Oracle instance shut down

[oracle@dg02 ~]$ srvctl start database -d DB19C_NRT1GH -o mount
[oracle@dg02 ~]$ srvctl status database -d DB19C_NRT1GH
Instance db19c is running on node dg02

 

 

手順8:tnsnames.oraにRACインスタンスを追加する(RACのみ)

今回はシングル環境なので、スキップ。

 

手順9:Data Guard Brokerを構成する

プライマリとスタンバイそれぞれでDG Brokerを有効化

SQL> alter system set dg_broker_start=true;

 

プライマリサイトでdgmgrlを使用して、データベースの登録。

[oracle@dg01 dbs]$ dgmgrl sys@db19c_nrt19d
DGMGRL for Linux: Release 19.0.0.0.0 - Production on Sat May 1 22:36:36 2021
Version 19.10.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

Welcome to DGMGRL, type "help" for information.
Password:
Connected to "db19c_nrt19d"
Connected as SYSDBA.
DGMGRL> CREATE CONFIGURATION dgconfig AS PRIMARY DATABASE IS db19c_nrt19d CONNECT IDENTIFIER IS db19c_nrt19d;
Configuration "dgconfig" created with primary database "db19c_nrt19d"
DGMGRL> ADD DATABASE db19c_nrt1gh AS CONNECT IDENTIFIER IS db19c_nrt1gh MAINTAINED AS PHYSICAL;
Database "db19c_nrt1gh" added

DGMGRL> enable configuration;
Enabled.

 

・ステータス確認

正常に構築できれば、以下のようにステータス確認できるはず。

DGMGRL> show configuration;

Configuration - dgconfig

Protection Mode: MaxPerformance
Members:
db19c_nrt19d - Primary database
db19c_nrt1gh - Physical standby database

Fast-Start Failover: Disabled

Configuration Status:
SUCCESS (status updated 53 seconds ago)

 

TIPS

restore database from service

ホワイトペーパーでは上記コマンドを利用してDB複製しているが、duplicateコマンドの方が馴染みが多いのではないだろうか?

調べると、
Creating a Physical Standby database using RMAN restore database from service (Doc ID 2283978.1)
に以下の説明を発見。

About RMAN ‘FROM SERVICE’ clause

The RMAN ‘from service’ clause enables the restore and recover of primary database files to a standby database across the network. This functionality can be used to instantiate a standby database in lieu of the RMAN DUPLICATE DATABASE command and is more intuitive and less error prone thus saving time. Additionally, utilizing the SECTION SIZE clause with multiple RMAN channels improves the efficiency of parallelization of the restore, further improving instantiation times.

duplicateに比べて、より早くエラーも起きにくいとのことなので、ぜひ使っていきたい。

 

Data Guard関連のDB初期化パラメータ

ホワイトペーパーは説明が割愛されているのか、Data Guard構築の際に設定するDB初期化パラメータに関しての言及が少ない気がする。

必要にあわせて、追加設定するのが良さそう。

参考)3.1.4 プライマリ・データベースの初期化パラメータの設定

 

 

参考情報

Hybrid Data Guard to Oracle Cloud Infrastructure オンプレミスの本番データベースとOracle Cloud InfrastructureのDBaaS BMまたはVMシェイプを使用したディザスタ・リカバリ

アーキテクチャ・センター:オンプレミス・データベースのハイブリッドDRトポロジのデプロイ
流れはホワイトペーパーと同じようだが、こちらの方が説明が丁寧。構築検証後に発見。

Creating a Physical Standby database using RMAN restore database from service (Doc ID 2283978.1)

 

スポンサードリンク

1 Trackback / Pingback

  1. [Oracle Database] DGBrokerによるData Guard管理基本操作コマンド | | IT Edge Blog

Leave a Reply

Your email address will not be published.


*