Sauvegarde base Oracle

Fermé
prez - 9 mars 2004 à 18:59
 siouat - 8 oct. 2009 à 19:26
Bonjour,
Actuellement je bosse sur une base Oracle 8i et j'ai un problème de taille : je n'arrive pas à sauvegarder la base. J'ai fait beaucoup de recherches sur le net et je n'ai rien trouvé d'intéressant, que ce soit en SQL ou avec DBA.
Si vous avez des modes opératoires sur ce type de sauvegarde allez-y je suis tout ouïe !
Merci.
A voir également:

7 réponses

blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
10 mars 2004 à 09:15
Salut,

une base ORACLE peut être sauvée :
- instance arrêtée
- en utilisant des modules qui permettent de la sauver à la volée
- en la mettant en begin backup pour peu qu'elle ait été lancée en archive log

Il suffit ensuite de sauver les tablespaces la composant, c'est tout.

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
1
non, tu n'es pas obligé d'arrêter ta base!!! --> sauvegarde dite "à chaud"

pour ce faire, il faut prélablement configurer un canal entre ta base et rman (recovery manager) comme ceci
exemple : config_toto.sql

configure backup optimization on;
configure retention policy to recovery window of 15 days; --tu définis ta politique de rétention
configure channel device type disk format '/repertoire de destination/sauv_%n_%U.bckp';
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to '/repertoire de destination/CF_%n_%F.bckp';

tu peux après mettre ça dans un shell .sh qui appellera ton fichier .sql via rman:

exemple : config_toto.sh
rman target / cmdfile '/ton chemin/config_toto.sql'

pour la sauvegarde "à chaud" proprement dite :
script sql pour une sauvegarde complète: bckp_full.sql

run {
set command id to 'rman';
backup
incremental level 0
tag 'base hot L0'
database
plus archivelog
delete all input;
report obsolete;
delete obsolete;
}

pour l'automatiser tu l'appelles depuis un .sh : bckp_full.sh
#
# bckup_full.sh : sauvegarde complète sur disque via RMAN
#
# lancement : doit être exécuté par un utilisateur du groupe unix "OSDBA" (généralement le groupe dba)
#

bckp_full_rman()
{
#
# sauvegarde complète sur disque via RMAN, suppression des archives de plus de 2 semaines
#
sqlplus /nolog <<EOF
whenever sqlerror exit 1
whenever oserror exit 2
connect / as sysdba
spool 'répertoire des logs'/bckp_full_rman$$.log
@'répertoire des scripts'/bckp_full.sql
EOF
RC=$?
[ $RC -ne 0 ] && { echo "\nErreur en creation de sauvegarde : Cf. 'répertoire des logs'/bckp_full_rman$$.log\n";exit 1; }
}
########################################################################
# #
# DEBUT DU PROGRAMME #
# #
########################################################################
clear
# Trappe de fin de programme
trap "sleep 2;kill -s PIPE 0" EXIT INT QUIT TERM

clear
echo "\n\tDébut de la sauvegarde sur disque de la base sur `uname -n` le `date '+%d/%m/%Y à %X'`\n\n"
sleep 2
bckp_full_rman
# Bannière de fin
echo "\n\n\t\tSauvegarde de la base exécutée avec succès le `date '+%d/%m/%Y à %X'`"
exit 0

puis tu automatises avec la crontable.

@+ Guéna
1
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
9 nov. 2004 à 13:44
Salut,

je n'ai jamais dit le contraire...

Voir mon premier message avec "modules qui permettent de sauver à la volée"...

Peux-tu me confirmer que rman est fourni "en standard" avec oracle ?

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
1
Salut Blux,

désolé, j'avais pas vu le point concernant les modules de save à la volée... MEA CULPA l'ami :o)

je te confirme qu'RMAN est inclus dans ORACLE (en tout cas à partir de la 8i c'est sûr)

perso je m'en sers à la fois sur une plateforme de prod (machine HP-UX) et en local sur du windows 2000. les ordres rman s'exécutent de la même façon sur les 2 OS (UNIX/DOS). Après ce sont les shells pour lancer ces ordres qui diffèrent. (.sh/.bat)

au cas où, je cherche des infos sur TINA(atempo), notamment sur la config de ce dernier pour savoir comment déclarer le canal de sauvegarde entre lui et ORACLE. je ne sais pas s'il faut déclarer un canal spécifique dans ORACLE ou bien si c'est TINA qui gère ça tt seul.
Je sauvegarde à la fois sur disque avec RMAN et aussi sur bande via TINA.

malheureusement c'est une politique qui m'est imposée... :'( car j'aurai préféré utiliser le canal SBT de RMAN qui est très simple à employer.
@+ Blux
1
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
9 nov. 2004 à 14:32
Désolé, moi c'est Networker avec NMO, qui sauve...

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Oki, merci qd même. si t'entends parler de TINA n'hésite pas!!! ;oP

'lut,

Guéna.
1
Il y a un souci à exécuter le script bckp_full.sh.
Une fois connecté en sysdba, on lance le script @'/chemin/bckp_full.sql' or ce script se lance via une connection Rman. Du coup, sqlplus ne sait interprété le contenu de bckp_full.sql et donc patatra ...une suite de message
@/home/oracle/bckp_full.sql
1* delete obsolete
delete obsolete
*
ERROR at line 1:
ORA-00942: table or view does not exist
SP2-0158: unknown SET option "command"
SP2-0042: unknown command "backup" - rest of line ignored.
SP2-0734: unknown command beginning "incrementa..." - rest of line ignored.
SP2-0734: unknown command beginning "tag 'base ..." - rest of line ignored.
SP2-0042: unknown command "database" - rest of line ignored.
SP2-0044: For a list of known commands enter HELP
and to leave enter EXIT.
SP2-0734: unknown command beginning "plus archi..." - rest of line ignored.
delete all input
*
ERROR at line 1:
ORA-00903: invalid table name
SP2-0734: unknown command beginning "report obs..." - rest of line ignored.
delete obsolete
*
ERROR at line 1:
ORA-00942: table or view does not exist
SP2-0042: unknown command "}" - rest of line ignored.

Donc problème !
0
Et c'est programmable via un outils ORACLE ou pas ? parce que mon but serait de faire une sauvegarde auto.
0
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
12 mars 2004 à 09:13
Ben non, parce que si tu arrêtes ton instance, elle ne sera pas en mesure de lancer quoi que soit...

Pour une save auto, il faut écrire un script qui arrête l'instance, sauve les tablespaces, les fichiers redo... et relance l'instance après.

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0