откуда oracle знает имя файла для restore controlfile from autobackup?

controlfile_autobackup
Дата: 14.11.2008 17:09:26
Доброго времени суток!
В документации сказано:
6.4.1.2 Restore of the Control File from Control File Autobackup
If you are not using a recovery catalog, you must restore your control file from an autobackup.
...
RMAN uses the autobackup format and DBID to determine where to hunt for the control file autobackup.
Я в своей базе каталог не использую, но и DBID перед восстановлением не указываю. Даже поменял произвольно (но сохраняя формат файла) файл autobackup controlfile, но Oracle все равно нашел нужный ему файл. В случае резервного копирования в обычную файловую систему искать файл упорно не хочет: требует задать DBID, как и сказано в доке. Вопрос: как в случае использования OMF Oracle узнает, какой файл подходит для восстановления управляющего файла из autobackup'а?
Единственное логичное на мой взгляд объяснение состоит в том, что Oracle ориентируется на имя экземпляра и берет файлы из заведомо известных ему каталогов.
Но предположим, что есть 2 хоста и общая ASM diskgroup (или кластерная ФС), а на двух разных хостах разные БД с одним и тем же именем - что будет?
Тест:
C:\>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Nov 14 16:32:55 2008
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> show parameter recovery_file_dest;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      C:\oraHomes\flash_recovery_are
                                                 a
db_recovery_file_dest_size           big integer 10G
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
C:\ORAHOMES\ORADATA\ORCL\CONTROL01.CTL
C:\ORAHOMES\ORADATA\ORCL\CONTROL02.CTL
C:\ORAHOMES\ORADATA\ORCL\CONTROL03.CTL
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Pr
oduction
With the Partitioning, OLAP and Data Mining options
C:\>rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Fri Nov 14 16:33:18 2008
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
connected to target database: ORCL (DBID=1190418113)
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:\ORAHOMES\DB10G\DATABASE\SNCFORCL.ORA'
; # default
RMAN> backup as compressed backupset datafile 1;
Starting backup at 14.11.2008 16:34:07
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=158 devtype=DISK
channel ORA_DISK_1: starting compressed full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=C:\ORAHOMES\ORADATA\ORCL\SYSTEM01.DBF
channel ORA_DISK_1: starting piece 1 at 14.11.2008 16:34:08
channel ORA_DISK_1: finished piece 1 at 14.11.2008 16:34:43
piece handle=C:\ORAHOMES\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2008_11_14\O1_MF_NNN
DF_TAG20081114T163408_4KTZLJKL_.BKP tag=TAG20081114T163408 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35
Finished backup at 14.11.2008 16:34:43
Starting Control File and SPFILE Autobackup at 14.11.2008 16:34:43
piece handle=C:\ORAHOMES\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2008_11_14\O1_MF_S_
670782883_4KTZMO1G_.BKP comment=NONE
Finished Control File and SPFILE Autobackup at 14.11.2008 16:34:47
RMAN> shutdown immediate
using target database control file instead of recovery catalog
database closed
database dismounted
Oracle instance shut down
RMAN> exit
Recovery Manager complete.
C:\>move C:\ORAHOMES\ORADATA\ORCL\CONTROL01.CTL C:\ORAHOMES\ORADATA\ORCL\CONTROL
01.CTL1
C:\>move C:\ORAHOMES\ORADATA\ORCL\CONTROL02.CTL C:\ORAHOMES\ORADATA\ORCL\CONTROL
02.CTL1
C:\>move C:\ORAHOMES\ORADATA\ORCL\CONTROL03.CTL C:\ORAHOMES\ORADATA\ORCL\CONTROL
03.CTL1
C:\>move C:\ORAHOMES\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2008_11_14\O1_MF_S_6707
82883_4KTZMO1G_.BKP  C:\ORAHOMES\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2008_11_14\
O1_MF_S_670782883_4KTZP01G_.BKP
C:\>rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Fri Nov 14 16:45:11 2008
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
connected to target database (not started)
RMAN> startup nomount
Oracle instance started
Total System Global Area     104857600 bytes
Fixed Size                     1247516 bytes
Variable Size                 71304932 bytes
Database Buffers              25165824 bytes
Redo Buffers                   7139328 bytes
RMAN> restore controlfile from autobackup;
Starting restore at 14.11.2008 16:46:14
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=156 devtype=DISK
recovery area destination: C:\oraHomes\flash_recovery_area
database name (or database unique name) used for search: ORCL
channel ORA_DISK_1: autobackup found in the recovery area
channel ORA_DISK_1: autobackup found: C:\ORAHOMES\FLASH_RECOVERY_AREA\ORCL\AUTOB
ACKUP\2008_11_14\O1_MF_S_670782883_4KTZP01G_.BKP
channel ORA_DISK_1: control file restore from autobackup complete
output filename=C:\ORAHOMES\ORADATA\ORCL\CONTROL01.CTL
output filename=C:\ORAHOMES\ORADATA\ORCL\CONTROL02.CTL
output filename=C:\ORAHOMES\ORADATA\ORCL\CONTROL03.CTL
Finished restore at 14.11.2008 16:46:20
RMAN> alter database mount;
database mounted
released channel: ORA_DISK_1
RMAN> recover database;
Starting recover at 14.11.2008 16:47:32
Starting implicit crosscheck backup at 14.11.2008 16:47:32
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=156 devtype=DISK
Crosschecked 1 objects
Finished implicit crosscheck backup at 14.11.2008 16:47:34
Starting implicit crosscheck copy at 14.11.2008 16:47:34
using channel ORA_DISK_1
Finished implicit crosscheck copy at 14.11.2008 16:47:34
searching for all files in the recovery area
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: C:\ORAHOMES\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2008_11_14\O1_MF_S_67
0782883_4KTZP01G_.BKP
using channel ORA_DISK_1
starting media recovery
archive log thread 1 sequence 1 is already on disk as file C:\ORAHOMES\ORADATA\O
RCL\REDO02.LOG
archive log filename=C:\ORAHOMES\ORADATA\ORCL\REDO02.LOG thread=1 sequence=1
media recovery complete, elapsed time: 00:00:03
Finished recover at 14.11.2008 16:47:42
RMAN> alter database open resetlogs;
database opened
RMAN> exit
Recovery Manager complete.
C:\>
restore controlfile
Дата: 14.11.2008 17:40:56
controlfile_autobackup,

из документации
6.4.1.2 Restore of the Control File from Control File Autobackup

If you are not using a recovery catalog, you must restore your control file from an autobackup. If you want to restore the control file from autobackup, the database must be in a NOMOUNT state. You must first set the DBID for your database, and then use the RESTORE CONTROLFILE FROM AUTOBACKUP command:

RMAN> SET DBID 320066378;
RMAN> RUN {
SET CONTROLFILE AUTOBACKUP FORMAT
FOR DEVICE TYPE DISK TO 'autobackup_format';
RESTORE CONTROLFILE FROM AUTOBACKUP;
}


RMAN uses the autobackup format and DBID to determine where to hunt for the control file autobackup. If one is found, RMAN restores the control file from that backup to all of the control file locations listed in the CONTROL_FILES initialization parameter.

For information on how to determine the correct value for autobackup_format, see the description of CONFIGURE CONTROLFILE AUTOBACKUP FORMAT in the entry for CONFIGURE in Oracle Database Backup and Recovery Reference

See "Determining your DBID" for details on how to determine your DBID.
controlfile_autobackup
Дата: 14.11.2008 17:50:34
restore controlfile
controlfile_autobackup,

из документации
6.4.1.2 Restore of the Control File from Control File Autobackup

If you are not using a recovery catalog, you must restore your control file from an autobackup. If you want to restore the control file from autobackup, the database must be in a NOMOUNT state. You must first set the DBID for your database, and then use the RESTORE CONTROLFILE FROM AUTOBACKUP command:

RMAN> SET DBID 320066378;
RMAN> RUN {
SET CONTROLFILE AUTOBACKUP FORMAT
FOR DEVICE TYPE DISK TO 'autobackup_format';
RESTORE CONTROLFILE FROM AUTOBACKUP;
}


RMAN uses the autobackup format and DBID to determine where to hunt for the control file autobackup. If one is found, RMAN restores the control file from that backup to all of the control file locations listed in the CONTROL_FILES initialization parameter.

For information on how to determine the correct value for autobackup_format, see the description of CONFIGURE CONTROLFILE AUTOBACKUP FORMAT in the entry for CONFIGURE in Oracle Database Backup and Recovery Reference

See "Determining your DBID" for details on how to determine your DBID.

и что Вы сим постом хотели сказать? я сам оттуда цитировал :)
semenar
Дата: 14.11.2008 17:57:20
Явно пишет, чта нашел в FRA.
recovery area destination: C:\oraHomes\flash_recovery_area
database name (or database unique name) used for search: ORCL
channel ORA_DISK_1: autobackup found in the recovery area
В доке правда не встечал описаний сего действа.
controlfile_autobackup
Дата: 14.11.2008 18:02:00
это все понятно... мне хотелось бы, чтобы кто-то подтвердил/опровергнул мои предположения и ответил на вопрос:
Единственное логичное на мой взгляд объяснение состоит в том, что Oracle ориентируется на имя экземпляра и берет файлы из заведомо известных ему каталогов. 
Но предположим, что есть 2 хоста и общая ASM diskgroup (или кластерная ФС), а на двух разных хостах разные БД с одним и тем же именем - что будет? 
ответ "нечего создавать таких маразматических конфигураций" не принимается :))
Жук в муравейнике
Дата: 14.11.2008 18:03:18
Я думаю из параметра control_files
pravednik
Дата: 14.11.2008 18:04:21
controlfile_autobackup
это все понятно... мне хотелось бы, чтобы кто-то подтвердил/опровергнул мои предположения и ответил на вопрос:
Единственное логичное на мой взгляд объяснение состоит в том, что Oracle ориентируется на имя экземпляра и берет файлы из заведомо известных ему каталогов. 
Но предположим, что есть 2 хоста и общая ASM diskgroup (или кластерная ФС), а на двух разных хостах разные БД с одним и тем же именем - что будет? 
ответ "нечего создавать таких маразматических конфигураций" не принимается :))

ну вынесите контрольник из FRA и проверьте )))
controlfile_autobackup
Дата: 14.11.2008 18:07:25
pravednik
controlfile_autobackup
это все понятно... мне хотелось бы, чтобы кто-то подтвердил/опровергнул мои предположения и ответил на вопрос:
Единственное логичное на мой взгляд объяснение состоит в том, что Oracle ориентируется на имя экземпляра и берет файлы из заведомо известных ему каталогов. 
Но предположим, что есть 2 хоста и общая ASM diskgroup (или кластерная ФС), а на двух разных хостах разные БД с одним и тем же именем - что будет? 
ответ "нечего создавать таких маразматических конфигураций" не принимается :))

ну вынесите контрольник из FRA и проверьте )))

в моем первом посте есть:
автор
В случае резервного копирования в обычную файловую систему искать файл упорно не хочет: требует задать DBID, как и сказано в доке.
pravednik
Дата: 14.11.2008 18:12:29
controlfile_autobackup
pravednik
controlfile_autobackup
это все понятно... мне хотелось бы, чтобы кто-то подтвердил/опровергнул мои предположения и ответил на вопрос:
Единственное логичное на мой взгляд объяснение состоит в том, что Oracle ориентируется на имя экземпляра и берет файлы из заведомо известных ему каталогов. 
Но предположим, что есть 2 хоста и общая ASM diskgroup (или кластерная ФС), а на двух разных хостах разные БД с одним и тем же именем - что будет? 
ответ "нечего создавать таких маразматических конфигураций" не принимается :))

ну вынесите контрольник из FRA и проверьте )))

в моем первом посте есть:
автор
В случае резервного копирования в обычную файловую систему искать файл упорно не хочет: требует задать DBID, как и сказано в доке.

простите, я просто не понял, что обычная ФС - это "за пределами фра"... ))
вы, когда меняете имя контрольника, оставляете неизменным часть с ДБ id
O1_MF_S_670782883_4KTZMO1G_.BKP
O1_MF_S_670782883_4KTZP01G_.BKP
мож поэтому ее и не требует
controlfile_autobackup
Дата: 14.11.2008 18:13:42
Жук в муравейнике
Я думаю из параметра control_files

мне мысль непонятна, может быть, поясните "для дебилов"? :)