SnapCenter automatisation du cycle de vie des clones Oracle
Allen Cao, Niyaz Mohamed, NetApp
Cette solution fournit un kit d'outils d'automatisation basé sur Ansible pour configurer la haute disponibilité et la reprise d'activité (HA/DR) des bases de données Oracle avec AWS FSX ONTAP en tant que stockage de base de données Oracle et les instances EC2 en tant qu'instances de calcul dans AWS.
Objectif
Les clients apprécient la fonctionnalité FlexClone du stockage NetApp ONTAP pour les bases de données, car elle permet de réaliser d'importantes économies en termes de coûts de stockage. Ce kit Ansible automatise la configuration, le clonage et l'actualisation des bases de données Oracle clonées selon un calendrier défini à l'aide des utilitaires de ligne de commande NetApp SnapCenter qui simplifient la gestion du cycle de vie. Ce kit s'applique aux bases de données Oracle déployées sur un système de stockage ONTAP sur site ou dans le cloud public, et gérées par l'outil d'interface utilisateur NetApp SnapCenter.
Cette solution répond aux cas d'utilisation suivants :
-
Configurez le fichier de configuration de la spécification de clonage de la base de données Oracle.
-
Créez et actualisez la base de données Oracle clone selon un planning défini par l'utilisateur.
Public
Cette solution est destinée aux personnes suivantes :
-
Administrateur de bases de données qui gère les bases de données Oracle avec SnapCenter.
-
Administrateur du stockage qui gère le stockage ONTAP avec SnapCenter.
-
Propriétaire d'application ayant accès à l'interface utilisateur de SnapCenter.
Licence
En accédant au contenu de ce référentiel GitHub, en le téléchargeant, en l'installant ou en l'utilisant, vous acceptez les conditions de la licence énoncées dans "Fichier de licence".
Il existe certaines restrictions concernant la production et/ou le partage de travaux dérivés avec le contenu de ce référentiel GitHub. Assurez-vous de lire les termes de la Licence avant d'utiliser le contenu. Si vous n'acceptez pas toutes les conditions, n'accédez pas au contenu de ce référentiel, ne le téléchargez pas et ne l'utilisez pas. |
Déploiement de la solution
Conditions préalables au déploiement
Details
Le déploiement nécessite les conditions préalables suivantes.
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
Téléchargez la boîte à outils
Details
git clone https://bitbucket.ngage.netapp.com/scm/ns-bb/na_oracle_clone_lifecycle.git
Configuration des fichiers des hôtes cibles Ansible
Details
Le kit d'outils inclut un fichier hosts qui définit les cibles sur lesquelles s'exécute un PlayBook Ansible. Il s'agit généralement des hôtes clones Oracle cibles. Voici un exemple de fichier. Une entrée d'hôte comprend l'adresse IP de l'hôte cible ainsi que la clé ssh permettant à un utilisateur admin d'accéder à l'hôte pour exécuter la commande clone ou refresh.
#Hôtes de clonage 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]
Configuration des variables globales
Details
Les playbooks Ansible prennent des entrées variables à partir de plusieurs fichiers variables. Vous trouverez ci-dessous un exemple de fichier de variable globale 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
Configuration des variables hôte
Details
Les variables hôtes sont définies dans le répertoire host_vars nommé {{ host_name }}.yml. Vous trouverez ci-dessous un exemple de fichier de variable hôte Oracle cible ora_04.cie.netapp.com.yml qui montre une configuration typique.
# 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 }}'
Configuration du serveur Oracle cible de clone supplémentaire
Details
La même pile logicielle Oracle doit être installée et corrigée pour le serveur Oracle cible de clone. $ORACLE_BASE et $ORACLE_HOME sont configurés pour l'utilisateur ORACLE .bash_profile. De plus, la variable $ORACLE_HOME doit correspondre au paramètre du serveur Oracle source. Voici un exemple.
# .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
Exécution de PlayBook
Details
Au total, trois playbooks permettent d'exécuter le cycle de vie des clones d'une base de données Oracle avec les utilitaires de l'interface de ligne de commande SnapCenter.
-
Installez les prérequis du contrôleur Ansible, une seule fois.
ansible-playbook -i hosts ansible_requirements.yml
-
Fichier de spécification de clone de configuration - une seule fois.
ansible-playbook -i hosts clone_1_setup.yml -u admin -e @vars/vars.yml
-
Créez et actualisez régulièrement la base de données de clones à partir de crontab avec un script shell pour appeler un PlayBook d'actualisation.
0 */4 * * * /home/admin/na_oracle_clone_lifecycle/clone_1_refresh.sh
Pour une base de données clone supplémentaire, créez un clone_n_setup.yml et un clone_n_refresh.yml et un clone_n_refresh.sh. Configurez les hôtes cibles Ansible et le fichier hostname.yml dans le répertoire host_vars en conséquence.
Où trouver des informations complémentaires
Pour en savoir plus sur l'automatisation de la solution NetApp, consultez ce site Web "Automatisation des solutions NetApp"