nettoyage des scripts et des roles

This commit is contained in:
Yacine31
2023-12-26 00:29:50 +01:00
parent 0f3c00fa56
commit ce16bde632
19 changed files with 2 additions and 890 deletions

View File

@@ -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 -------------------------"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1 +0,0 @@
set sqlprompt "_user'@'_connect_identifier> "

View File

@@ -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

View File

@@ -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

View File

@@ -13,6 +13,3 @@
# Application du patch
- include: opatch_apply.yml
# Ajout des sripts d'exploitation
- include: scripts_exploitation.yml

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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
}