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

SnapCenter Oracle Clone Lifecycle Automation

貢獻者

NetApp公司的Alleno Cao、Niyazz Mohamed

此解決方案提供 Ansible 型自動化工具組,可從主要資料庫設定,複製及重新整理 Oracle 複製資料庫。主要資料庫可以是 Oracle Data Guard 組態中的實體待命 DB 。此解決方案可套用至私有資料中心,或在 NFS 或 ASM 組態中使用 FSX ONTAP 儲存設備的 AWS 雲端,或在 NFS 組態中使用 Azure NetApp Files 儲存設備的 Azure 雲端。

目的

如果在私有資料中心或公有雲中的特定儲存產品上啟用精簡複製功能,則客戶喜歡 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 軟體堆疊,以及 Oracle Home 等目錄配置

下載工具組

Details
git clone https://bitbucket.ngage.netapp.com/scm/ns-bb/na_oracle_clone_lifecycle.git
Cli
註 此工具組目前只能由具有 BitBucket 存取權限的 NetApp 內部使用者存取。對於有興趣的外部使用者,請向您的客戶團隊申請存取權限,或聯絡 NetApp 解決方案工程團隊。

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
    Cli
  2. 設定複製規格檔案 - 僅一次。

    ansible-playbook -i hosts clone_1_setup.yml -u admin -e @vars/vars.yml
    Cli
  3. 使用 Shell 指令碼定期從 crontab 建立及重新整理複製資料庫、以呼叫重新整理教戰手冊。

    0 */4 * * * /home/admin/na_oracle_clone_lifecycle/clone_1_refresh.sh
    Cli
註 將使用者名稱變更為您的 Sudo 使用者以進行 SnapCenter 組態。

對於其他複製資料庫、請建立個別的 clone _n_setup.yml 和 clone n_refresh.yml 、以及 clone n_refresh.sh 。相應地在 host_vars 目錄中配置 Ansible 目標主機和 hostname.yml 文件。

何處可找到其他資訊

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