web-dev-qa-db-fra.com

Oracle Restaure - Comment restaurer un fichier .bkp spécifique?

Je viens de commencer à travailler avec Oracle et j'ai un problème. Ma base de données est en mode NONARCIVELOGOG. J'ai fait deux sauvegardes: ils sont à des endroits:

/opt/Oracle/flash_recovery_area/CTGINST1/backupset/ol_mf_____20130408.bkp

/opt/Oracle/flash_recovery_area/CTGINST1/backupset/ol_mf_____20130407.bkp

Je veux restaurer le deuxième fichier du 7 avril. J'ai lu du guide sur: http://orafion.com/art_rman3.htm

mais je ne peux pas trouver la commande Comment spécifier la commande de restauration avec des fichiers de sauvegarde spécifiques à partir de ces deux (ou plus). Cela ne dit pas sur ce lien et sur d'autres liens que j'ai lus. Je veux l'utiliser avec [~ # ~ # ~] rman [~ # ~] Commandes. Quelles seront les commandes de restaurer ma sauvegarde plus ancienne?

J'ai trouvé

RMAN> restore database;

mais comment cela saura-t-il quel fichier restaurer? Aussi, il a également besoin de restaurer le fichier SPFILE et de contrôle car je n'ai pas créé de sauvegardes supplémentaires (il suffit de courir la commande backup database)

Merci!!

1
Dejan

TL; DR: Il suffit de fournir la balise de la sauvegarde que vous souhaitez restaurer la base de données de, par exemple restore database from tag 'INTERESTING_TAG';


DISCLAIMER

La solution fournie ici est basée uniquement sur ma propre expérience, vous l'utilisez sur vos propres risques. Je ne suis pas responsable des dommages-intérêts (y compris une perte de données) causée par l'utilisation de cette solution.


Aussi, dois-je toujours devoir restaurer le fichier SPFILE et Control, car je n'ai pas créé de sauvegardes supplémentaires (juste couru commande backup database)?

Par défaut, RMAN est configuré pour sauvegarder automatiquement le fichier de contrôle et SPFILE après chaque sauvegarde réussie et sur chaque changement structurel de la base de données (par exemple, l'ajout de datafiles) qui provoque la réflexion de ces modifications dans les fichiers de contrôle. Ainsi, après chaque sauvegarde de base de données réussie avec backup database, le fichier SPFILE et Control sera automatiquement sauvegardé.

Vous pouvez déterminer si Autobackup est activé en émettant show controlfile autobackup; à Rman, et lui permet de dire configure controlfile autobackup on; à Rman.


Depuis que vous avez fourni les chemins des ensembles de sauvegarde que vous souhaitez restaurer votre base de données, je suppose que vous les avez obtenues à partir de votre fichier de contrôle actuel à l'aide de RMAN. Il ne fera pas de mal à enregistrer ces informations et d'autres informations sur vos sauvegardes existantes dans un fichier texte brut, car vous restaurerez l'un des fichiers de contrôle précédents et les chances que ces informations seront perdues:

[Oracle@oca ~]$ export NLS_DATE_FORMAT='DD-MON-YY HH24:MI:SS'
[Oracle@oca ~]$ rman target=/ log 'list_backup.txt'
RMAN> list backup;
RMAN> exit;

Vous devrez restaurer votre base de données [~ # ~] et [~ # ~ ~] Fichier (s) de contrôle, car les en-têtes de Datafile de la base de données de chaque Datafile devrait être synchronisé avec le ou les fichiers de contrôle, i. e. Ils devraient avoir le même numéro de changement de système (SCN).

Comme je l'ai déjà dit, il vous suffit de fournir le nom de la balise pour restaurer la base de données à partir d'une sauvegarde spécifique. Vous pouvez déterminer quelles balises ont été attribuées aux sauvegardes par vous ou par le système, la date d'achèvement et l'heure des sauvegardes, ainsi que d'autres informations sur les sauvegardes disant list backup À Rman (nous avons déjà enregistré cette information dans le fichier texte). Voici la sortie de list backup Dans mon exemple d'installation:

RMAN> list backup;

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ------------------
78      Full    300.26M    DISK        00:01:40     10-APR-13 05:10:32
        BP Key: 78   Status: AVAILABLE  Compressed: YES  Tag: TAG20130410T050852
        Piece Name: /u01/app/Oracle/fast_recovery_area/OCAEXAM/backupset/2013_04_10/o1_mf_nnndf_TAG20130410T050852_8pbc14yv_.bkp
  List of Datafiles in backup set 78
  File LV Type Ckp SCN    Ckp Time           Name
  ---- -- ---- ---------- ------------------ ----
  1       Full 3985848    10-APR-13 04:52:40 /u01/app/Oracle/oradata/ocaexam/system01.dbf
  2       Full 3985848    10-APR-13 04:52:40 /u01/app/Oracle/oradata/ocaexam/sysaux01.dbf
  3       Full 3985848    10-APR-13 04:52:40 /u01/app/Oracle/oradata/ocaexam/undotbs01.dbf
  4       Full 3985848    10-APR-13 04:52:40 /u01/app/Oracle/oradata/ocaexam/users01.dbf
  5       Full 3985848    10-APR-13 04:52:40 /u01/app/Oracle/oradata/ocaexam/example01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ------------------
79      Full    9.39M      DISK        00:00:02     10-APR-13 05:10:39
        BP Key: 79   Status: AVAILABLE  Compressed: NO  Tag: TAG20130410T051037
        Piece Name: /u01/app/Oracle/fast_recovery_area/OCAEXAM/autobackup/2013_04_10/812350360_8pbk.bkp
  SPFILE Included: Modification time: 10-APR-13 04:55:39
  SPFILE db_unique_name: OCAEXAM
  Control File Included: Ckp SCN: 3985848      Ckp time: 10-APR-13 04:52:40

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ------------------
80      Full    300.30M    DISK        00:01:39     10-APR-13 05:18:03
        BP Key: 80   Status: AVAILABLE  Compressed: YES  Tag: DELETE_ME
        Piece Name: /u01/app/Oracle/fast_recovery_area/OCAEXAM/backupset/2013_04_10/o1_mf_nnndf_DELETE_ME_8pbch94j_.bkp
  List of Datafiles in backup set 80
  File LV Type Ckp SCN    Ckp Time           Name
  ---- -- ---- ---------- ------------------ ----
  1       Full 3986589    10-APR-13 05:12:33 /u01/app/Oracle/oradata/ocaexam/system01.dbf
  2       Full 3986589    10-APR-13 05:12:33 /u01/app/Oracle/oradata/ocaexam/sysaux01.dbf
  3       Full 3986589    10-APR-13 05:12:33 /u01/app/Oracle/oradata/ocaexam/undotbs01.dbf
  4       Full 3986589    10-APR-13 05:12:33 /u01/app/Oracle/oradata/ocaexam/users01.dbf
  5       Full 3986589    10-APR-13 05:12:33 /u01/app/Oracle/oradata/ocaexam/example01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ------------------
81      Full    9.39M      DISK        00:00:01     10-APR-13 05:18:11
        BP Key: 81   Status: AVAILABLE  Compressed: NO  Tag: TAG20130410T051810
        Piece Name: /u01/app/Oracle/fast_recovery_area/OCAEXAM/autobackup/2013_04_10/812351553_8pbm.bkp
  SPFILE Included: Modification time: 10-APR-13 05:13:53
  SPFILE db_unique_name: OCAEXAM
  Control File Included: Ckp SCN: 3986589      Ckp time: 10-APR-13 05:12:33

À partir de cette sortie, vous pouvez voir que la première sauvegarde était (automatiquement) attribuée à la balise TAG20130410T050852, et que le fichier de contrôle et l'autobackup SPFILE suivent immédiatement (cochez le champ Time d'achèvement). Vous pouvez également voir que j'ai effectué une autre sauvegarde de la base de données et je l'ai attribuée manuellement le tag DELETE_ME, et bien sûr, il est immédiatement suivi par Autobackup aussi. Notez également que les fichiers de chaque sauvegarde ont le même SCN et que les SCN correspondent aux SCN des fichiers de contrôle dans les autobackups adjacents.

Nous allons restaurer la base de données à partir du tag de sauvegarde TAG20130410T050852 qui est plus âgé que l'autre étiquette de sauvegarde DELETE_ME, et nous restaurerons le fichier de contrôle de l'Autobackup en premier.

Afin de restaurer le fichier de contrôle à partir de la sauvegarde avec RMAN, votre instance doit être dans NOMOUNT State (seul SPFILE est accessible dans cet état par le ou les fichiers de contrôle d'instance et les fichiers de données ne sont pas accessibles):

RMAN> shutdown immediate;

RMAN> startup nomount;

connected to target database (not started)
Oracle instance started
database mounted

(Bien que vous puissiez utiliser abort clause au lieu de immediate et oracle ne vous embartiez pas de la base de données de la base de données, vous la restauréez de la sauvegarde précédente.)

Restaurer le fichier Controlfile de Autobackup:

RMAN> restore controlfile from
2> '/u01/app/Oracle/fast_recovery_area/OCAEXAM/autobackup/2013_04_10/812350360_8pbk.bkp';

Starting restore at 10-APR-13 06:01:25
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=63 device type=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:02
output file name=/u01/app/Oracle/oradata/ocaexam/control01.ctl
output file name=/u01/app/Oracle/fast_recovery_area/ocaexam/control02.ctl
Finished restore at 10-APR-13 06:01:27

Pour que Rman soit en mesure de lire des enregistrements de sauvegarde dans le fichier de contrôle (comme il l'a fait lorsque nous émettions list backup), nous devons mettre la base de données dans MOUNT State:

RMAN> sql 'alter database mount';

Nous sommes maintenant prêts à restaurer la base de données:

RMAN> restore database from tag 'TAG20130410T050852';

La dernière étape consiste à ouvrir la base de données:

RMAN> sql 'alter database open resetlogs';

Nous avons spécifié resetlogs Clause ici parce que les fichiers journaux de Redo existants ne sont plus utilisables car ils utilisaient la base de données précédente et doivent donc être réinitialisés afin qu'ils puissent être utilisés par la base de données restaurée.

Maintenant, requête pour un bon bien!

2
Yasir Arsanukaev