ajout de datapump

This commit is contained in:
Yacine31
2023-04-21 00:50:01 +02:00
parent d6f62755a1
commit fee1efba2a
4 changed files with 156 additions and 7 deletions

View File

@@ -113,7 +113,7 @@ done
export ORACLE_SID
ORAENV_ASK=NO
PATH=/usr/local/bin:$PATH
. oraenv -s
. oraenv -s >/dev/null
#------------------------------------------------------------------------------
# inititalisation des variables d'environnement

View File

@@ -0,0 +1,119 @@
#!/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

@@ -0,0 +1,14 @@
#!/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

@@ -41,20 +41,36 @@
# 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.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
# - 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
- name: Création du répertoire de sauvegarde RMAN /u04
- 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: Exécuter le script de backup RMAN tous les jours à 22h44
- 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