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 :

RMAN : création d'une base auxiliaire depuis un backup puis Datapump [18c]


Sujet :

Administration Oracle

  1. #1
    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 RMAN : création d'une base auxiliaire depuis un backup puis Datapump
    Salut les DBA,

    Je m'arrache les cheveux sur le pb suivant, que je traîne depuis des années

    Ma base de test (en multi-tenants) n'a pas de catalog RMAN : c'est pas bien mais c'est comme beaucoup de clients.
    J'ai créé, sauvegardé puis droppé un tablespace.
    Celui-ci n'est plus connu du control file donc le restore/recover est impossible.

    Une solution est de restaurer la base dans le passé (faire un PITR) MAIS je ne veux pas car cela signifie perdre toutes les modifications apportées à ma base depuis que j'ai droppé le tablespace.

    Ma question est : est-il possible de créer une base auxiliaire depuis mon backup RMAN, puis de faire un expdp et un impdp de mon tablespace de ma base auxiliaire vers ma première base?
    Attention, je ne veux pas faire un DUPLICATE depuis ma base actuelle, je veux utiliser ma sauvegarde RMAN pour créer une nouvelle base.

    Je sais que cela fonctionne très bien depuis la 12.1 pour une table mais cela ne marche pas pour un tablespace : mes tests ici pour le recover complet d'une table
    http://dbaoraclesql.canalblog.com/ar.../38384934.html


    Un gros merci pour l'aide.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  2. #2
    Membre confirmé
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    393
    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 : 393
    Points : 552
    Points
    552
    Par défaut
    Bonjour
    Vue que tu es en 18c, si exp/imp est toujours supporté, essaye peut-être de faire une récupération juste avant l'incident ensuite tu ouvre ta base en read only, tu fais exp sur le tablespace supprimé et pour finir
    il reste plus qu'à faire une récupération de ta base
    Pour ta question : créer une base auxiliaire à partir de ton backup oui
    tu pourras regarder url suivante
    http://oracleinaction.com/duplicate-db-no-db-conn/
    Bonne chance

  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
    Je te remercie, ça n'a pas l'air si simple que ça mais je regarde dès que je suis calmé (je me suis arraché les cheveux hier pendant au moins trois heures...) et je suis encore très énervé!!!!!!
    Et dire que depuis la 12.1 ça marche nickel pour un tbs supprimé mais pour une table...
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  4. #4
    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,
    Il s'agit de Performing RMAN Tablespace Point-in-Time Recovery (TSPITR)
    https://docs.oracle.com/en/database/...9-C5D855D47571
    Et ça peut même être automatisé avec RMAN> TRANSPORT TABLESPACE qui génère un .dmp, les .dbf, et un script pour l'importer
    J'ai un exemple sur les 5 premières minutes de:

    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  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
    Salut Franck,

    Alors dans la doc Oracle je lis
    "Purpose of RMAN TSPITR
    ...
    - To recover dropped tablespaces. In fact, RMAN can perform TSPITR on dropped tablespaces even when a recovery catalog is not used"


    Incroyable, je n'ai pas regardé ta vidéo mais j'avais essayé la commande suivante et voilà ce qui se passait, en essayant de faire justement un TSPITR: en clair un RECOVER du tbs avec une base auxiliaire. Tout marche bien, sauf la fin...
    Petite précision : quand j'ai supprimé mon tbs, j'ai supprimé en même temps le datafile associé; estc-e que cela empêche le TSPITR? A priori non selon la doc Oracle mais... je ne vois pas pourquoi mon RECOVER TABLESPACE échoue.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    RMAN> RECOVER TABLESPACE ZZTBS until SCN 2168640 auxiliary destination '/u01/oraaux/';
    Starting recover at 02-NOV-20
    current log archived
    allocated channel: ORA_DISK_1
    channel ORA_DISK_1: SID=181 device type=DISK
    RMAN-05026: warning: presuming following set of tablespaces applies to specified point-in-time
    
    List of tablespaces expected to have UNDO segments
    Tablespace SYSTEM
    Tablespace ORCL:SYSTEM
    Tablespace ORCL:UNDOTBS1
    Tablespace UNDOTBS2
    
    Creating automatic instance, with SID='zBxq'
    
    initialization parameters used for automatic instance:
    db_name=ORCL12C
    db_unique_name=zBxq_pitr_ORCL12C
    compatible=12.2.0
    db_block_size=8192
    db_files=200
    diagnostic_dest=/u01/app/oracle
    _system_trig_enabled=FALSE
    sga_target=800M
    processes=200
    db_create_file_dest=/u01/oraaux/
    log_archive_dest_1='location=/u01/oraaux/'
    enable_pluggable_database=true
    _clone_one_pdb_recovery=true
    #No auxiliary parameter file used
    
    
    starting up automatic instance ORCL12C
    
    Oracle instance started
    
    Total System Global Area     838860800 bytes
    
    Fixed Size                     8798312 bytes
    Variable Size                239079320 bytes
    Database Buffers             583008256 bytes
    Redo Buffers                   7974912 bytes
    Automatic instance created
    
    
    List of tablespaces that have been dropped from the target database:
    Tablespace ZZTBS
    
    contents of Memory Script:
    {
    # set requested point in time
    set until  scn 2168640;
    # restore the controlfile
    restore clone controlfile;
     
    # mount the controlfile
    sql clone 'alter database mount clone database';
     
    # archive current online log 
    sql 'alter system archive log current';
    # avoid unnecessary autobackups for structural changes during TSPITR
    sql 'begin dbms_backup_restore.AutoBackupFlag(FALSE); end;';
    }
    executing Memory Script
    
    executing command: SET until clause
    
    Starting restore at 02-NOV-20
    allocated channel: ORA_AUX_DISK_1
    channel ORA_AUX_DISK_1: SID=229 device type=DISK
    
    channel ORA_AUX_DISK_1: starting datafile backup set restore
    channel ORA_AUX_DISK_1: restoring control file
    channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/orcl12c/ORCL12C/autobackup/2020_11_02/o1_mf_s_1055414350_ht0b0yfl_.bkp
    channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/orcl12c/ORCL12C/autobackup/2020_11_02/o1_mf_s_1055414350_ht0b0yfl_.bkp tag=TAG20201102T103910
    channel ORA_AUX_DISK_1: restored backup piece 1
    channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
    output file name=/u01/oraaux/ORCL12C/controlfile/o1_mf_ht0ck6w8_.ctl
    Finished restore at 02-NOV-20
    
    sql statement: alter database mount clone database
    
    sql statement: alter system archive log current
    
    sql statement: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;
    
    Removing automatic instance
    shutting down automatic instance 
    Oracle instance shut down
    Automatic instance removed
    auxiliary instance file /u01/oraaux/ORCL12C/controlfile/o1_mf_ht0ck6w8_.ctl deleted
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of recover command at 11/02/2020 11:05:01
    RMAN-06136: ORACLE error from auxiliary database: RMAN-20202: Tablespace not found in the recovery catalog
    RMAN-06019: could not translate tablespace name "ZZTBS"
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  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
    Citation Envoyé par Ikebukuro Voir le message
    RMAN-06136: ORACLE error from auxiliary database: RMAN-20202: Tablespace not found in the recovery catalog
    RMAN-06019: could not translate tablespace name "ZZTBS"
    [/CODE]
    Salut. Est-ce que tu est sûr que le tablespace était là au moment tu "until time" auquel tu fais le recover?
    Parce que là, le controlfile est bien restauré au SCN 2168640 et il ne connait pas ZZTBS
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  7. #7
    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
    et tu es en mutitenant, c'est un tablespace de CDB$ROOT? sinon il faut préfixer le nom du tablespace genre: PDBNAME:TBSNAME
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  8. #8
    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
    Salut Franck,

    1) le tbs a été supprimé, mettons le 01/11, et j'ai mis comme date "UNTIL 03/11" par exemple; je ne sais plus pourquoi j'ai fais cela mais est-ce que ça pose un pb de mettre une date supérieure à la date du DROP TABLESPACE? Le RESTORE du datafile se fera via RMAN depuis le backup du 30/10 par exemple et puis le RECOVER s'arrêtera le 01/11 puisqu'il n'y a rien après cette date sur le tbs (puisque supprimé).
    2) houlala, effectivement, ce tbs est un tbs d'une PDB, pas du CDB$ROOT... ce serait lié à ça... oh non, tant de temps perdu pour rien... et ça expliquerait le message d'erreur puisque je parle à RMAN d'un tbs inconnu du root...

    Halalalalalala... je suis fatigué, fatigué si c'est ça... MAIS AU MOINS JE PROGRESSE

    Je teste ça ce week-end au plus tard!

    UN GROS GROS MERCI, je dormirai mieux ce soir.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  9. #9
    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
    le UNTIL TIME doit être juste avant le DROP
    -> pour que le controlfile connaisse le tablespace
    -> et le recovery rejoue tout ce qui a été fait sur la base, et refera le DROP TABLESPACE si on dépasse ce point dans le temps

    Donc:
    1. mettre le nom du PDB devant
    2. le UNTIL TIME juste avant le drop
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  10. #10
    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
    Ah oui, le point 1... je me suis fais avoir là-dessus... mais c'est le 2 qui m'aura le plus bloqué...
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  11. #11
    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
    Ca marche


    UN GROS GROS MERCI A TOI FRANCK!!!!!!!!!!!!

    L'erreur était bête de ma part mais avec cette nouvelle architecture... tiens, je vais relire la partie RMAN de ton livre
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  12. #12
    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
    Citation Envoyé par Ikebukuro Voir le message
    Ca marche
    Cool. Ce sont ces galères qui permettent de mieux comprendre les concepts
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

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

Discussions similaires

  1. Création d'une base SQLite depuis un fichier xml
    Par aruno14 dans le forum Android
    Réponses: 4
    Dernier message: 22/02/2015, 05h56
  2. Création d'une base à partir d'un Backup
    Par big1 dans le forum DB2
    Réponses: 1
    Dernier message: 04/05/2009, 21h03
  3. message d'erreur lors de la création d'une base
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/04/2004, 15h47
  4. [amc designer] création d'une base postgresql
    Par david42 dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 12/03/2004, 11h08
  5. Création d'une base avec IbConsole
    Par Lucien dans le forum Outils
    Réponses: 3
    Dernier message: 02/03/2004, 18h34

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