Skip to main content
NetApp Solutions
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

SnapCenter Oracle Clone Lifecycle Automation

貢獻者

NetApp公司的Alleno Cao、Niyazz Mohamed

此解決方案提供 Ansible 型自動化工具組、可將 Oracle 資料庫高可用度和災難恢復( HA/DR )與 AWS FSX ONTAP 做為 Oracle 資料庫儲存設備、並將 EC2 執行個體做為 AWS 中的運算執行個體進行設定。

目的

客戶喜歡 NetApp ONTAP 儲存設備的 FlexClone 功能、因為它能大幅節省儲存成本。這套 Ansible 型工具套件可利用 NetApp SnapCenter 命令列公用程式、將複製的 Oracle 資料庫的設定、複製和重新整理作業自動化、以簡化生命週期管理。此工具套件適用於部署至 ONTAP 儲存設備的 Oracle 資料庫、無論是在預先設定或公有雲、皆可由 NetApp SnapCenter UI 工具管理。

本解決方案可解決下列使用案例:

  • 設定 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 教戰手冊執行的目標。通常是目標 Oracle 複製主機。以下是範例檔案。主機項目包括目標主機 IP 位址和 ssh 金鑰、讓管理員使用者存取主機以執行 clone 或 refresh 命令。

#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

主機變數是在主機 _vars 目錄中定義、名稱為 { { host_name } } 。 yml 。以下是目標 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

Clone 目標 Oracle 伺服器應安裝和修補與來源 Oracle 伺服器相同的 Oracle 軟體堆疊。Oracle 使用者 .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

教戰手冊執行

Details

使用 SnapCenter CLI 公用程式執行 Oracle 資料庫複製生命週期總共有三本教戰手冊。

  1. 安裝 Ansible 控制器先決條件 - 僅一次。

    ansible-playbook -i hosts ansible_requirements.yml
  2. 設定複製規格檔案 - 僅一次。

    ansible-playbook -i hosts clone_1_setup.yml -u admin -e @vars/vars.yml
  3. 使用 Shell 指令碼定期從 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 。相應地在 host_vars 目錄中配置 Ansible 目標主機和 hostname.yml 文件。

何處可找到其他資訊

若要深入瞭解 NetApp 解決方案自動化、請參閱下列網站 "NetApp解決方案自動化"