minamin's Blog

ゆるーく好きなモノ・興味あるコトについて書きます。技術系ネタは主にOracle DatabaseやCloudまわり。

OCI Database-VMでData Guard構成を作ってみた

この記事は「Oracle Cloud その2 Advent Calendar 2018 - Adventar」の12月23日の記事として書かれています。 記事の内容は執筆時(2018/12/23)のものであり、現在とは異なる可能性がありますので適宜最新状況をご確認ください。

ついに来ました!OCI Database - Virtual Machines(VM)の自動Data Guard構成対応!

Release Notes : Data Guard for virtual machine DB systems (2018/12/14)

Oracle Cloud Infrastructure Database (OCI Database) の自動Data Guard構成

そもそもData Guardって?

Oracle Databaseの機能で、主にデータ保護を目的としたデータベースの自動同期(レプリケーション)機能です。何かあった場合にきちんと切り替えられるように、データの変更情報を元に同期を行うので、ブロックそのものをレプリケーションして破損ブロックまでそのまま伝搬しないような仕組みや、レプリケーション元(プライマリ)・先(スタンバイ)に対して正常なブロックかをチェックしながらレプリケーションを行うことが可能です。Active Data Guardを使うと、スタンバイ側を参照専用で利活用することができます。

どんな構成がとれるの?

OCI Database VMでData Guardを自動構成する場合には、

  • プライマリ・データベースに紐づけられるスタンバイ・データベースは1つ(1対1)。もっと多くのスタンバイ・データベースを紐づけたい場合には、手動でスタンバイ・データベースを作成することで構成可能です。

  • プライマリ・データベースのDBシステムと同一のアベイラビリティドメイン内でも異なるアベイラビリティドメインでも配置可能

f:id:minamin96:20181223125103p:plain


ということで、早速作ってみましょう

Data Guard 構成を作ってみる

0. 前提条件

マニュアルはこちら

  • 事前にプライマリ・データベースの環境を用意

    • エディションはEnterprise Edition以上
      • Active Data Guardを使いたい場合はEnterprise Edition - Extreme Performance
  • スタンバイ・データベース環境の条件

  • 2つのDB Systemが通信可能な状態

    • セキュリティ・リストでの通信制御の設定を確認
    • ポート(1521)を開けておく
      どちらも変更情報(REDO)を転送したり健全性をチェックしたりするのに必要です

スタンバイ・データベースを作る

マニュアルはこちら

1.プライマリ・データベースのDBシステム詳細ページを表示

まずプライマリ・データベースの DB System Detail のページのDatabaseの情報を表示します

f:id:minamin96:20181223092431p:plain
DB Systemsでプライマリ・データベースのDB Systemをクリック
f:id:minamin96:20181223092551p:plain
プライマリ・データベースのDB Systems Detail

2.Data Guard構成を有効化

右側にある・・・をクリックして、Enable Data Guardをクリック

f:id:minamin96:20181223092754p:plain
Enable Data Guard

3.スタンバイ・データベース環境の情報を入力

入力する内容は5項目だけ。

  • DISPLAY NAME - 任意の名前を入力
  • AVAILABILITY DOMAIN - 任意のアベイラビリティドメインを選択(今回はプライマリと別のアベイラビリティドメイン(AD2)を指定しています)
  • CLIENT SUBNET - 任意のクライアント・サブネットを選択
  • HOSTNAME PREFIX - 任意のホスト名を入力
  • DATABASE ADMIN PASSWORD - データベースの管理者パスワードを入力

その他の項目は、選択・入力ではなく情報として表示されます。

f:id:minamin96:20181223092909p:plain
スタンバイ・データベースの情報をいれてDBシステム作成
はい、終わりです。めちゃくちゃ簡単ですね。


出来上がった環境の状態を確認してみる

出来上がった環境の状態を、コマンドで確認してみます。

さきに結論まとめておくと、こんな構成

  • フィジカル・スタンバイ
  • 同期が開始している状態
  • 保護モードは最大パフォーマンスモード
  • Oracle Data Guard Brokerが有効
  • (Extream Performanceで作成した場合) Active Data Guard機能が使えるためRead-Only mode でのopen状態=参照可能な状態

・・・要は、全て設定済で、デフォルト構成でよければそのまま使える状態。

自動構成された環境は、Oracle Data Guard Brokerという、Data Guardの管理フレームワーク機能が有効な状態になります。これによって、簡単にData Guard構成の管理や転送・適用状況の情報が確認できます。

  • DGMGRL(Data Guard Brokerのコマンド・ユーティリティ)を使って、Data Guard構成を確認
[oracle@dgp ~]$ dgmgrl /
DGMGRL for Linux: Release 18.0.0.0.0 - Production on Sat Dec 22 12:13:54 2018
Version 18.2.0.0.0

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

Welcome to DGMGRL, type "help" for information.
Connected to "dgp_iad1k2"
Connected as SYSDG.
DGMGRL>  SHOW CONFIGURATION;

Configuration - dgp_iad1k2_dgp_iad26x

  Protection Mode: MaxPerformance
  Members:
  dgp_iad1k2 - Primary database
    dgp_iad26x - Physical standby database 

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS   (status updated 42 seconds ago)
  • スタンバイ・データベースの情報(REDO転送・適用情報など)を確認
DGMGRL> show database dgp_iad26x

Database - dgp_iad26x

  Role:               PHYSICAL STANDBY
  Intended State:     APPLY-ON
  Transport Lag:      0 seconds (computed 4 seconds ago)
  Apply Lag:          0 seconds (computed 4 seconds ago)
  Average Apply Rate: 8.00 KByte/s
  Real Time Query:    ON
  Instance(s):
    dgp

Database Status:
SUCCESS

ここまで自動で構成・設定するのは、手動だと慣れていない人はけっこう大変だと思います。大体REDO転送の設定で皆さんはまりがち。 手動(コマンド)でのData Guard構成作成の速さだけは自信があるので手動構築も好きですが、ここまで設定された状態で使い始められるのは本当に楽だと思います。

*1:テナントの中を仕切る区切り

*2:独立し高い信頼性でデザインされた、リージョンのサブコンポーネント

*3:単一のアベイラビリティドメイン内の異なる物理ハードウェア上にコンピューティング・インスタンスを分散させるための仕組み