Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

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
git clone https://bitbucket.ngage.netapp.com/scm/ns-bb/na_oracle_clone_lifecycle.git
Cli
メモ このツールキットにアクセスできるのは、現時点でビットバケットアクセス権を持つ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つあります。

  1. Ansibleコントローラの前提条件をインストール- 1回のみ。

    ansible-playbook -i hosts ansible_requirements.yml
    Cli
  2. クローン仕様ファイルのセットアップ- 1回のみ。

    ansible-playbook -i hosts clone_1_setup.yml -u admin -e @vars/vars.yml
    Cli
  3. 更新プレイブックを呼び出すシェルスクリプトを使用して、crontabから定期的にクローンデータベースを作成および更新します。

    0 */4 * * * /home/admin/na_oracle_clone_lifecycle/clone_1_refresh.sh
    Cli
メモ SnapCenter設定のユーザ名をsudoユーザに変更します。

クローンデータベースを追加する場合は、clone_n_setup.ymlとclone_n_refresh.yml、およびclone_n_refresh.shを個別に作成します。必要に応じて、Ansibleターゲットホストとhostname.ymlファイルをhost_varsディレクトリに構成します。

詳細情報の入手方法

NetAppソリューションの自動化の詳細については、次のWebサイトを参照してください。"NetApp 解決策の自動化"