nettoyage des scripts et des roles
This commit is contained in:
@@ -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 <<CATEOF
|
||||
syntax : $O -s ORACLE_SID
|
||||
|
||||
-s ORACLE_SID
|
||||
|
||||
CATEOF
|
||||
exit $1
|
||||
|
||||
} #f_help
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# fonction d'affichage de la date ds les logs
|
||||
#------------------------------------------------------------------------------
|
||||
f_print()
|
||||
{
|
||||
echo "[`date +"%Y/%m/%d %H:%M:%S"`] : $1" >> $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 -------------------------"
|
||||
@@ -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
|
||||
@@ -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 <<EOF
|
||||
set heading off
|
||||
set feedback off
|
||||
set echo off
|
||||
select VALUE from nls_database_parameters where PARAMETER='NLS_CHARACTERSET';
|
||||
EOF
|
||||
)
|
||||
NLS_CHARACTERSET=$(echo $NLS_CHARACTERSET | sed 's/^\s*//g')
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# inititalisation des variables d'environnement
|
||||
#------------------------------------------------------------------------------
|
||||
f_init
|
||||
|
||||
# creation du repertoire de sauvegarde. S'il existe la commande install ne fait rien
|
||||
install -d ${EXP_LOCATION}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# creation du répertoire DPDIR au niveau de la base
|
||||
#------------------------------------------------------------------------------
|
||||
$ORACLE_HOME/bin/sqlplus -S / as sysdba <<EOF
|
||||
set heading off
|
||||
set feedback off
|
||||
set echo off
|
||||
create or replace directory $DPDIR as '${EXP_LOCATION}';
|
||||
grant read, write on directory $DPDIR to public;
|
||||
exit
|
||||
EOF
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# export des données
|
||||
#------------------------------------------------------------------------------
|
||||
$ORACLE_HOME/bin/expdp \'/ as sysdba\' full=y directory=$DPDIR dumpfile=export_${ORACLE_SID}.dmp logfile=export_${ORACLE_SID}.log flashback_time=systimestamp reuse_dumpfiles=yes
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ORACLE DATABASE : EXPDP ALL DB RMAN
|
||||
#------------------------------------------------------------------------------
|
||||
# Historique :
|
||||
# 21/04/2023 : YAO - Creation : export datapump 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/export_datapump.sh -s $i
|
||||
done
|
||||
@@ -1 +0,0 @@
|
||||
set sqlprompt "_user'@'_connect_identifier> "
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -13,6 +13,3 @@
|
||||
# Application du patch
|
||||
- include: opatch_apply.yml
|
||||
|
||||
# Ajout des sripts d'exploitation
|
||||
- include: scripts_exploitation.yml
|
||||
|
||||
|
||||
@@ -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"
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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}
|
||||
@@ -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 <<CATEOF
|
||||
syntax : $O ORACLE_SID
|
||||
|
||||
CATEOF
|
||||
exit $1
|
||||
|
||||
} #f_help
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# fonction d'affichage de la date ds les logs
|
||||
#------------------------------------------------------------------------------
|
||||
f_print()
|
||||
{
|
||||
echo "[`date +"%Y/%m/%d %H:%M:%S"`] : $1" >> $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 <<EOF
|
||||
set heading off
|
||||
set feedback off
|
||||
set echo off
|
||||
select LOG_MODE from V\$DATABASE;
|
||||
EOF
|
||||
)
|
||||
LOG_MODE=$(echo $LOG_MODE | sed 's/^\s*//g')
|
||||
|
||||
if [ "$LOG_MODE" == "NOARCHIVELOG" ]; then
|
||||
echo "validate check logical database;" > ${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 -------------------------"
|
||||
@@ -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
|
||||
@@ -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 <<EOF
|
||||
set heading off
|
||||
set feedback off
|
||||
set echo off
|
||||
select VALUE from nls_database_parameters where PARAMETER='NLS_CHARACTERSET';
|
||||
EOF
|
||||
)
|
||||
NLS_CHARACTERSET=$(echo $NLS_CHARACTERSET | sed 's/^\s*//g')
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# inititalisation des variables d'environnement
|
||||
#------------------------------------------------------------------------------
|
||||
f_init
|
||||
|
||||
# creation du repertoire de sauvegarde. S'il existe la commande install ne fait rien
|
||||
install -d ${EXP_LOCATION}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# creation du répertoire DPDIR au niveau de la base
|
||||
#------------------------------------------------------------------------------
|
||||
$ORACLE_HOME/bin/sqlplus -S / as sysdba <<EOF
|
||||
set heading off
|
||||
set feedback off
|
||||
set echo off
|
||||
create or replace directory $DPDIR as '${EXP_LOCATION}';
|
||||
grant read, write on directory $DPDIR to public;
|
||||
exit
|
||||
EOF
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# export des données
|
||||
#------------------------------------------------------------------------------
|
||||
# suppression des anciens fichier tar, dump et log du répertoire
|
||||
rm -f ${EXP_LOCATION}/export_${ORACLE_SID}.{log,dmp,tgz}
|
||||
|
||||
# export datapump
|
||||
$ORACLE_HOME/bin/expdp \'/ as sysdba\' full=y directory=$DPDIR dumpfile=export_${ORACLE_SID}.dmp logfile=export_${ORACLE_SID}.log flashback_time=systimestamp reuse_dumpfiles=yes
|
||||
|
||||
# compression du dump et son log dans un seul fichier et suppression des fichiers d'origine
|
||||
cd ${EXP_LOCATION}
|
||||
tar cfz export_${ORACLE_SID}.tgz export_${ORACLE_SID}.{dmp,log} && rm -f export_${ORACLE_SID}.dmp
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Mail si des erreurs dans le fichier de sauvegarde
|
||||
#------------------------------------------------------------------------------
|
||||
EXPDP_LOG_FILE=${EXP_LOCATION}/export_${ORACLE_SID}.log
|
||||
ERR_COUNT=$(egrep "^EXP-[0-9]*|^ORA-[0-9]:" ${EXPDP_LOG_FILE} | wc -l)
|
||||
MSG=$(egrep "^EXP-[0-9]*|^ORA-[0-9]:" ${EXPDP_LOG_FILE})
|
||||
|
||||
if [ ${ERR_COUNT} -ne 0 ]; then
|
||||
curl -H "t: Erreur expdp base ${ORACLE_SID} sur le serveur $(hostname)" -d "$MSG" -L https://ntfy.axiome.io/expdp
|
||||
fi
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ORACLE DATABASE : EXPDP ALL DB RMAN
|
||||
#------------------------------------------------------------------------------
|
||||
# Historique :
|
||||
# 21/04/2023 : YAO - Creation : export datapump 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/export_datapump.sh $i
|
||||
done
|
||||
@@ -1 +0,0 @@
|
||||
set sqlprompt "_user'@'_connect_identifier> "
|
||||
@@ -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
|
||||
|
||||
# ---------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user