SnapCenterによるOracleクローンライフサイクルの自動化
ネットアップ、Niyaz Mohamed、Allen Cao氏
このソリューションには、プライマリデータベースからOracleクローンデータベースを設定、クローニング、更新するためのAnsibleベースの自動化ツールキットが用意されています。Oracle Data Guard構成では、プライマリデータベースを物理スタンバイDBにすることができます。このソリューションは、プライベートデータセンターまたはAWSクラウド(NFSまたはASM構成のFSx ONTAPストレージを使用)、またはAzureクラウド(NFS構成のAzure NetApp Filesストレージを使用)に適用できます。
目的
プライベートデータセンターやパブリッククラウドの特定のストレージ製品でシンクローン機能が有効になっていれば、NetApp ONTAPストレージのFlexClone機能を利用して大規模データベースのクローンをすばやく(分単位で)作成したり、ストレージをさらに節約したりすることができます。このAnsibleベースのツールキットでは、NetApp SnapCenterコマンドラインユーティリティを使用して、クローニングされたOracleデータベースのセットアップ、クローニング、更新をスケジュールどおりに自動化し、ライフサイクル管理を合理化します。このツールキットは、オンプレミスまたはパブリッククラウド(AWSまたはAzure)の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 and up, 6.1 for Azure NetApp Files backup policy configured Source database protected with a backup policy
Oracle servers: Source server managed by SnapCenter (In Data Guard, this would be the physical standby serer) Target server managed by SnapCenter (clone DB host)
|
わかりやすくするために、クローンターゲットOracleサーバは、OracleソフトウェアスタックやOracle Homeのディレクトリレイアウトなど、スタンバイOracleサーバと同じように構成する必要があります。 |
ツールキットをダウンロード
Details
|
このツールキットにアクセスできるのは、現時点でビットバケットアクセス権を持つNetApp内部ユーザーのみです。ご興味のある外部ユーザーの方は、アカウントチームにアクセス権をリクエストするか、NetAppソリューションエンジニアリングチームにお問い合わせください。 |
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回のみ。
-
クローン仕様ファイルのセットアップ- 1回のみ。
-
更新プレイブックを呼び出すシェルスクリプトを使用して、crontabから定期的にクローンデータベースを作成および更新します。
|
SnapCenter設定のユーザ名をsudoユーザに変更します。 |
クローンデータベースを追加する場合は、clone_n_setup.ymlとclone_n_refresh.yml、およびclone_n_refresh.shを個別に作成します。必要に応じて、Ansibleターゲットホストとhostname.ymlファイルをhost_varsディレクトリに構成します。
詳細情報の入手方法
NetAppソリューションの自動化の詳細については、次のWebサイトを参照してください。"NetApp 解決策の自動化"