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 :

Copier une sauvegarde rman de prod sur une base de test existante [12c]


Sujet :

Administration Oracle

  1. #1
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut Copier une sauvegarde rman de prod sur une base de test existante
    Bonjour,

    Ce que j'ai trouvé jusque là sur Internet est une duplication de base et il semble que ce soit à chaque fois la création d'une nouvelle base à partir d'une existante.
    Ce que je souhaite, c'est utiliser une sauvegarde RMAN de la prod pour remplacer les données d'une base de test qui n'a pas le même nom.

    Voilà ce que j'ai essayé :
    - copie des fichiers de sauvegarde RMAN du controlfile, des données et des archivelogs du serveur de prod vers un répertoire de transfert sur le serveur de test ;
    - passage de la base de test en NOMOUNT ;
    - puis ceci :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ rman auxiliary /
     
    duplicate database to [nom de la base de test] backup location '[chemin/vers/le/repertoire/de/transfert]' nofilenamecheck;

    Résultat :
    - au lieu de remplacer les ficheirs de données de la base de test, ça a créé un nouveau répertoire au nom de la base de prod et y a construit les fichiers de données ;
    - beau message d'erreur dans RMAN :
    "RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of Duplicate Db command at 09/05/2019 16:57:44
    RMAN-05501: aborting duplication of target database
    RMAN-03015: error occurred in stored script Memory Script
    RMAN-06136: ORACLE error from auxiliary database: ORA-00344: impossible de recreer le journal en ligne '/data/oracle/cocktail/redo/redo01a.log'
    ORA-27040: erreur lors de la creation du fichier : creation impossible
    Linux-x86_64 Error: 2: No such file or directory
    Additional information: 1"
    Aurait-il fallu aussi transférer les redologs ?

    Qu'est-ce qui ne va pas dans la méthode que j'ai utilisée ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Je ne suis pas sûr s'il est possible de faire ce que tu dis, mais déjà, est-ce que le répertoire /data/oracle/cocktail/redo/ existe sur ton serveur ?

    rman ne recrée pas l'arborescence, donc il faut que toute l'arborescence existe sur ton nouveau serveur
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #3
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    "Ce que je souhaite, c'est utiliser une sauvegarde RMAN de la prod pour remplacer les données d'une base de test qui n'a pas le même nom."
    Quand on veut transférer des données d'une base à une autre sous Oracle, c'est Datapump qu'il faut utiliser dans la plupart des cas, pas RMAN; on est d'accord?

    Pourquoi dois-tu passer par ta sauvegarde RMAN et utiliser absolument ta base de test?
    Si c'est un pré-requis absolu (du genre on veut réutiliser ces données sauvegardées il y a X jours et pas les données les plus récentes de prod car on a "m***é" dans nos programmes et je ne peut pas créer de nouvelle base), je pense que la démarche orthodoxe serait de créer une nouvelle base via la commande DUPLICATE de RMAN, faire un export Datapump de toute ta base ou que des tablespaces qui t'intéressent puis faire un import Datapump dans ta base de test.
    Mais visiblement, de ce que j'ai lu sur le net, si tu fais un DUPLICATE avec RMAN, c'est pour créer une nouvelle base.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Avant, en version 11, nous faisions des sauvegardes à froid en copiant les datafiles et je faisais la copie de BDD vers les bases dites "de test", au besoin, par transfert des datafiles et reconstruction du controlfile de la base de test via un script.

    Depuis le passage en V12, nous avons opté pour les sauvegardes RMAN qui sont plus légères.

    L'objectif de ces copies pontuelles de BDD de prod vers test est de mettre à disposition des utilisateurs une base "bac à sable" pour qu'ils puissent tester des manipulations, simuler la préparation du budget... sans casser la prod.

    J'attends la solution de la part du prestataire qui nous a fait la migration V11 -> V12 et qui a omit de me donner la bonne procédure. Puisque, apparemment, ce n'est pas si facile que ça à trouver, j'en ferai un billet de blog.

    Merci quand même pour les réponses.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Je ne saurais trop te conseiller le livre suivant "RMAN Recipes for Oracle Database 12c: A Problem-Solution Approach de Darl Kuhn" : https://www.amazon.fr/RMAN-Recipes-O.../dp/143024836X


    Il parle du DUPLICATE sur plusieurs pages mais je n'ai pas trouvé de réponse à ton problème.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  6. #6
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Il y a une façon de changer le SID d'une base https://www.oracle.com/ocom/groups/p...ent/283698.htm
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  7. #7
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    RMAN DUPLICATE est tout à fait l'outil approprié pour rafraîchir intégralement une base de données de test depuis la production.
    Effectivement, la base de test va être entièrement recréée à chaque exécution. C'est la principe de la chose, et c'est parfait pour l'usage souhaité.

    Elle va bien s'appeler TEST grâce à la clause DUPLICATE DATABASE TO TEST.
    Et les conversions de chemins doivent être traitées par la clause DB_FILE_NAME_CONVERT.

    Dans votre contexte, c'est bien sûr une erreur que d'utiliser NOFILENAMECHECK, puisque cela signifie : reprends les mêmes chemins et noms qu'à la source, sans te poser plus de questions !


    Un exemple pour donner une idée (mais qui duplique en direct depuis la base de prod, et non pas depuis une sauvegarde).
    On suppose qu'on a déjà un PFILE ou SPFILE pour la base de test.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    rman target sys/xxx@PROD auxiliary sys/xxx@TEST 
     
     
            startup clone force nomount;
     
     
            duplicate database to TEST
            from active database
            db_file_name_convert '/database/data/PROD',  '/database/data/TEST',
                                 '/database/index/PROD', '/database/index/TEST'
            logfile
            GROUP 1 ('/database/data/TEST/redo01a.log', '/database/data/TEST/redo01b.log') SIZE 50M REUSE,
            GROUP 2 ('/database/data/TEST/redo02a.log', '/database/data/TEST/redo02b.log') SIZE 50M REUSE,
            GROUP 3 ('/database/data/TEST/redo03a.log', '/database/data/TEST/redo03b.log') SIZE 50M REUSE;
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Oui, Pomalaix, c'est à peu près la solution qui m'a été donnée et qui fonctionne.
    Je ferai un billet de blog sur ce sujet rapidement.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  9. #9
    Membre confirmé
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : Avril 2015
    Messages : 392
    Points : 552
    Points
    552
    Par défaut
    Peut. être. que. ceci. vous. sera. utile.
    http://oracleinaction.com/duplicate-db-no-db-conn/
    bonne. chance.

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

Discussions similaires

  1. [AC-2010] Copier une base sur la base en cours d'utilisation (utilisation de CopyFile)
    Par Access2010user dans le forum VBA Access
    Réponses: 0
    Dernier message: 26/04/2018, 10h31
  2. Copier une bases de données sur clé USB ou disque dur externe
    Par DEV-10 dans le forum Administration
    Réponses: 1
    Dernier message: 25/11/2011, 08h41
  3. Copier une base de sauvegarde par copier-coller
    Par piflechien73 dans le forum Réplications
    Réponses: 3
    Dernier message: 18/09/2011, 19h25
  4. copier une base sql
    Par Matéo79 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 18/10/2005, 14h32
  5. copier une base
    Par Spoutnik dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 06/03/2004, 16h36

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