SnapCenterによるOracleクローンライフサイクルの自動化
ネットアップ、Niyaz Mohamed、Allen Cao氏
この解決策にはAnsibleベースの自動化ツールキットが用意されており、AWS FSx ONTAPをOracleデータベースストレージとして、EC2インスタンスをAWSのコンピューティングインスタンスとして使用して、Oracleデータベースの高可用性とディザスタリカバリ(HA / DR)を構成できます。
目的
NetApp ONTAPストレージのFlexClone機能は、ストレージコストを大幅に削減できるデータベースに最適です。このAnsibleベースのツールキットは、NetApp SnapCenterコマンドラインユーティリティを使用して、クローニングされたOracleデータベースのセットアップ、クローニング、更新をスケジュールどおりに自動化することで、ライフサイクル管理を合理化します。このツールキットは、オンプレミスまたはパブリッククラウドのいずれかのONTAPストレージに導入され、NetApp SnapCenter UIツールで管理されるOracleデータベースに適用できます。
この解決策 は、次のユースケースに対応します。
-
Oracleデータベースのクローン仕様構成ファイルをセットアップします。
-
ユーザ定義のスケジュールに従って、クローンOracleデータベースを作成および更新します。
対象者
この解決策 は、次のユーザーを対象としています。
-
SnapCenterを使用してOracleデータベースを管理するDBA。
-
SnapCenterを使用してONTAPストレージを管理するストレージ管理者。
-
SnapCenter UIにアクセスできるアプリケーション所有者。
使用許諾
このGitHubリポジトリのコンテンツにアクセス、ダウンロード、インストール、または使用することにより、 "ライセンスファイル"。
このGitHubリポジトリ内のコンテンツとの派生物の作成および/または共有には、一定の制限があります。コンテンツを使用する前に、必ずライセンスの条件をお読みください。すべての条件に同意しない場合は、このリポジトリ内のコンテンツにアクセス、ダウンロード、または使用しないでください。 |
解決策 の導入
導入の前提条件
Details
導入には、次の前提条件が必要です。
Ansible controller: Ansible v.2.10 and higher ONTAP collection 21.19.1 Python 3 Python libraries: netapp-lib xmltodict jmespath
SnapCenter server: version 5.0 backup policy configured Source database protected with a backup policy
Oracle servers: Source server managed by SnapCenter Target server managed by SnapCenter Target server with identical Oracle software stack as source server installed and configured
ツールキットをダウンロード
Details
git clone https://bitbucket.ngage.netapp.com/scm/ns-bb/na_oracle_clone_lifecycle.git
Ansibleターゲットホストのファイル構成
Details
このツールキットには、Ansible Playbookを実行するターゲットを定義するhostsファイルが含まれています。通常は、ターゲットのOracleクローンホストです。ファイルの例を次に示します。ホストエントリには、ターゲットホストのIPアドレスとsshキーが含まれており、管理者ユーザがクローンまたは更新コマンドを実行するホストにアクセスする際に使用します。
Oracleクローンホスト数
[clone_1] ora_04.cie.netapp.com ansible_host=10.61.180.29 ansible_ssh_private_key_file=ora_04.pem
[clone_2] [clone_3]
グローバル変数の設定
Details
Ansibleプレイブックは、複数の変数ファイルから変数を入力します。次に、グローバル変数ファイルvars.ymlの例を示します。
# ONTAP specific config variables # SnapCtr specific config variables
snapctr_usr: xxxxxxxx snapctr_pwd: 'xxxxxxxx'
backup_policy: 'Oracle Full offline Backup' # Linux specific config variables # Oracle specific config variables
ホスト変数の設定
Details
ホスト変数は、{{host_name}}.ymlという名前のhost_varsディレクトリに定義されています。次に、一般的な構成を示すターゲットOracleホスト変数ファイルora_04.cie.netapp.com.ymlの例を示します。
# User configurable Oracle clone db host specific parameters
# Source database to clone from source_db_sid: NTAP1 source_db_host: ora_03.cie.netapp.com
# Clone database clone_db_sid: NTAP1DEV
snapctr_obj_id: '{{ source_db_host }}\{{ source_db_sid }}'
クローンターゲットの追加のOracleサーバ構成
Details
クローンターゲットOracleサーバには、ソースOracleサーバと同じOracleソフトウェアスタックがインストールされ、パッチが適用されている必要があります。Oracle user.bash_profileに$ORACLE_BASEと$ORACLE_HOMEが設定されています。また、$ORACLE_HOME変数はソースOracleサーバ設定と一致する必要があります。次に例を示します。
# .bash_profile
# Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi
# User specific environment and startup programs export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/19.0.0/NTAP1
Playbookの実施
Details
SnapCenter CLIユーティリティを使用してOracleデータベースのクローンライフサイクルを実行するためのプレイブックは合計3つあります。
-
Ansibleコントローラの前提条件をインストール- 1回のみ。
ansible-playbook -i hosts ansible_requirements.yml
-
クローン仕様ファイルのセットアップ- 1回のみ。
ansible-playbook -i hosts clone_1_setup.yml -u admin -e @vars/vars.yml
-
更新プレイブックを呼び出すシェルスクリプトを使用して、crontabから定期的にクローンデータベースを作成および更新します。
0 */4 * * * /home/admin/na_oracle_clone_lifecycle/clone_1_refresh.sh
クローンデータベースを追加する場合は、clone_n_setup.ymlとclone_n_refresh.yml、およびclone_n_refresh.shを個別に作成します。必要に応じて、Ansibleターゲットホストとhostname.ymlファイルをhost_varsディレクトリに構成します。
追加情報の参照先
NetApp 解決策 自動化の詳細については、次のWebサイトを参照してください。 "NetApp 解決策の自動化"