ステップバイステップの導入手順
このページでは、 NetApp ONTAP ストレージ上の Oracle19c の自動データ保護について説明します。
AWX/Tower Oracle データ保護
環境のインベントリ、グループ、ホスト、クレデンシャルを作成します
このセクションでは、ネットアップの自動化ソリューションを使用する環境を準備するための AWX/Ansible タワーでのインベントリ、グループ、ホスト、アクセスクレデンシャルのセットアップについて説明します。
-
インベントリを設定します。
-
リソース→インベントリ→追加と進み、インベントリの追加をクリックします。
-
名前と組織の詳細を入力し、 [ 保存 ] をクリックします。
-
インベントリページで、作成されたインベントリをクリックします。
-
[ グループ ] サブメニューに移動し、 [ 追加 ] をクリックします。
-
最初のグループの Oracle という名前を入力し、 [ 保存 ] をクリックします。
-
DR_Oracle という名前の 2 つ目のグループに対してこの手順を繰り返します。
-
作成した Oracle グループを選択し、 Hosts サブメニューに移動して、 Add New Host をクリックします。
-
ソース Oracle ホストの管理 IP の IP アドレスを入力し、 [ 保存 ] をクリックします。
-
DR_Oracle グループに対してこの手順を繰り返し、 DR/Destination Oracle ホストの管理 IP / ホスト名を追加する必要があります。
-
以下は、オンプレミスと ONTAP 、または AWS 上の CVO のクレデンシャルタイプとクレデンシャルを作成する手順です。 |
-
クレデンシャルを設定します。
-
クレデンシャルタイプの作成ONTAP を使用するソリューションでは、ユーザ名とパスワードのエントリを照合するようにクレデンシャルタイプを設定する必要があります。
-
[ 管理 ] → [ 資格情報の種類 ] に移動し、 [ 追加 ] をクリックします。
-
名前と概要を指定します。
-
入力構成に次の内容を貼り付けます。
fields: - id: dst_cluster_username type: string label: Destination Cluster Username - id: dst_cluster_password type: string label: Destination Cluster Password secret: true - id: src_cluster_username type: string label: Source Cluster Username - id: src_cluster_password type: string label: Source Cluster Password secret: true
-
次の内容をインジェクタ設定に貼り付け、 [ 保存 ] をクリックします。
extra_vars: dst_cluster_username: '{{ dst_cluster_username }}' dst_cluster_password: '{{ dst_cluster_password }}' src_cluster_username: '{{ src_cluster_username }}' src_cluster_password: '{{ src_cluster_password }}'
-
-
ONTAP のクレデンシャルを作成します
-
[ リソース ] → [ 資格情報 ] に移動し、 [ 追加 ] をクリックします。
-
ONTAP クレデンシャルの名前と組織の詳細を入力します
-
前の手順で作成したクレデンシャルタイプを選択します。
-
タイプの詳細で、ソースクラスタとデスティネーションクラスタのユーザ名とパスワードを入力します。
-
[ 保存 ] をクリックします .
-
-
Oracle のクレデンシャルを作成します
-
[ リソース ] → [ 資格情報 ] に移動し、 [ 追加 ] をクリックします。
-
Oracle の名前と組織の詳細を入力します。
-
マシンクレデンシャルタイプを選択します。
-
Type Details (タイプの詳細)に、 Oracle ホストのユーザー名とパスワードを入力します。
-
適切な特権昇格方式を選択し、ユーザ名とパスワードを入力します。
-
[ 保存 ] をクリックします .
-
必要に応じて、 DR_Oracle ホストの別のクレデンシャルに対して同じ手順を繰り返します。
-
-
クレデンシャルを設定します。
-
クレデンシャルタイプを作成する。ONTAP が関連するソリューションでは、ユーザ名とパスワードのエントリに一致するクレデンシャルタイプを設定する必要があります。また、 Cloud Central と AWS のエントリも追加します。
-
[ 管理 ] → [ 資格情報の種類 ] に移動し、 [ 追加 ] をクリックします。
-
名前と概要を指定します。
-
入力構成に次の内容を貼り付けます。
fields: - id: dst_cluster_username type: string label: CVO Username - id: dst_cluster_password type: string label: CVO Password secret: true - id: cvo_svm_password type: string label: CVO SVM Password secret: true - id: src_cluster_username type: string label: Source Cluster Username - id: src_cluster_password type: string label: Source Cluster Password secret: true - id: regular_id type: string label: Cloud Central ID secret: true - id: email_id type: string label: Cloud Manager Email secret: true - id: cm_password type: string label: Cloud Manager Password secret: true - id: access_key type: string label: AWS Access Key secret: true - id: secret_key type: string label: AWS Secret Key secret: true - id: token type: string label: Cloud Central Refresh Token secret: true
-
次の内容をインジェクタ構成に貼り付け、 [ 保存( Save ) ] をクリックする。
extra_vars: dst_cluster_username: '{{ dst_cluster_username }}' dst_cluster_password: '{{ dst_cluster_password }}' cvo_svm_password: '{{ cvo_svm_password }}' src_cluster_username: '{{ src_cluster_username }}' src_cluster_password: '{{ src_cluster_password }}' regular_id: '{{ regular_id }}' email_id: '{{ email_id }}' cm_password: '{{ cm_password }}' access_key: '{{ access_key }}' secret_key: '{{ secret_key }}' token: '{{ token }}'
-
-
ONTAP / CVO / AWS のクレデンシャルを作成
-
[ リソース ] → [ 資格情報 ] に移動し、 [ 追加 ] をクリックします。
-
ONTAP クレデンシャルの名前と組織の詳細を入力します
-
前の手順で作成したクレデンシャルタイプを選択します。
-
Type Details に、ソースクラスタと CVO クラスタ、 Cloud Central / Manager 、 AWS Access / Secret Key 、 Cloud Central Refresh Token のユーザ名とパスワードを入力します。
-
[ 保存 ] をクリックします .
-
-
Oracle のクレデンシャルの作成(ソース)
-
[ リソース ] → [ 資格情報 ] に移動し、 [ 追加 ] をクリックします。
-
Oracle ホストの名前と組織の詳細を入力します
-
マシンクレデンシャルタイプを選択します。
-
Type Details (タイプの詳細)に、 Oracle ホストのユーザー名とパスワードを入力します。
-
適切な特権昇格方式を選択し、ユーザ名とパスワードを入力します。
-
[ 保存 ] をクリックします .
-
-
Oracle 保存先のクレデンシャルを作成します
-
[ リソース ] → [ 資格情報 ] に移動し、 [ 追加 ] をクリックします。
-
DR Oracle ホストの名前と組織の詳細を入力します
-
マシンクレデンシャルタイプを選択します。
-
Type Details に、ユーザ名( ec2-user またはデフォルトの入力から変更した場合は、そのユーザ名)と SSH 秘密鍵を入力します
-
適切な特権昇格方式( sudo )を選択し、必要に応じてユーザ名とパスワードを入力します。
-
[ 保存 ] をクリックします .
-
プロジェクトを作成します
-
[ リソース ] → [ プロジェクト ] に移動し、 [ 追加 ] をクリックします。
-
名前と組織の詳細を入力します
-
Source Control Credential Type フィールドで Git を選択します。
-
入力するコマンド <https://github.com/NetApp-Automation/na_oracle19c_data_protection.git> をソース管理 URL として指定します。
-
[ 保存 ] をクリックします .
-
ソースコードが変更されたときに、プロジェクトの同期が必要になることがあります。
-
グローバル変数を設定します
このセクションで定義する変数は、すべての Oracle ホスト、データベース、および ONTAP クラスタに適用されます。
-
次の組み込みグローバル変数または変数フォームに環境固有のパラメータを入力します。
青の項目は、環境に合わせて変更する必要があります。 |
# Oracle Data Protection global user configuration variables
# Ontap env specific config variables
hosts_group: "ontap"
ca_signed_certs: "false"
# Inter-cluster LIF details
src_nodes:
- "AFF-01"
- "AFF-02"
dst_nodes:
- "DR-AFF-01"
- "DR-AFF-02"
create_source_intercluster_lifs: "yes"
source_intercluster_network_port_details:
using_dedicated_ports: "yes"
using_ifgrp: "yes"
using_vlans: "yes"
failover_for_shared_individual_ports: "yes"
ifgrp_name: "a0a"
vlan_id: "10"
ports:
- "e0b"
- "e0g"
broadcast_domain: "NFS"
ipspace: "Default"
failover_group_name: "iclifs"
source_intercluster_lif_details:
- name: "icl_1"
address: "10.0.0.1"
netmask: "255.255.255.0"
home_port: "a0a-10"
node: "AFF-01"
- name: "icl_2"
address: "10.0.0.2"
netmask: "255.255.255.0"
home_port: "a0a-10"
node: "AFF-02"
create_destination_intercluster_lifs: "yes"
destination_intercluster_network_port_details:
using_dedicated_ports: "yes"
using_ifgrp: "yes"
using_vlans: "yes"
failover_for_shared_individual_ports: "yes"
ifgrp_name: "a0a"
vlan_id: "10"
ports:
- "e0b"
- "e0g"
broadcast_domain: "NFS"
ipspace: "Default"
failover_group_name: "iclifs"
destination_intercluster_lif_details:
- name: "icl_1"
address: "10.0.0.3"
netmask: "255.255.255.0"
home_port: "a0a-10"
node: "DR-AFF-01"
- name: "icl_2"
address: "10.0.0.4"
netmask: "255.255.255.0"
home_port: "a0a-10"
node: "DR-AFF-02"
# Variables for SnapMirror Peering
passphrase: "your-passphrase"
# Source & Destination List
dst_cluster_name: "dst-cluster-name"
dst_cluster_ip: "dst-cluster-ip"
dst_vserver: "dst-vserver"
dst_nfs_lif: "dst-nfs-lif"
src_cluster_name: "src-cluster-name"
src_cluster_ip: "src-cluster-ip"
src_vserver: "src-vserver"
# Variable for Oracle Volumes and SnapMirror Details
cg_snapshot_name_prefix: "oracle"
src_orabinary_vols:
- "binary_vol"
src_db_vols:
- "db_vol"
src_archivelog_vols:
- "log_vol"
snapmirror_policy: "async_policy_oracle"
# Export Policy Details
export_policy_details:
name: "nfs_export_policy"
client_match: "0.0.0.0/0"
ro_rule: "sys"
rw_rule: "sys"
# Linux env specific config variables
mount_points:
- "/u01"
- "/u02"
- "/u03"
hugepages_nr: "1234"
redhat_sub_username: "xxx"
redhat_sub_password: "xxx"
# DB env specific install and config variables
recovery_type: "scn"
control_files:
- "/u02/oradata/CDB2/control01.ctl"
- "/u03/orareco/CDB2/control02.ctl"
###########################################
### Ontap env specific config variables ###
###########################################
#Inventory group name
#Default inventory group name - "ontap"
#Change only if you are changing the group name either in inventory/hosts file or in inventory groups in case of AWX/Tower
hosts_group: "ontap"
#CA_signed_certificates (ONLY CHANGE to "true" IF YOU ARE USING CA SIGNED CERTIFICATES)
ca_signed_certs: "false"
#Names of the Nodes in the Source ONTAP Cluster
src_nodes:
- "AFF-01"
- "AFF-02"
#Names of the Nodes in the Destination CVO Cluster
dst_nodes:
- "DR-AFF-01"
- "DR-AFF-02"
#Define whether or not to create intercluster lifs on source cluster (ONLY CHANGE to "No" IF YOU HAVE ALREADY CREATED THE INTERCLUSTER LIFS)
create_source_intercluster_lifs: "yes"
source_intercluster_network_port_details:
using_dedicated_ports: "yes"
using_ifgrp: "yes"
using_vlans: "yes"
failover_for_shared_individual_ports: "yes"
ifgrp_name: "a0a"
vlan_id: "10"
ports:
- "e0b"
- "e0g"
broadcast_domain: "NFS"
ipspace: "Default"
failover_group_name: "iclifs"
source_intercluster_lif_details:
- name: "icl_1"
address: "10.0.0.1"
netmask: "255.255.255.0"
home_port: "a0a-10"
node: "AFF-01"
- name: "icl_2"
address: "10.0.0.2"
netmask: "255.255.255.0"
home_port: "a0a-10"
node: "AFF-02"
###########################################
### CVO Deployment Variables ###
###########################################
####### Access Keys Variables ######
# Region where your CVO will be deployed.
region_deploy: "us-east-1"
########### CVO and Connector Vars ########
# AWS Managed Policy required to give permission for IAM role creation.
aws_policy: "arn:aws:iam::1234567:policy/OCCM"
# Specify your aws role name, a new role is created if one already does not exist.
aws_role_name: "arn:aws:iam::1234567:policy/OCCM"
# Name your connector.
connector_name: "awx_connector"
# Name of the key pair generated in AWS.
key_pair: "key_pair"
# Name of the Subnet that has the range of IP addresses in your VPC.
subnet: "subnet-12345"
# ID of your AWS secuirty group that allows access to on-prem resources.
security_group: "sg-123123123"
# You Cloud Manager Account ID.
account: "account-A23123A"
# Name of the your CVO instance
cvo_name: "test_cvo"
# ID of the VPC in AWS.
vpc: "vpc-123123123"
###################################################################################################
# Variables for - Add on-prem ONTAP to Connector in Cloud Manager
###################################################################################################
# For Federated users, Client ID from API Authentication Section of Cloud Central to generate access token.
sso_id: "123123123123123123123"
# For regular access with username and password, please specify "pass" as the connector_access. For SSO users, use "refresh_token" as the variable.
connector_access: "pass"
####################################################################################################
# Variables for SnapMirror Peering
####################################################################################################
passphrase: "your-passphrase"
#####################################################################################################
# Source & Destination List
#####################################################################################################
#Please Enter Destination Cluster Name
dst_cluster_name: "dst-cluster-name"
#Please Enter Destination Cluster (Once CVO is Created Add this Variable to all templates)
dst_cluster_ip: "dst-cluster-ip"
#Please Enter Destination SVM to create mirror relationship
dst_vserver: "dst-vserver"
#Please Enter NFS Lif for dst vserver (Once CVO is Created Add this Variable to all templates)
dst_nfs_lif: "dst-nfs-lif"
#Please Enter Source Cluster Name
src_cluster_name: "src-cluster-name"
#Please Enter Source Cluster
src_cluster_ip: "src-cluster-ip"
#Please Enter Source SVM
src_vserver: "src-vserver"
#####################################################################################################
# Variable for Oracle Volumes and SnapMirror Details
#####################################################################################################
#Please Enter Source Snapshot Prefix Name
cg_snapshot_name_prefix: "oracle"
#Please Enter Source Oracle Binary Volume(s)
src_orabinary_vols:
- "binary_vol"
#Please Enter Source Database Volume(s)
src_db_vols:
- "db_vol"
#Please Enter Source Archive Volume(s)
src_archivelog_vols:
- "log_vol"
#Please Enter Destination Snapmirror Policy
snapmirror_policy: "async_policy_oracle"
#####################################################################################################
# Export Policy Details
#####################################################################################################
#Enter the destination export policy details (Once CVO is Created Add this Variable to all templates)
export_policy_details:
name: "nfs_export_policy"
client_match: "0.0.0.0/0"
ro_rule: "sys"
rw_rule: "sys"
#####################################################################################################
### Linux env specific config variables ###
#####################################################################################################
#NFS Mount points for Oracle DB volumes
mount_points:
- "/u01"
- "/u02"
- "/u03"
# Up to 75% of node memory size divided by 2mb. Consider how many databases to be hosted on the node and how much ram to be allocated to each DB.
# Leave it blank if hugepage is not configured on the host.
hugepages_nr: "1234"
# RedHat subscription username and password
redhat_sub_username: "xxx"
redhat_sub_password: "xxx"
####################################################
### DB env specific install and config variables ###
####################################################
#Recovery Type (leave as scn)
recovery_type: "scn"
#Oracle Control Files
control_files:
- "/u02/oradata/CDB2/control01.ctl"
- "/u03/orareco/CDB2/control02.ctl"
自動化ハンドブック
実行する必要があるプレイブックは 4 つあります。
-
環境のセットアップに関するプレイブック:オンプレミス、 CVO
-
Oracle バイナリとデータベースをスケジュールどおりにレプリケートする Playbook
-
Oracle ログをスケジュールどおりにレプリケートするためのプレイブック
-
デスティネーションホストでのデータベースのリカバリに関するプレイブック
[.underline]* ONTAPとCVOのセットアップ*
ジョブテンプレートを設定して起動します。
-
ジョブテンプレートを作成します。
-
[ リソース ] → [ テンプレート ] → [ 追加 ] に移動し、 [ ジョブテンプレートの追加 ] をクリックします。
-
「 ONTAP/CVO Setup 」という名前を入力します
-
ジョブタイプを選択します。 Run は、プレイブックに基づいてシステムを設定します。
-
対応するインベントリ、プロジェクト、プレイブック、およびクレデンシャルを選択します。
-
オンプレミス環境用の ONTAP_setup.yml プレイブックを選択するか、 CVO-setup.yml を選択して CVO インスタンスにレプリケーションします。
-
手順 4 からコピーしたグローバル変数を YAML タブの Template Variables フィールドに貼り付けます。
-
[ 保存 ] をクリックします .
-
-
ジョブテンプレートを起動します。
-
[ リソース ] → [ テンプレート ] に移動します。
-
目的のテンプレートをクリックし、 [ 起動 ] をクリックします。
このテンプレートを使用して、他のプレイブック用にコピーします。
-
バイナリおよびデータベース複製のスケジュール設定
ジョブテンプレートを設定して起動します。
-
以前に作成したジョブテンプレートをコピーします。
-
[ リソース ] → [ テンプレート ] に移動します。
-
「 ONTAP/CVO Setup Template 」を探して、右端で「 Copy Template 」をクリックします
-
コピーしたテンプレートで [ テンプレートの編集 ] をクリックし、名前を [ バイナリおよびデータベースのレプリケーションのマニュアル ] に変更します。
-
テンプレートの同じインベントリ、プロジェクト、資格情報を保持します。
-
実行するプレイブックとして ora_replication_cg.yml を選択します。
-
変数は変更されませんが、 CVO クラスタの IP は変数 dst_cluster_ip に設定する必要があります。
-
[ 保存 ] をクリックします .
-
-
ジョブテンプレートをスケジュールします。
-
[ リソース ] → [ テンプレート ] に移動します。
-
バイナリおよびデータベースのレプリケーション用プレイブックテンプレートをクリックし、一番上のオプションセットにあるスケジュールをクリックします。
-
[ 追加 ] をクリックし、 [ バイナリおよびデータベースレプリケーションの名前スケジュールの追加 ] をクリックし、時間の開始時に [ 開始日時 ] を選択し、 [ ローカルタイムゾーン ] を選択して、 [ 実行頻度 ] をクリックします。実行頻度は、多くの場合、 SnapMirror レプリケーションが更新されます。
ログボリュームのレプリケーション用に別のスケジュールが作成されるため、より頻繁にレプリケートできます。
-
ログレプリケーションプレイブックのスケジュール設定
ジョブテンプレートの設定と起動
-
以前に作成したジョブテンプレートをコピーします。
-
[ リソース ] → [ テンプレート ] に移動します。
-
「 ONTAP/CVO Setup Template 」を探して、右端で「 Copy Template 」をクリックします
-
コピーしたテンプレートで [ テンプレートの編集 ] をクリックし、名前を [ ログレプリケーションのプレイブック ] に変更します。
-
テンプレートの同じインベントリ、プロジェクト、資格情報を保持します。
-
実行するプレイブックとして ora_replication_loges.yml を選択します。
-
変数は変更されませんが、 CVO クラスタの IP は変数 dst_cluster_ip に設定する必要があります。
-
[ 保存 ] をクリックします .
-
-
ジョブテンプレートをスケジュールします。
-
[ リソース ] → [ テンプレート ] に移動します。
-
Log Replication Playbook テンプレートをクリックし、一番上のオプションセットにある Schedules (スケジュール)をクリックします。
-
[ 追加 ] をクリックし、 [ ログ複製の名前スケジュールの追加 ] をクリックし、時間の開始時に開始日時を選択し、 [ ローカルタイムゾーン ] と [ 実行頻度 ] を選択します。実行頻度は、多くの場合、 SnapMirror レプリケーションが更新されます。
1 時間ごとの最新の更新に確実にリカバリできるように、ログスケジュールを 1 時間ごとに更新するように設定することを推奨します。 -
ログレプリケーションプレイブックのスケジュール設定
ジョブテンプレートを設定して起動します。
-
以前に作成したジョブテンプレートをコピーします。
-
[ リソース ] → [ テンプレート ] に移動します。
-
「 ONTAP/CVO Setup Template 」を探して、右端で「 Copy Template 」をクリックします
-
コピーしたテンプレートで [ テンプレートの編集 ] をクリックし、名前を [ リストアとリカバリプレイブック ] に変更します。
-
テンプレートの同じインベントリ、プロジェクト、資格情報を保持します。
-
実行するプレイブックとして ora_recoveryyml を選択します。
-
変数は変更されませんが、 CVO クラスタの IP は変数 dst_cluster_ip に設定する必要があります。
-
[ 保存 ] をクリックします .
このプレイブックは、リモートサイトでデータベースをリストアする準備ができるまでは実行されません。 -
Oracleデータベースをリカバリしています
-
オンプレミスの本番 Oracle データベースのデータボリュームは、 NetApp SnapMirror レプリケーションを使用して、セカンダリデータセンターの冗長 ONTAP クラスタまたはパブリッククラウドの Cloud Volume ONTAP に保護されます。完全に構成されたディザスタリカバリ環境では、セカンダリデータセンターまたはパブリッククラウドのリカバリコンピューティングインスタンスがスタンバイ状態になり、災害発生時に本番データベースをリカバリできます。スタンバイコンピューティングインスタンスは、 OS カーネルパッチで paraellel アップデートを実行するか、ロックステップでアップグレードすることで、オンプレミスインスタンスと同期したままになります。
-
この解決策で実証されている Oracle バイナリ・ボリュームは、ターゲット・インスタンスに複製され、ターゲット・インスタンスにマウントされて、 Oracle ソフトウェア・スタックが起動されます。この Oracle リカバリアプローチには、災害発生時に Oracle を新規にインストールした場合よりも優れています。Oracle のインストールは、現在のオンプレミスの本番ソフトウェアのインストールレベルやパッチレベルと完全に同期されていることが保証されます。ただし、 Oracle でのソフトウェアライセンスの構成によっては、リカバリサイトで複製された Oracle バイナリボリュームにソフトウェアライセンスが影響する場合とそうでない場合があります。ユーザは、 Oracle のライセンス要件を評価するために、ソフトウェアライセンス担当者に確認してから、同じ方法を使用することを推奨します。
-
デスティネーションのスタンバイ Oracle ホストには、 Oracle の前提条件となる構成が設定されています。
-
SnapMirror が切断され、ボリュームが書き込み可能になり、スタンバイ Oracle ホストにマウントされます。
-
すべての DB ボリュームがスタンバイコンピューティングインスタンスにマウントされたあと、 Oracle リカバリモジュールは以下のタスクを実行して、リカバリサイトで Oracle をリカバリおよび起動します。
-
制御ファイルを同期します。重要なデータベース制御ファイルを保護するために、異なるデータベースボリュームに Oracle 制御ファイルを重複して配置しました。1 つはデータボリューム上にあり、もう 1 つはログボリューム上にあります。データボリュームとログボリュームは異なる頻度でレプリケートされるため、リカバリ時に同期されません。
-
Oracle バイナリの再リンク: Oracle バイナリは新しいホストに再配置されるため、再リンクが必要です。
-
Oracle データベースのリカバリ:リカバリ・メカニズムは、 Oracle ログ・ボリューム内の最後に使用可能なアーカイブ・ログのシステム変更番号を制御ファイルから取得し、 Oracle データベースをリカバリして、障害発生時に DR サイトにレプリケートされたすべてのビジネス・トランザクションをリカバリします。次に、データベースが新しいインカネーションで起動され、リカバリサイトでユーザ接続とビジネストランザクションが実行されます。
-
Recovering Playbook を実行する前に、次の情報を確認してください。 /etc/oratab および /etc/oraInst.loc を介して、ソース Oracle ホストからデスティネーションホストにコピーしてください |