diff --git a/roles/oracle-db-install/files/backup_rman.sh b/roles/oracle-db-install/files/backup_rman.sh deleted file mode 100644 index ca5484b..0000000 --- a/roles/oracle-db-install/files/backup_rman.sh +++ /dev/null @@ -1,163 +0,0 @@ -#!/bin/sh -#------------------------------------------------------------------------------ -# ORACLE DATABASE : BACKUP RMAN DB + AL -#------------------------------------------------------------------------------ -# Historique : -# 14/09/2011 : YAO - Creation -# 12/10/2015 : YAO - adaptation à l'ensemble des bases -# 13/10/2015 : YAO - ajout des params en ligne de commande -# 03/05/2016 : YAO - adaptation a l'environnement SOM -# 04/05/2016 : YAO - ajout du niveau de sauvegarde : incrementale 0 ou 1 -# 09/11/2022 : YAO - backup simple => db full -#------------------------------------------------------------------------------ - -#------------------------------------------------------------------------------ -# fonction init : c'est ici qu'il faut modifier toutes les variables liées -# à l'environnement -#------------------------------------------------------------------------------ -f_init() { - - export ORACLE_OWNER=oracle - - # les différents répertoires - export SCRIPTS_DIR=/home/oracle/scripts - export BKP_LOG_DIR=$SCRIPTS_DIR/logs - export BKP_LOCATION=/u04/rman/${ORACLE_SID} - - # nombre de sauvegarde RMAN en ligne à garder - export BKP_REDUNDANCY=1 - export DATE_JOUR=$(date +%Y.%m.%d-%H.%M) - export BKP_LOG_FILE=${BKP_LOG_DIR}/backup_rman_${ORACLE_SID}_${DATE_JOUR}.log - export RMAN_CMD_FILE=${BKP_LOG_DIR}/rman_cmd_file_${ORACLE_SID}.rman - - # nombre de jours de conservation des logs de la sauvegarde - export BKP_LOG_RETENTION=15 - - # nombre de canaux à utiliser - export PARALLELISM=1 - - # mail pour envoyer les erreurs - MAIL_RCPT="support@axiome.io,yacine.oumghar@gmail.com" - -} # f_init - -#------------------------------------------------------------------------------ -# fonction d'aide -#------------------------------------------------------------------------------ -f_help() { - - cat <> $BKP_LOG_FILE -} #f_print - -#---------------------------------------- -#------------ MAIN ---------------------- -#---------------------------------------- - -# s, l et t suivis des : => argument attendu -# h => pas d'argument attendu -while getopts s:h o -do - case $o in - s) ORACLE_SID=$OPTARG; - ;; - h) f_help 0; - ;; - *) f_help 2; - ;; - esac -done - -#------------------------------------------------------------------------------ -# traitement de la ligne de commande -#------------------------------------------------------------------------------ - -[ "${ORACLE_SID}" ] || f_help 2; - -# positionner les variables d'environnement ORACLE -export ORACLE_SID -ORAENV_ASK=NO -PATH=/usr/local/bin:$PATH -. oraenv -s >/dev/null - -#------------------------------------------------------------------------------ -# inititalisation des variables d'environnement -#------------------------------------------------------------------------------ -f_init - -#------------------------------------------------------------------------------ -# si ce n'est pas le user oracle qui lance le script, on quitte -#------------------------------------------------------------------------------ -if (test `whoami` != $ORACLE_OWNER) -then - echo - echo "-----------------------------------------------------" - echo "Vous devez etre $ORACLE_OWNER pour lancer ce script" - echo "-----------------------------------------------------" - exit 2 -fi - -#------------------------------------------------------------------------------ -# initialisation des chemins, s'ils n'existent pas ils seront créés par la commande install -#------------------------------------------------------------------------------ -install -d ${BKP_LOCATION} -install -d ${BKP_LOG_DIR} - -#------------------------------------------------------------------------------ -# génération du script de la sauvegarde RMAN -#------------------------------------------------------------------------------ -echo " -run { -CONFIGURE DEVICE TYPE DISK PARALLELISM $PARALLELISM ; -CONFIGURE RETENTION POLICY TO REDUNDANCY ${BKP_REDUNDANCY}; -BACKUP DEVICE TYPE DISK FORMAT '${BKP_LOCATION}/data_%T_%t_%s_%p' TAG 'DATA_${DATE_JOUR}' AS COMPRESSED BACKUPSET DATABASE; -SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT'; -BACKUP DEVICE TYPE DISK FORMAT '${BKP_LOCATION}/arch_%T_%t_%s_%p' TAG 'ARCH_${DATE_JOUR}' AS COMPRESSED BACKUPSET ARCHIVELOG ALL DELETE ALL INPUT; -BACKUP CURRENT CONTROLFILE FORMAT '${BKP_LOCATION}/control_%T_%t_%s_%p' TAG 'CTLFILE_${DATE_JOUR}'; -DELETE NOPROMPT OBSOLETE; -DELETE NOPROMPT EXPIRED BACKUPSET; -SQL \"ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS ''${BKP_LOCATION}/${ORACLE_SID}_control_file.trc'' REUSE\"; -SQL \"CREATE PFILE=''${BKP_LOCATION}/pfile_${ORACLE_SID}.ora'' FROM SPFILE\"; -} -" > ${RMAN_CMD_FILE} - -#------------------------------------------------------------------------------ -# Execution du script RMAN -#------------------------------------------------------------------------------ -f_print "------------------------- DEBUT DE LA BACKUP -------------------------" -${ORACLE_HOME}/bin/rman target / cmdfile=${RMAN_CMD_FILE} log=${BKP_LOG_FILE} - -#------------------------------------------------------------------------------ -# Mail si des erreurs dans le fichier de sauvegarde -#------------------------------------------------------------------------------ -ERR_COUNT=$(egrep "^RMAN-[0-9]*|^ORA-[0-9]:" ${BKP_LOG_FILE} | wc -l) - -if [ ${ERR_COUNT} -ne 0 ]; then - SUBJECT="$(hostname)-${ORACLE_SID} : RMAN Backup ERROR" - mutt -s $SUBJECT ${MAIL_RCPT} < ${BKP_LOG_FILE} -else - SUBJECT="$(hostname)-${ORACLE_SID} : RMAN Backup" - mutt -s $SUBJECT ${MAIL_RCPT} < ${BKP_LOG_FILE} -fi - -#------------------------------------------------------------------------------ -# Nettoyage auto des logs : durée de concervation déterminée par la variable : ${BKP_LOG_RETENTION} -#------------------------------------------------------------------------------ -f_print "------------------------- NETTOYAGE DES LOGS -------------------------" -find ${BKP_LOG_DIR} -type f -iname "backup_rman_${BKP_TYPE}*.log" -mtime +${BKP_LOG_RETENTION} -exec rm -fv "{}" \; >> $BKP_LOG_FILE - -f_print "------------------------- BACKUP ${BKP_TYPE} TERMINE -------------------------" diff --git a/roles/oracle-db-install/files/backup_rman_alldb.sh b/roles/oracle-db-install/files/backup_rman_alldb.sh deleted file mode 100644 index d76f837..0000000 --- a/roles/oracle-db-install/files/backup_rman_alldb.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -#------------------------------------------------------------------------------ -# ORACLE DATABASE : BACKUP ALL DB RMAN -#------------------------------------------------------------------------------ -# Historique : -# 21/04/2023 : YAO - Creation : backup de toutes les bases ouvertes -#------------------------------------------------------------------------------ - -# toutes les bases ouvertes sont sauvegardées par le script RMAN - -for i in $(ps -ef | grep pmon | grep -v grep | cut -d_ -f3) -do - sh /home/oracle/scripts/backup_rman.sh -s $i -done diff --git a/roles/oracle-db-install/files/export_datapump.sh b/roles/oracle-db-install/files/export_datapump.sh deleted file mode 100644 index 79b3110..0000000 --- a/roles/oracle-db-install/files/export_datapump.sh +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/sh -#------------------------------------------------------------------------------ -# Historique : -# 14/09/2011 : YOU - Creation -# 14/10/2015 : YOU - script générique pour toutes les bases -# 15/12/2022 : YOU - retention de 1 jour -#------------------------------------------------------------------------------ -#------------------------------------------------------------------------------ -# fonction init : c'est ici qu'il faut modifier toutes les variables liées -# à l'environnement -#------------------------------------------------------------------------------ -export ORACLE_OWNER=oracle - -f_init() { - - # positionner les variables d'environnement - export SCRIPTS_DIR=/home/oracle/scripts - # paramètres de lang - export LANG=en_US.UTF-8 - export NLS_LANG=AMERICAN_AMERICA.${NLS_CHARACTERSET} - - # répertoire destination de l'export - export EXP_LOCATION=/u04/expdp/$ORACLE_SID - # nom du répertoire au niveau de la base de données - export DPDIR=EXPDP_DIR - - # date = jour de la semaine : permet de garder 7 export en ligne - export JOUR_SEMAINE=$(date +%A) -} #f_init - -#------------------------------------------------------------------------------ -# fonction d'aide -#------------------------------------------------------------------------------ -f_help() { - -echo " - -syntaxe : $0 -s ORACLE_SID ------- -" -exit $1 - -} #f_help - -#---------------------------------------- -#------------ MAIN ---------------------- -#---------------------------------------- - -unset ORACLE_SID - -while getopts :s:h o -do - case $o in - s) ORACLE_SID=$OPTARG; - ;; - h) f_help 0; - ;; - *) f_help 2; - ;; - \?) f_help 2; - ;; - esac -done - -[ "${ORACLE_SID}" ] || f_help 2; - -#------------------------------------------------------------------------------ -# si ce n'est pas le user oracle qui lance le script, on quitte -#------------------------------------------------------------------------------ -if (test `whoami` != $ORACLE_OWNER) -then - echo "Vous devez etre $ORACLE_OWNER pour lancer ce script" - exit -fi - -#------------------------------------------------------------------------------ -# positionner les variables d'environnement ORACLE -#------------------------------------------------------------------------------ -export ORACLE_SID -ORAENV_ASK=NO -PATH=/usr/local/bin:$PATH -. oraenv -s >/dev/null - -#------------------------------------------------------------------------------ -# recuperation du NLS_CHARACTERSET -#------------------------------------------------------------------------------ -NLS_CHARACTERSET=$($ORACLE_HOME/bin/sqlplus -S / as sysdba < " diff --git a/roles/oracle-db-install/tasks/download_software.yml b/roles/oracle-db-install/tasks/download_software.yml index c109229..c435d18 100644 --- a/roles/oracle-db-install/tasks/download_software.yml +++ b/roles/oracle-db-install/tasks/download_software.yml @@ -1,46 +1,8 @@ --- -# - name: Téléchrgement des binaires -# become: yes -# get_url: -# url: https://kutt.axiome.io/m7EQg2p -# dest: /u01/sources/{{oracle_zip_filename}} -# mode: 0755 -# group: oinstall -# owner: oracle -# checksum: sha256:ba8329c757133da313ed3b6d7f86c5ac42cd9970a28bf2e6233f3235233aa8d8 -# validate_certs: no -# tags: download_sw - -# - name: Téléchargement OPatch -# become: yes -# get_url: -# url : https://kutt.axiome.io/opatch -# dest: /u01/sources/{{opatch_file}} -# mode: 0755 -# group: oinstall -# checksum: sha256:1d5f9b244a12f24efa16f851107f7b62426f10aa303ebb878928db6a8ca95a73 -# validate_certs: no -# owner: oracle -# timeout: 120 -# tags: download_opatch - - name: Téléchargement OPatch shell: wget --no-check-certificate https://kutt.axiome.io/opatch -O /u01/sources/{{opatch_file}} tags: download_opatch -# - name: Téléchargement du PSU -# become: yes -# get_url: -# url: https://kutt.axiome.io/db_ru -# dest: /u01/sources/{{psu_file}} -# mode: 0755 -# group: oinstall -# owner: oracle -# checksum: sha256:8628ba2ecc6a9d45e803e213eefafa2234cbd4e0e4a14c17bc46168bc7e155c8 -# validate_certs: no -# timeout: 600 -# tags: download_sw - - name: Téléchargement du PSU shell: wget --no-check-certificate https://kutt.axiome.io/db_ru -O /u01/sources/{{psu_file}} tags: download_ru \ No newline at end of file diff --git a/roles/oracle-db-install/tasks/install_database.yml b/roles/oracle-db-install/tasks/install_database.yml index f12e7c9..7ff13cc 100644 --- a/roles/oracle-db-install/tasks/install_database.yml +++ b/roles/oracle-db-install/tasks/install_database.yml @@ -40,19 +40,6 @@ shell: wget --no-check-certificate https://kutt.axiome.io/m7EQg2p -O {{ oracle_sources }}/{{oracle_zip_filename}} tags: download_sw -# - name: Téléchargement des binaires Oracle -# become: yes -# get_url: -# url: https://kutt.axiome.io/m7EQg2p -# dest: /u01/sources/{{oracle_zip_filename}} -# mode: 0755 -# group: oinstall -# owner: oracle -# checksum: sha256:ba8329c757133da313ed3b6d7f86c5ac42cd9970a28bf2e6233f3235233aa8d8 -# validate_certs: no -# timeout: 600 -# tags: download_sw -# - name: Extraction des binaires Oracle unarchive: src={{ oracle_sources }}/{{ oracle_zip_filename }} dest={{ oracle_home }} become: true @@ -82,7 +69,6 @@ tags: orainstall - debug: var=oradbinstall.stdout_lines - # with_items: oradbinstall.results tags: orainstall - name: Vérification de l existance du fichier orainstRoot.sh @@ -107,7 +93,6 @@ tags: opatch - debug: var=opatchls.stdout_lines - # with_items: opatchls.results tags: opatch # suppression des binaires, du fichier de réponse et du script d'install diff --git a/roles/oracle-db-install/tasks/main.yml b/roles/oracle-db-install/tasks/main.yml index 7ead1d2..f00120e 100644 --- a/roles/oracle-db-install/tasks/main.yml +++ b/roles/oracle-db-install/tasks/main.yml @@ -13,6 +13,3 @@ # Application du patch - include: opatch_apply.yml -# Ajout des sripts d'exploitation - - include: scripts_exploitation.yml - diff --git a/roles/oracle-db-install/tasks/scripts_exploitation.yml b/roles/oracle-db-install/tasks/scripts_exploitation.yml deleted file mode 100644 index 2882d97..0000000 --- a/roles/oracle-db-install/tasks/scripts_exploitation.yml +++ /dev/null @@ -1,104 +0,0 @@ ---- -# -# post configuration d'une installation de base de données Oracle -# - # --------------------------------------------------- - # récupération des scripts sql - # --------------------------------------------------- - - name: Clonage du repository github SQL - git: - repo: https://github.com/Yacine31/sql.git - dest: "{{ scripts_dir }}" - clone: yes - update: yes - force: yes - - # --------------------------------------------------- - # changement du propriétaire de root en oracle - # --------------------------------------------------- - - name: Changement du propriétaire - file: - dest: "{{ scripts_dir }}" - owner: oracle - group: oinstall - recurse: yes - - # # n'est plus utilisé : le script est récupéré depuis Github - # --------------------------------------------------- - # Modification du prompt SQLPlus - # --------------------------------------------------- - # - name: Modification du prompt SQLPlus - # copy: src=login.sql dest={{ scripts_dir }} mode=644 owner=oracle group=oinstall - # tags: login.sql - - # --------------------------------------------------- - # Ajout de la variabe ORACLE_PATH ans .bash_profile - # --------------------------------------------------- - - name: Ajout de la variabe ORACLE_PATH ans .bash_profile - lineinfile: path=/home/oracle/.bash_profile line="export ORACLE_PATH={{ scripts_dir }}" create=yes - tags: oraclepath - - # --------------------------------------------------- - # ajout de script oracle pour les backups rman - # --------------------------------------------------- - - # - name: Copie du script backup_rman.sh dans {{ scripts_dir }} - # copy: src=backup_rman.sh dest={{ scripts_dir }}/ owner=oracle group=oinstall mode=755 # - - # - name: Copie du script backup_rman_alldb.sh dans {{ scripts_dir }} - # copy: src=backup_rman_alldb.sh dest={{ scripts_dir }}/ owner=oracle group=oinstall mode=755 - - # # n'est plus utilisé : le script est récupéré depuis Github - # - name: Copie du script RMAN et Datapump dans {{ scripts_dir }} - # copy: src={{ item }} dest={{ scripts_dir }}/ owner=oracle group=oinstall mode=755 - # loop: - # - backup_rman.sh - # - backup_rman_alldb.sh - # - export_datapump.sh - # - export_datapump_alldb.sh - # tags: backup - - - name: Création de répertoire de sauvegarde RMAN et Datapump /u04 - file: dest=/u04 mode=775 owner=oracle group=oinstall state=directory recurse=yes - tags: backup - - - name: installation du package mutt pour envoyer des mails depuis le shell - yum: name=mutt state=latest disable_gpg_check=yes - tags: backup - - - name: Ajout de la tâche cron RMAN - cron: name="Backup RMAN des bases ouvertes et en AL" user=oracle minute="44" hour="23" job="sh {{ scripts_dir }}/backup_rman_alldb.sh 2>&1 1>/dev/null" - tags: backup - - - name: Ajout de la tâche cron Datapump - cron: name="Export Datapump des bases ouvertes" user=oracle minute="44" hour="21" job="sh {{ scripts_dir }}/export_datapump_alldb.sh 2>&1 1>/dev/null" - tags: backup - - # --------------------------------------------------- - # configuration Linux : config oracle pour logrotate - # Gestion des fichiers logs seulement (archivage et réinitialisation) - # --------------------------------------------------- - - name: Gestion des logs Oracle - copie du fichier de configuration pour logrotate - template: src=logrotate_oracle.j2 dest=/etc/logrotate.d/oracle mode=644 owner=root group=root - tags: logrotate - - # --------------------------------------------------- - # configuration Linux : oracle cleaner dans cron.daily - # Gestion des fichiers trace et xml : purge des anciens fichiers - # --------------------------------------------------- - - name: Netoyage ADR Oracle - copie du fichier de configuration pour cron - template: src=cron_oracle_cleaner.j2 dest=/etc/cron.daily/oracle_cleaner mode=755 owner=root group=root - tags: cron_daily - - # --------------------------------------------------- - # copy du fichier dbora.service dans /lib/systemd/system pour redémmarage auto - # --------------------------------------------------- - - name: Copie du script de démarrage auto des bases Oracle - template: src=dbora.service.j2 dest=/lib/systemd/system/dbora.service owner=root mode=644 - tags: dbora_init - - - name: Activation par systemctl du script de démarrage auto des bases Oracle - systemd: name=dbora daemon_reload=yes enabled=yes - tags: dbora_init - - - debug: msg="Pensez à mettre Y au lieu de N dans /etc/oratab pour les bases à démarreage automatique" diff --git a/roles/oracle-db-install/templates/cron_oracle_cleaner.j2 b/roles/oracle-db-install/templates/cron_oracle_cleaner.j2 deleted file mode 100644 index 741e784..0000000 --- a/roles/oracle-db-install/templates/cron_oracle_cleaner.j2 +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -export ORACLE_BASE={{ oracle_base }} - -export ADMIN_DIR=${ORACLE_BASE}/admin -export RDBMS_LOG_DIR=${ORACLE_BASE}/diag/rdbms -export LSNR_LOG_DIR=${ORACLE_BASE}/diag/tnslsnr - -export DAYS=15 - -/usr/bin/logger -t ora_db_clean_xml "Clean xml file older than $DAYS days from ${RDBMS_LOG_DIR}" -find ${RDBMS_LOG_DIR} -iname "*.xml" -mtime +$DAYS -print -delete | logger -t oracle_clean_xml - -/usr/bin/logger -t ora_lsnr_clean_xml "Clean xml file older than $DAYS days from ${LSNR_LOG_DIR}" -find ${LSNR_LOG_DIR} -iname "*.xml" -mtime +$DAYS -print -delete | logger -t oracle_clean_xml - -/usr/bin/logger -t ora_db_clean_trc "Clean trc file older than $DAYS days from ${RDBMS_LOG_DIR}" -find ${RDBMS_LOG_DIR} -iname "*.trc" -mtime +$DAYS -print -delete | logger -t oracle_clean_trc - -/usr/bin/logger -t ora_db_clean_trm "Clean trm file older than $DAYS days from ${RDBMS_LOG_DIR}" -find ${RDBMS_LOG_DIR} -iname "*.trm" -mtime +$DAYS -print -delete | logger -t oracle_clean_trm - -/usr/bin/logger -t ora_db_clean_aud "Clean audit file older than +$DAYS days from ${ADMIN_DIR}" -find ${ADMIN_DIR} -iname "*.aud" -mtime +$DAYS -print -delete | logger -t oracle_clean_aud diff --git a/roles/oracle-db-install/templates/dbora.service.j2 b/roles/oracle-db-install/templates/dbora.service.j2 deleted file mode 100644 index 97f2920..0000000 --- a/roles/oracle-db-install/templates/dbora.service.j2 +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=Start Oracle Database -After=multi-user.target -After=network.target - -[Service] -Type=simple -Environment=PIDFILE=/run/dbora.pid -ExecStart=/usr/bin/su - oracle -c "{{oracle_home}}/bin/dbstart {{oracle_home}}" -ExecStop=/usr/bin/su - oracle -c "{{oracle_home}}/bin/dbshut {{oracle_home}}" -TimeoutSec=900 -RemainAfterExit=yes - -[Install] -WantedBy=multi-user.target diff --git a/roles/oracle-db-install/templates/logrotate_oracle.j2 b/roles/oracle-db-install/templates/logrotate_oracle.j2 deleted file mode 100644 index b8a06dd..0000000 --- a/roles/oracle-db-install/templates/logrotate_oracle.j2 +++ /dev/null @@ -1,14 +0,0 @@ -{{ oracle_base }}/diag/rdbms/*/*/trace/*.log -{{ oracle_base }}/diag/tnslsnr/*/*/trace/*.log -{ - su oracle oinstall - daily - size 100M - rotate 6 - missingok - compress - notifempty - dateext - create 0640 oracle oinstall -} - diff --git a/roles/oracle-db-postinstall/files/backup_bin.sh b/roles/oracle-db-postinstall/files/backup_bin.sh deleted file mode 100644 index aaf9cd2..0000000 --- a/roles/oracle-db-postinstall/files/backup_bin.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh -#------------------------------------------------------------------------------ -# Historique : -# 25/09/2023 : YOU - premiere version pour sauvegarder les binaires -#------------------------------------------------------------------------------ -#------------------------------------------------------------------------------ -# fonction init : c'est ici qu'il faut modifier toutes les variables liées -# à l'environnement -#------------------------------------------------------------------------------ - -f_init() { - - # positionner les variables d'environnement - export SCRIPTS_DIR=/home/oracle/scripts - - # répertoire source a sauvegarder - export ORAAPP_LOCATION=/u01/app - - # répertoire destination de l'export - export BKP_LOCATION=/u04/ -} #f_init - - -#---------------------------------------- -#------------ MAIN ---------------------- -#---------------------------------------- - - - -#------------------------------------------------------------------------------ -# inititalisation des variables d'environnement -#------------------------------------------------------------------------------ -f_init - -# creation du repertoire de sauvegarde. S'il existe la commande install ne fait rien -install -d ${BKP_LOCATION} - -#------------------------------------------------------------------------------ -# sauvegarde -#------------------------------------------------------------------------------ - -# compression du repertoire oracle app -cd ${BKP_LOCATION} -tar cfz backup_bin_oraapp_$(date +%Y%m%d).tgz ${ORAAPP_LOCATION} diff --git a/roles/oracle-db-postinstall/files/backup_rman.sh b/roles/oracle-db-postinstall/files/backup_rman.sh deleted file mode 100644 index fca605c..0000000 --- a/roles/oracle-db-postinstall/files/backup_rman.sh +++ /dev/null @@ -1,153 +0,0 @@ -#!/bin/sh -#------------------------------------------------------------------------------ -# ORACLE DATABASE : BACKUP RMAN DB + AL -#------------------------------------------------------------------------------ -# Historique : -# 14/09/2011 : YOU - Creation -# 12/10/2015 : YOU - adaptation à l'ensemble des bases -# 13/10/2015 : YOU - ajout des params en ligne de commande -# 03/05/2016 : YOU - adaptation a l'environnement SOM -# 04/05/2016 : YOU - ajout du niveau de sauvegarde : incrementale 0 ou 1 -# 09/11/2022 : YOU - backup simple => db full -# 10/08/2023 : YOU - base noarchivelog : execution de rman validate -# 25/09/2023 : YOU - simplification, 1 seul parametre pour le script -#------------------------------------------------------------------------------ - -#------------------------------------------------------------------------------ -# fonction init : c'est ici qu'il faut modifier toutes les variables liées -# à l'environnement -#------------------------------------------------------------------------------ -f_init() { - - export ORACLE_OWNER=oracle - - # les différents répertoires - export SCRIPTS_DIR=/home/oracle/scripts - export BKP_LOG_DIR=$SCRIPTS_DIR/logs - export BKP_LOCATION=/u04/backup/${ORACLE_SID}/rman - - # nombre de sauvegarde RMAN en ligne à garder - export BKP_REDUNDANCY=1 - export DATE_JOUR=$(date +%Y.%m.%d-%H.%M) - export BKP_LOG_FILE=${BKP_LOG_DIR}/backup_rman_${ORACLE_SID}_${DATE_JOUR}.log - export RMAN_CMD_FILE=${BKP_LOG_DIR}/rman_cmd_file_${ORACLE_SID}.rman - - # nombre de jours de conservation des logs de la sauvegarde - export BKP_LOG_RETENTION=15 - - # nombre de canaux à utiliser - export PARALLELISM=1 - -} # f_init - -#------------------------------------------------------------------------------ -# fonction d'aide -#------------------------------------------------------------------------------ -f_help() { - - cat <> $BKP_LOG_FILE -} #f_print - - -#------------------------------------------------------------------------------ -# traitement de la ligne de commande -#------------------------------------------------------------------------------ - -[ "${ORACLE_SID}" ] || f_help 2; - -# positionner les variables d'environnement ORACLE -export ORACLE_SID -ORAENV_ASK=NO -PATH=/usr/local/bin:$PATH -. oraenv -s >/dev/null - -#------------------------------------------------------------------------------ -# inititalisation des variables d'environnement -#------------------------------------------------------------------------------ -f_init - -#------------------------------------------------------------------------------ -# si ce n'est pas le user oracle qui lance le script, on quitte -#------------------------------------------------------------------------------ -if (test `whoami` != $ORACLE_OWNER) -then - echo - echo "-----------------------------------------------------" - echo "Vous devez etre $ORACLE_OWNER pour lancer ce script" - echo "-----------------------------------------------------" - exit 2 -fi - -#------------------------------------------------------------------------------ -# initialisation des chemins, s'ils n'existent pas ils seront créés par la commande install -#------------------------------------------------------------------------------ -install -d ${BKP_LOCATION} -install -d ${BKP_LOG_DIR} - -#------------------------------------------------------------------------------ -# génération du script de la sauvegarde RMAN -#------------------------------------------------------------------------------ - -# récupération du mode archive ou pas -LOG_MODE=$($ORACLE_HOME/bin/sqlplus -S / as sysdba < ${RMAN_CMD_FILE} -else - echo " - run { - CONFIGURE DEVICE TYPE DISK PARALLELISM $PARALLELISM ; - CONFIGURE RETENTION POLICY TO REDUNDANCY ${BKP_REDUNDANCY}; - BACKUP DEVICE TYPE DISK FORMAT '${BKP_LOCATION}/data_%T_%t_%s_%p' TAG 'DATA_${DATE_JOUR}' AS COMPRESSED BACKUPSET DATABASE; - SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT'; - BACKUP DEVICE TYPE DISK FORMAT '${BKP_LOCATION}/arch_%T_%t_%s_%p' TAG 'ARCH_${DATE_JOUR}' AS COMPRESSED BACKUPSET ARCHIVELOG ALL DELETE ALL INPUT; - DELETE NOPROMPT OBSOLETE; - DELETE NOPROMPT EXPIRED BACKUPSET; - BACKUP CURRENT CONTROLFILE FORMAT '${BKP_LOCATION}/control_%T_%t_%s_%p' TAG 'CTLFILE_${DATE_JOUR}'; - SQL \"ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS ''${BKP_LOCATION}/${ORACLE_SID}_control_file.trc'' REUSE\"; - SQL \"CREATE PFILE=''${BKP_LOCATION}/pfile_${ORACLE_SID}.ora'' FROM SPFILE\"; - } - " > ${RMAN_CMD_FILE} -fi -#------------------------------------------------------------------------------ -# Execution du script RMAN -#------------------------------------------------------------------------------ -f_print "------------------------- DEBUT DE LA BACKUP -------------------------" -${ORACLE_HOME}/bin/rman target / cmdfile=${RMAN_CMD_FILE} log=${BKP_LOG_FILE} - -#------------------------------------------------------------------------------ -# Mail si des erreurs dans le fichier de sauvegarde -#------------------------------------------------------------------------------ -ERR_COUNT=$(egrep "^RMAN-[0-9]*|^ORA-[0-9]:" ${BKP_LOG_FILE} | wc -l) - -if [ ${ERR_COUNT} -ne 0 ]; then - curl -H "t: Erreur RMAN base ${ORACLE_SID} sur le serveur $(hostname)" -d "$(cat ${BKP_LOG_FILE})" -L https://ntfy.axiome.io/backup-rman -fi - -#------------------------------------------------------------------------------ -# Nettoyage auto des logs : durée de concervation déterminée par la variable : ${BKP_LOG_RETENTION} -#------------------------------------------------------------------------------ - -f_print "------------------------- NETTOYAGE DES LOGS -------------------------" -find ${BKP_LOG_DIR} -type f -iname "backup_rman_${BKP_TYPE}*.log" -mtime +${BKP_LOG_RETENTION} -exec rm -fv "{}" \; >> $BKP_LOG_FILE -f_print "------------------------- BACKUP ${BKP_TYPE} TERMINE -------------------------" diff --git a/roles/oracle-db-postinstall/files/backup_rman_alldb.sh b/roles/oracle-db-postinstall/files/backup_rman_alldb.sh deleted file mode 100644 index b49026a..0000000 --- a/roles/oracle-db-postinstall/files/backup_rman_alldb.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -#------------------------------------------------------------------------------ -# ORACLE DATABASE : BACKUP ALL DB RMAN -#------------------------------------------------------------------------------ -# Historique : -# 21/04/2023 : YAO - Creation : backup de toutes les bases ouvertes -#------------------------------------------------------------------------------ - -# toutes les bases ouvertes sont sauvegardées par le script RMAN - -for i in $(ps -ef | grep pmon | grep -v grep | cut -d_ -f3) -do - sh /home/oracle/scripts/backup_rman.sh $i -done diff --git a/roles/oracle-db-postinstall/files/export_datapump.sh b/roles/oracle-db-postinstall/files/export_datapump.sh deleted file mode 100644 index 7c94ddc..0000000 --- a/roles/oracle-db-postinstall/files/export_datapump.sh +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/sh -#------------------------------------------------------------------------------ -# Historique : -# 14/09/2011 : YOU - Creation -# 14/10/2015 : YOU - script générique pour toutes les bases -# 15/12/2022 : YOU - retention de 1 jour -# 25/09/2023 : YOU - simplification du passage des paramètres -#------------------------------------------------------------------------------ -#------------------------------------------------------------------------------ -# fonction init : c'est ici qu'il faut modifier toutes les variables liées -# à l'environnement -#------------------------------------------------------------------------------ -export ORACLE_OWNER=oracle -export MAIL_RCPT=yacine.oumghar@axiome.ai - -f_init() { - - # positionner les variables d'environnement - export SCRIPTS_DIR=/home/oracle/scripts - # paramètres de lang - export LANG=en_US.UTF-8 - export NLS_LANG=AMERICAN_AMERICA.${NLS_CHARACTERSET} - - # répertoire destination de l'export - export EXP_LOCATION=/u04/backup/$ORACLE_SID/expdp - # nom du répertoire au niveau de la base de données - export DPDIR=EXPDP_DIR -} #f_init - -#------------------------------------------------------------------------------ -# fonction d'aide -#------------------------------------------------------------------------------ -f_help() { - -echo " - -syntaxe : $0 ORACLE_SID ------- -" -exit $1 - -} #f_help - -#---------------------------------------- -#------------ MAIN ---------------------- -#---------------------------------------- - -[ "${ORACLE_SID}" ] || f_help 2; - -#------------------------------------------------------------------------------ -# si ce n'est pas le user oracle qui lance le script, on quitte -#------------------------------------------------------------------------------ -if (test `whoami` != $ORACLE_OWNER) -then - echo "Vous devez etre $ORACLE_OWNER pour lancer ce script" - exit -fi - -#------------------------------------------------------------------------------ -# positionner les variables d'environnement ORACLE -#------------------------------------------------------------------------------ -export ORACLE_SID -ORAENV_ASK=NO -PATH=/usr/local/bin:$PATH -. oraenv -s >/dev/null - -#------------------------------------------------------------------------------ -# recuperation du NLS_CHARACTERSET -#------------------------------------------------------------------------------ -NLS_CHARACTERSET=$($ORACLE_HOME/bin/sqlplus -S / as sysdba < " diff --git a/roles/oracle-db-postinstall/tasks/main.yml b/roles/oracle-db-postinstall/tasks/main.yml index ab95570..0d1c364 100644 --- a/roles/oracle-db-postinstall/tasks/main.yml +++ b/roles/oracle-db-postinstall/tasks/main.yml @@ -56,23 +56,6 @@ # ajout de script oracle pour les backups rman # --------------------------------------------------- - # - name: Copie du script backup_rman.sh dans {{ scripts_dir }} - # copy: src=backup_rman.sh dest={{ scripts_dir }}/ owner=oracle group=oinstall mode=755 # - - # - name: Copie du script backup_rman_alldb.sh dans {{ scripts_dir }} - # copy: src=backup_rman_alldb.sh dest={{ scripts_dir }}/ owner=oracle group=oinstall mode=755 - - # # Les scritps locaux ne sont plus copiés, on utilise ceux qui sont sur Github - # - name: Copie du script RMAN et Datapump dans {{ scripts_dir }} - # copy: src={{ item }} dest={{ scripts_dir }}/ owner=oracle group=oinstall mode=755 - # loop: - # - backup_rman.sh - # - backup_rman_alldb.sh - # - export_datapump.sh - # - export_datapump_alldb.sh - # - backup_bin.sh - # tags: backup - - name: Création de répertoire de sauvegarde RMAN et Datapump /u04 file: dest=/u04 mode=775 owner=oracle group=oinstall state=directory recurse=yes tags: backup @@ -96,8 +79,8 @@ cron: name="Backup des binaires" user=oracle minute="44" hour="20" day="1" job="sh {{ scripts_dir }}/backup_bin.sh 2>&1 1>/dev/null" tags: backup - - name: Ajout de la tâche cron backup des AL si FRA >= 85% - cron: name="Backup des AL si FRA >= 85%" user=oracle minute="10" job="sh {{ scripts_dir }}/backup_rman_AL_fct_FRA_Usage.sh" + - name: Ajout de la tâche cron backup des AL si FRA >= seuil définit + cron: name="Backup des AL si FRA >= seuil définit" user=oracle minute="10" job="sh {{ scripts_dir }}/backup_rman_AL_fct_FRA_Usage.sh 2>&1 1>/dev/null" tags: backup # ---------------------------------------------------