J'ai toujours entendu dire que l'une des premières choses que vous devriez faire dans Oracle DB est d'écrire le dbid, donc au cas où vous auriez perdu le fichier Controlfile, vous aurez besoin de la définir à Rman, puis vous pourrez restaurer de sauvegarde automatique. (Comme la documentation a déclaré)
RMAN> SET DBID 320066378;
RMAN> RUN {
SET CONTROLFILE AUTOBACKUP FORMAT
FOR DEVICE TYPE DISK TO 'autobackup_format';
RESTORE CONTROLFILE FROM AUTOBACKUP;
}
Mais ensuite j'ai réalisé qu'il y a quelques semaines, lorsque nous devions faire une restauration de dB d'urgence dans un autre serveur au travail, je n'ai pas utilisé le dbid du tout. Encore plus, j'ai réalisé que je n'utilise jamais le dbid.
Toutes nos sauvegardes sont basées sur Controlfile, avec CONTROLFILE AUTOBACKUP ON
, et nous n'utilisons pas la "zone de récupération rapide/rapide" pour eux. Quand je restaure un Controlfile, je le fais avec RESTORE CONTROLFILE FROM '/file/name';
, Whitout la mise en place de tout dbid.
Voici un exemple simple où j'ajoute un datafile, déplacez des contrôles physiquement, tronquez une table et insérez une ligne, commettez-la, arrêtez-vous, restaurez le fichier Controlfile depuis le dernier bouton d'autobackup, récupérer DB et Ouvrir:
[Oracle@localhost rman]$ sqlplus '/as sysdba'
SQL*Plus: Release 11.2.0.1.0 Production on Mié Nov 27 11:39:03 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select file_name from dba_data_files where tablespace_name = 'TS_PRUEBA';
FILE_NAME
--------------------------------------------------------------------------------
/u01/app/Oracle/oradata/data/ts_prueba.dbf
SQL> alter tablespace ts_prueba add datafile '/u01/app/Oracle/oradata/data/ts_prueba02.dbf' size 10M;
Tablespace altered.
SQL> show parameter control_files;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /u01/app/Oracle/oradata/system
/control01.ctl, /u01/app/oracl
e/oradata/system/control02.ctl
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[Oracle@localhost rman]$ mv /u01/app/Oracle/oradata/system/control01.ctl /u01/app/Oracle/oradata/system/control01.ctl.dead
[Oracle@localhost rman]$ mv /u01/app/Oracle/oradata/system/control02.ctl /u01/app/Oracle/oradata/system/control02.ctl.dead
[Oracle@localhost rman]$ sqlplus '/as sysdba'
SQL*Plus: Release 11.2.0.1.0 Production on Mié Nov 27 11:51:24 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> truncate table prueba.test;
Table truncated.
SQL> insert into prueba.test values (1,'Helo world');
1 row created.
SQL> commit;
Commit complete.
SQL> shutdown abort;
Oracle instance shut down.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[Oracle@localhost rman]$ pwd
/mnt/rman
[Oracle@localhost rman]$ ls -lthar
total 366M
drwxr-xr-x 5 root root 4.0K Apr 15 2013 ..
-rw-r----- 1 Oracle oinstall 9.7M Nov 27 11:27 c-1340618388-20131127-00
drwxr-xr-x 5 Oracle oinstall 4.0K Nov 27 11:31 .
-rw-r----- 1 Oracle oinstall 9.7M Nov 27 11:31 c-1340618388-20131127-01
[Oracle@localhost rman]$ rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Mié Nov 27 11:57:01 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database (not started)
RMAN> startup nomount;
Oracle instance started
Total System Global Area 418484224 bytes
Fixed Size 1336932 bytes
Variable Size 314575260 bytes
Database Buffers 96468992 bytes
Redo Buffers 6103040 bytes
RMAN> restore controlfile from '/mnt/rman/c-1340618388-20131127-01';
Starting restore at 27-NOV-2013 11:57:33
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/u01/app/Oracle/oradata/system/control01.ctl
output file name=/u01/app/Oracle/oradata/system/control02.ctl
Finished restore at 27-NOV-2013 11:57:35
RMAN> alter database mount;
database mounted
released channel: ORA_DISK_1
RMAN> recover database;
Starting recover at 27-NOV-2013 11:57:55
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK
starting media recovery
archived log for thread 1 with sequence 1 is already on disk as file /home/Oracle/redolog/redo01b.log
archived log file name=/home/Oracle/redolog/redo01b.log thread=1 sequence=1
creating datafile file number=6 name=/u01/app/Oracle/oradata/data/ts_prueba02.dbf
archived log file name=/home/Oracle/redolog/redo01b.log thread=1 sequence=1
media recovery complete, elapsed time: 00:00:02
Finished recover at 27-NOV-2013 11:57:58
RMAN> alter database open resetlogs;
database opened
RMAN> exit
Recovery Manager complete.
[Oracle@localhost rman]$ sqlplus '/as sysdba'
SQL*Plus: Release 11.2.0.1.0 Production on Mié Nov 27 11:58:21 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select file_name from dba_data_files where tablespace_name ='TS_PRUEBA';
FILE_NAME
--------------------------------------------------------------------------------
/u01/app/Oracle/oradata/data/ts_prueba.dbf
/u01/app/Oracle/oradata/data/ts_prueba02.dbf
SQL> select * from prueba.test;
NUMERO FRASE
---------- --------------------------------------------------
1 Helo world
Si cela a raison, dans quels cas j'ai besoin du dbid alors?
Salutations
Si vous utilisez Global RMAN Catalog et une sauvegarde SW comme TSM ou NetBackup. Alors DBID
est l'identifiant de base de données unique. Ceci est nécessaire surtout sur le site internet (DR) restaure.
Si chaque base de données utilise son propre répertoire de sauvegarde de disque, l'importance de dbid n'est pas si visible.
PS: Il est également utile de garder la production de REPORT SCHEMA
commandement rman. Cela vous dira des tailles attendues des datafiles après la restauration. Et aussi leurs endroits. Cela vous aidera à préparer le stockage pour la base de données lors du cloné.
Dans votre scénario, tant que vous avez vos sauvegardes de fichier de contrôle, vous n'aurez pas besoin de définir le dbid. Cela change lorsque vous perdez également les sauvegardes de fichier de contrôle. Assurez-vous que vous les avez depuis dans des situations d'urgence, ils valent la valeur de l'or. Avoir une base de données de catalogue ne rend pas la vie plus facile.