IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

Questionnement sur la sauvegarde et la restauration de bases Oracle


Sujet :

Administration Oracle

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Points : 89
    Points
    89
    Par défaut Questionnement sur la sauvegarde et la restauration de bases Oracle
    Bonjour à tous !

    Je débute dans la gestion de bases de données Oracle, et après m'être pas mal documenté, je viens vers vous pour quelques questions qui restent sans réponses :


    - Si j'ai bien compris, dans le monde Oracle, 1 instance = 1 base de données (car l'instance représente les process et la mémoire, alors que la base représente les fichiers physiques)? Pourtant en ayant installé une instance Oracle 11gR2, je me retrouve avec deux bases : MyDatabase (base de données perso) et orcl (base de données par défaut (?)). Donc j'ai dû mal saisir l'information.


    - Est-il possible d'installer plusieurs instances Oracle sur un même serveur? (Et si oui, de différentes versions?). Oracle ne permet malheureusement pas de télécharger gratuitement les anciennes versions...


    - Après avoir sauvegardé une base de données Oracle (à chaud, avec le mode archivelog) avec RMAN, il est possible de restaurer cette base soit tablespace par tablespace (d'après la doc officielle ce genre de restore peut être fait à chaud), soit toute la base d'un coup (et là, on ne peut pas restaurer à chaud). Est-il donc préférable de toujours restaurer une base à chaud? Le temps de restauration peut être combien de fois plus long?


    - Et pour finir, vers la fin d'une restauration complète de base de données, je me prends l'erreur "RMAN-06054 : la récupération après défaillance matérielle requiert un journal inconnu : thread 1, séquence 26 et SCN de début 1351990". Après vérification des fichiers manquant dans le dossier oradata, il ne manque que les redo logs. J'ai essayé d'exécuter la commande "sql “alter database open resetlogs;”;" dans RMAN, ce qui a pour effet de (re)créer les redo logs, de la même taille (mais avec le même contenu?). En tout cas ma base semble identique après restauration, donc tout serait nickel, mais je n'ai pas simulé un problème complexe.


    - Est-ce que la sauvegarde et la restauration de bases de données avec RMAN sont aussi efficaces sans recovery catalog qu'avec?


    - Est-il possible d'exporter une base à chaud avec l'outil expdp? Je n'ai pas très bien compris les possibilités avec l'option FLASHBACK.


    Merci d'avance si avez réponse à une ou plusieurs de mes questions :-)

  2. #2
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    - Si j'ai bien compris, dans le monde Oracle, 1 instance = 1 base de données (car l'instance représente les process et la mémoire, alors que la base représente les fichiers physiques)? Pourtant en ayant installé une instance Oracle 11gR2, je me retrouve avec deux bases : MyDatabase (base de données perso) et orcl (base de données par défaut (?)). Donc j'ai dû mal saisir l'information.
    Oui, jusqu'à la prochaine version, chaque base doit avoir son instance.
    En RAC une base peut être ouverte plusieurs instance.

    Tu n'as pas installé une instance. Tu as installé le software (les exécutables), qui permet de lancer une ou plusieurs instances (les process).
    Lors de l'installation, il est possible de créer en même temps des bases, avec les instances associées.

    - Est-il possible d'installer plusieurs instances Oracle sur un même serveur? (Et si oui, de différentes versions?). Oracle ne permet malheureusement pas de télécharger gratuitement les anciennes versions...
    Oui. Une installation (un 'ORACLE HOME') peut être utilisée pour démarrer plusieurs instances de même version. Et on peut installer plusieurs 'ORACLE HOME'. Ce sont les variables d'environnement ORACLE_HOME et ORACLE_SID qui déterminent respectivement le software à utiliser et l'instance à laquelle se connecter.

    - Après avoir sauvegardé une base de données Oracle (à chaud, avec le mode archivelog) avec RMAN, il est possible de restaurer cette base soit tablespace par tablespace (d'après la doc officielle ce genre de restore peut être fait à chaud), soit toute la base d'un coup (et là, on ne peut pas restaurer à chaud). Est-il donc préférable de toujours restaurer une base à chaud? Le temps de restauration peut être combien de fois plus long?
    Attention, c'est plus complexe. Restaurer un tablespace n'est possible que pour le restaurer à la version la plus courrante (sinon perte d'intégrité avec les autres tablespaces) et le tablespace doit être offline. Ce n'est pas une question de préférence: si tu perd un datafile d'un tablespace, tu préfère mettre uniquement ce tablespace offline pour peut-être garder d'autres applis en service.

    J'ai essayé d'exécuter la commande "sql “alter database open resetlogs;”;" dans RMAN, ce qui a pour effet de (re)créer les redo logs, de la même taille (mais avec le même contenu?). En tout cas ma base semble identique après restauration, donc tout serait nickel, mais je n'ai pas simulé un problème complexe.
    Lorsque tu perd aussi les redo logs (ce qui devrait être rare: on les multiplexe) on perd les infos qu'il y a dedans et qui n'ont pas encore été copiées dans les archivelogs.

    - Est-ce que la sauvegarde et la restauration de bases de données avec RMAN sont aussi efficaces sans recovery catalog qu'avec?
    Oui, Ce n'est pas une question de performance, mais de maintenabilité, d'historique, etc.

    - Est-il possible d'exporter une base à chaud avec l'outil expdp? Je n'ai pas très bien compris les possibilités avec l'option FLASHBACK.
    l'export n'est pas un backup: il ne permet pas de revenir jusqu'au moment de la panne. Et sourtout: il est long (il faut rinsérer toutes les données, recréer tous les index) et donne une base physiquement différente (d'où performance différente, etc.)
    ... tout le contraire de ce qu'on souhaite lorsqu'on doit récuperer d'une panne disque...

    Cordialement,
    Franck.

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Points : 89
    Points
    89
    Par défaut
    Salut Franck, et merci pour tes réponses.

    Juste quelques derniers éclaircissements, dit moi si je me trompe :

    - On ne créé pas une instance, on créé une base de données (et donc l'instance qui va avec se créée toute seule?).

    - Est-il possible de restaurer une base à plusieurs niveaux (tablespace, schema, restore complète, etc.) avec la même et unique sauvegarde complète d'une base?

    - Du coup, la commande “alter database open resetlogs;” recréé bien les redologs avec le même contenu? Car je dois prendre en compte tous les cas possibles et imaginables.

    - N'est-il pas possible de sauvegarder les redologs d'une base? Uniquement les archivelogs?

    Et dernière question, j'ai simulé la perte totale d'une base de données (Shutdown + Drop database), et tenté de la restaurer à l'aide de RMAN :

    Je ne peux pas me connecter à la base avec RMAN (logique elle n'existe plus), et donc je ne peux pas commencer la procédure de restauration (restore controlfile - Cf. erreur ci-dessous). Existe-t-il une procédure particulière pour ce genre de cas?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    RMAN-03002: Echec de la commande restore à 03/13/2013 10:40:08
    RMAN-12010: Echec d initialisation de l allocation automatique de canal
    RMAN-06403: Impossible d obtenir une session avec toutes les autorisations
    ORA-01034: ORACLE not available
    ORA-27101: Shared memory realm does not exist

    Merci encore Franck.

    Cordialement,
    Clément.

  4. #4
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2010
    Messages : 73
    Points : 93
    Points
    93
    Par défaut
    - On ne créé pas une instance, on créé une base de données (et donc l'instance qui va avec se créée toute seule?).
    Lorsque tu crées une base de données, celle ci étant composée d'une instance + les fichiers de données + les fichiers de journalisation + les fichiers de controle + le fichier de paramètre d'initialisation, alors oui tu crées l'instance en même temps.

    - Est-il possible de restaurer une base à plusieurs niveaux (tablespace, schema, restore complète, etc.) avec la même et unique sauvegarde complète d'une base?
    On peut restaurer une base entièrement
    On peut restaurer un tablespace si problème
    On ne peut pas restaurer un schéma
    On peut restaurer le fichier de controle (control_file)
    On peut restaurer un fichier de données
    Tous ces cas de fichiers sont fonction du besoin en restauration. Un crash du disque local du serveur de la base entrainerait la restauration complète de la base par exemple.

    Et dernière question, j'ai simulé la perte totale d'une base de données (Shutdown + Drop database), et tenté de la restaurer à l'aide de RMAN :
    Je ne peux pas me connecter à la base avec RMAN (logique elle n'existe plus), et donc je ne peux pas commencer la procédure de restauration (restore controlfile - Cf. erreur ci-dessous). Existe-t-il une procédure particulière pour ce genre de cas?
    RMAN, comme SQL*PLUS, sont des outils qui se connectent à la base de données que tu souhaites manipulée. Dans ton cas, elle n'existe pas. Donc la première chose à faire est de recréer ta base vide. c'est à dire :
    1 - l'instance : control_file, fichier d'initialisation, redolog
    2 - la structure des données : tablespaces SYSTEM, SYSAUX, USERS + les tablespaces fonctionnels de ton application avec les tailles qu'il faut.
    3 - S'assurer que les datafiles + control_file sont bien sur des emplacements de ton arborescence oracle.
    4 - la restauration avec RMAN consiste à dupliquer la base source qui t'a servit pour constituer ton backup. Ce backup embarque alors des emplacements des datafiles.

    Tout le reste est dans les forums et la doc oracle : http://www.lolokai.com/sgbd/oracle/s...overy-manager/

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Points : 89
    Points
    89
    Par défaut
    Ok super, merci pour les réponses Alexi.

    Je clôt le post du coup ! :-)

  6. #6
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    - On ne créé pas une instance, on créé une base de données (et donc l'instance qui va avec se créée toute seule?).
    En vérité, l'instance se crée quand tu fait 'startup' puis elle ouvre la base de données.

    - Est-il possible de restaurer une base à plusieurs niveaux (tablespace, schema, restore complète, etc.) avec la même et unique sauvegarde complète d'une base?
    Oui sauf schema: le backup est physique: datafiles > tablespace > database

    - Du coup, la commande “alter database open resetlogs;” recréé bien les redologs avec le même contenu? Car je dois prendre en compte tous les cas possibles et imaginables.
    Non ! Pas avec le même contenu. Les transactions qui étaient dans les redo logs sont perdues ! Sauf si ils sont été archivés en archivelogs.

    - N'est-il pas possible de sauvegarder les redologs d'une base? Uniquement les archivelogs?
    En fait, l'archive log est le backup du redo log.

    Je ne peux pas me connecter à la base avec RMAN (logique elle n'existe plus), et donc je ne peux pas commencer la procédure de restauration (restore controlfile - Cf. erreur ci-dessous). Existe-t-il une procédure particulière pour ce genre de cas?
    Oui: il faut:
    - démarrer l'instance en nomount
    - restaurer le control file (si on n'a pas de catalogue, il faut connaitre le DBID)
    - monter la base
    - restaurer le backup des datafiles

    Dans la doc RMAN tous les scénarios sont décris. C'est mieux de les connaître avant d'en avoir besoin...
    Ou par exemple: http://gavinsoorma.com/2009/07/rman-...control-files/

    Cordialement,
    Franck.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Questionnement sur la sauvegarde à chaud
    Par CleeM dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 26/01/2013, 15h29
  2. Réponses: 0
    Dernier message: 27/07/2011, 09h23
  3. Réponses: 2
    Dernier message: 08/01/2010, 02h11
  4. Réponses: 3
    Dernier message: 12/03/2009, 09h03
  5. Aide à la restauration de Bases Oracle 9i
    Par nico1512 dans le forum Oracle
    Réponses: 1
    Dernier message: 10/10/2007, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo