ajout de.env

toutes les variables d'environnement dans .env et non dans les scripts
This commit is contained in:
Yacine31
2024-07-25 21:16:49 +02:00
parent 3c1ad140ae
commit 7766b47821
9 changed files with 173 additions and 64 deletions

43
.env.local Normal file
View File

@@ -0,0 +1,43 @@
# les variables d'environnement
# compte Os du propriétaire de la base
export ORACLE_OWNER=oracle
# répertoire où se trouvent les scripts en cours
export SCRIPTS_DIR=/home/oracle/scripts
# répertoire où seront stockés les fichiers logs des différents scripts
export BKP_LOG_DIR=$SCRIPTS_DIR/logs
# nombre de jours de conservation des logs de la sauvegarde
export BKP_LOG_RETENTION=15
# --- RMAN ---
# nombre de canaux à utiliser
export PARALLELISM=1
# répertoire où seront stockés les sauvegardes RMAN
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
# format de la date pour l'affichage RMAN
export NLS_DATE_FORMAT="YYYY/MM/DD HH24:MI:SS"
# --- RMAN ---
# --- backup RMAN des AL conditionnelle
PCT_LIMIT=85 # pourcentagre de la FRA au-dessus duquel on déclenche une sauvegarde des archiveslogs
ACTION_SCRIPT="${script_dir}/backup_rman_AL.sh" # script RMAN de sauvegarde des archivelogs
# --- backup RMAN des AL conditionnelle
# --- EXPDP ---
# paramètres de langue pour expdp
export LANG=en_US.UTF-8
export NLS_LANG=AMERICAN_AMERICA
# 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
# --- EXPDP ---
# URL de notification
export NTFY_URL="https://ntfy.axiome.io/backup-rman"

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
# fichier qui contient les variables d'environnement
.env

View File

@@ -11,34 +11,9 @@
# 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
# 25/07/2024 : YOU - fichier .env pour les variables d'environnement
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# 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
@@ -76,7 +51,19 @@ export ORACLE_SID
#------------------------------------------------------------------------------
# inititalisation des variables d'environnement
#------------------------------------------------------------------------------
f_init
# Nom du fichier .env
ENV_FILE=".env"
# Vérifier si le fichier .env existe
if [ ! -f "$ENV_FILE" ]; then
echo "Erreur : Le fichier $ENV_FILE n'existe pas."
echo "Erreur : Impossible de charger les variables d'environnement."
exit 1
fi
# Charger les variables d'environnement depuis le fichier .env
source "$ENV_FILE"
#------------------------------------------------------------------------------
# vérifier si ORACLE_SID est dans /etc/orata
@@ -184,7 +171,7 @@ ${ORACLE_HOME}/bin/rman target / cmdfile=${RMAN_CMD_FILE} log=${BKP_LOG_FILE}
ERR_COUNT=$(egrep "^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
curl -H "t: Erreur RMAN base ${ORACLE_SID} sur le serveur $(hostname)" -d "$(cat ${BKP_LOG_FILE})" -L ${NTFY_URL}
fi
#------------------------------------------------------------------------------

View File

@@ -70,7 +70,21 @@ ORACLE_SID=$1
#------------------------------------------------------------------------------
# inititalisation des variables d'environnement
#------------------------------------------------------------------------------
f_init
# f_init
# Nom du fichier .env
ENV_FILE=".env"
# Vérifier si le fichier .env existe
if [ ! -f "$ENV_FILE" ]; then
echo "Erreur : Le fichier $ENV_FILE n'existe pas."
echo "Erreur : Impossible de charger les variables d'environnement."
exit 1
fi
# Charger les variables d'environnement depuis le fichier .env
source "$ENV_FILE"
# vérifier si ORACLE_SID est pésente dans le fichier /etc/oratab
if [ "$(grep -v '^$|^#' /etc/oratab | grep -c "^${ORACLE_SID}:")" -ne 1 ]; then

View File

@@ -11,6 +11,23 @@
# 21/12/2023 : YOU - Creation
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# inititalisation des variables d'environnement
#------------------------------------------------------------------------------
# Nom du fichier .env
ENV_FILE=".env"
# Vérifier si le fichier .env existe
if [ ! -f "$ENV_FILE" ]; then
echo "Erreur : Le fichier $ENV_FILE n'existe pas."
echo "Erreur : Impossible de charger les variables d'environnement."
exit 1
fi
# Charger les variables d'environnement depuis le fichier .env
source "$ENV_FILE"
for sid in $(ps -ef | grep pmon | grep -v grep | cut -d_ -f3 | sort)
do
@@ -29,11 +46,6 @@ do
PATH=/usr/local/bin:$PATH
. oraenv -s >/dev/null
# Variables d'initialisation
script_dir=/home/oracle/scripts
pct_limit=85
action_script="${script_dir}/backup_rman_AL.sh ${ORACLE_SID}"
#
# calcul de la taille FRA
#
@@ -48,10 +60,10 @@ EOF
#
# Si la FRA dépasse la limite on lance le script
#
if [ "${pct_fra_used}" -gt ${pct_limit} ]
if [ "${pct_fra_used}" -gt ${PCT_LIMIT} ]
then
echo ${pct_fra_used} : backup des archivelog necessaire par script ${action_script}
sh ${action_script}
echo ${pct_fra_used} : backup des archivelog necessaire par script ${ACTION_SCRIPT}
sh ${ACTION_SCRIPT} ${ORACLE_SID}
else
echo ${pct_fra_used} : backup des archivelog non necessaire
fi

View File

@@ -1,12 +1,31 @@
#!/bin/sh
#------------------------------------------------------------------------------
# ORACLE DATABASE : BACKUP ALL B
# sauvegarde de touts les bases ouvertes (en mode archivelog)
#------------------------------------------------------------------------------
# sauvegarde de touts les bases ouvertes (en mode archivelog)
export SCRIPTS_DIR=/home/oracle/scripts
#------------------------------------------------------------------------------
# inititalisation des variables d'environnement
#------------------------------------------------------------------------------
# Nom du fichier .env
ENV_FILE=".env"
# Vérifier si le fichier .env existe
if [ ! -f "$ENV_FILE" ]; then
echo "Erreur : Le fichier $ENV_FILE n'existe pas."
echo "Erreur : Impossible de charger les variables d'environnement."
exit 1
fi
# Charger les variables d'environnement depuis le fichier .env
source "$ENV_FILE"
#------------------------------------------------------------------------------
# boucle de sauvegarde des bases
#------------------------------------------------------------------------------
for b in $(ps -ef | grep pmon | grep -v grep | cut -d_ -f3 | sort)
do
${SCRIPTS_DIR}/backup_rman.sh $b

View File

@@ -100,8 +100,22 @@ done
[ "${ORACLE_SID}" ] || f_help 2;
#------------------------------------------------------------------------------
# inititalisation des variables d'environnement
f_init
#------------------------------------------------------------------------------
# Nom du fichier .env
ENV_FILE=".env"
# Vérifier si le fichier .env existe
if [ ! -f "$ENV_FILE" ]; then
echo "Erreur : Le fichier $ENV_FILE n'existe pas."
echo "Erreur : Impossible de charger les variables d'environnement."
exit 1
fi
# Charger les variables d'environnement depuis le fichier .env
source "$ENV_FILE"
# vérifier si ORACLE_SID est pésente dans le fichier /etc/oratab
if [ "$(grep -v '^$|^#' /etc/oratab | grep -c "^${ORACLE_SID}:")" -ne 1 ]; then

View File

@@ -11,21 +11,6 @@
# à l'environnement
#------------------------------------------------------------------------------
export ORACLE_OWNER=oracle
export MAIL_RCPT=yacine.oumghar@axiome.io
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
@@ -49,6 +34,22 @@ ORACLE_SID=$1
[ "${ORACLE_SID}" ] || f_help 2;
#------------------------------------------------------------------------------
# inititalisation des variables d'environnement
#------------------------------------------------------------------------------
# Nom du fichier .env
ENV_FILE=".env"
# Vérifier si le fichier .env existe
if [ ! -f "$ENV_FILE" ]; then
echo "Erreur : Le fichier $ENV_FILE n'existe pas."
echo "Erreur : Impossible de charger les variables d'environnement."
exit 1
fi
# Charger les variables d'environnement depuis le fichier .env
source "$ENV_FILE"
#------------------------------------------------------------------------------
# si ce n'est pas le user oracle qui lance le script, on quitte
#------------------------------------------------------------------------------
@@ -58,11 +59,6 @@ then
exit
fi
#------------------------------------------------------------------------------
# inititalisation des variables d'environnement
#------------------------------------------------------------------------------
f_init
#------------------------------------------------------------------------------
# positionner les variables d'environnement ORACLE
# et vérifier si ORACLE_SID est dans /etc/orata
@@ -94,6 +90,9 @@ EOF
)
NLS_CHARACTERSET=$(echo $NLS_CHARACTERSET | sed 's/^\s*//g')
# on complète la variable NLS_LANG qui vient du fichier .env avec la variable NLS_CHARACTERSET
export NLS_LANG="${NLS_LANG}.${NLS_CHARACTERSET}"
# creation du repertoire de sauvegarde. S'il existe la commande install ne fait rien
install -d ${EXP_LOCATION}
@@ -130,5 +129,5 @@ 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
curl -H "t: Erreur expdp base ${ORACLE_SID} sur le serveur $(hostname)" -d "$MSG" -L ${NTFY_URL}
fi

View File

@@ -6,9 +6,28 @@
# 21/04/2023 : YOU - Creation : export datapump de toutes les bases ouvertes
#------------------------------------------------------------------------------
# toutes les bases ouvertes sont sauvegardées par le expdp
#------------------------------------------------------------------------------
# inititalisation des variables d'environnement
#------------------------------------------------------------------------------
for i in $(ps -ef | grep pmon | grep -v grep | cut -d_ -f3 | egrep -v '+ASM|+APX)
# Nom du fichier .env
ENV_FILE=".env"
# Vérifier si le fichier .env existe
if [ ! -f "$ENV_FILE" ]; then
echo "Erreur : Le fichier $ENV_FILE n'existe pas."
echo "Erreur : Impossible de charger les variables d'environnement."
exit 1
fi
# Charger les variables d'environnement depuis le fichier .env
source "$ENV_FILE"
#------------------------------------------------------------------------------
# toutes les bases ouvertes sont sauvegardées par le expdp
#------------------------------------------------------------------------------
for i in $(ps -ef | grep pmon | grep -v grep | cut -d_ -f3 | egrep -v '+ASM|+APX')
do
sh /home/oracle/scripts/export_datapump.sh $i
sh ${SCRIPTS_DIR}/export_datapump.sh $i
done