Начиная с первого релиза 10g в Oracle можно определить специальную область на диске, называемую флэш-областью восстановления (FRA), которая используется базой данных как резервное местоположение. По умолчанию, RMAN создает в FRA резервные копии всех типов - регулярных резервных копий, копий образов, журнальных архивных файлов. Так как RMAN знает о существовании этой области, это позволяет ему автоматически удалять ненужные избыточные или устаревшие резервные копии, чтобы освободить место для новых копий.
2-1. Создание флэш-области
Требуется создать флэш-область для базы данных.
Выключение параметров log_archive_dest и log_archive_duplex_dest
Для начала надо отключить параметры log_archive_dest и log_archive_duplex_dest, если конечно они установлены:
SQL> alter system set log_archive_duplex_dest = ''; System altered. SQL> alter system set log_archive_dest = ''; System altered.
Если при изменении значения параметров возникает ошибка:
SQL> alter system set log_archive_duplex_dest = ''; alter system set log_archive_duplex_dest = '' * ERROR at line 1: ORA-02097: parameter cannot be modified because specified value is invalid ORA-16018: cannot use LOG_ARCHIVE_DUPLEX_DEST with LOG_ARCHIVE_DEST_n or DB_RECOVERY_FILE_DEST
То, необходимо отключить использование флэш-области, выполнив следующую команду:
SQL> alter system set db_recovery_file_dest = '' scope = both sid = '*'; System altered.
Не забудьте при этом перезагрузить экземпляр.
Задание размеров и создание флэш-области восстановления
Команды должны выполняться в строгой последовательности.
SQL> alter system set db_recovery_file_dest_size = 1G; System altered.
Каталог флэш-области восстановления должен существовать до выполнения команды.
SQL> alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area/'; System altered.
Теперь флэш-область создана и готова к работе.
2-2. Запись регулярных копий базы данных в флэш-область восстановления.
Флэш-область восстановления создана. Используем её для создания резервных копий.
Копирование базы в флэш-область восстановления
Создадим резервную копию базы данных в флэш-области восстановления, не используя опции форматирования:
RMAN> backup database; Starting backup at 03-MAR-11 using channel ORA_DISK_1 channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset input datafile fno=00001 name=/u02/oradata/orcl/system01.dbf input datafile fno=00003 name=/u02/oradata/orcl/sysaux01.dbf input datafile fno=00005 name=/u02/oradata/orcl/example01.dbf input datafile fno=00002 name=/u02/oradata/orcl/undotbs01.dbf input datafile fno=00004 name=/u02/oradata/orcl/users01.dbf channel ORA_DISK_1: starting piece 1 at 03-MAR-11 channel ORA_DISK_1: finished piece 1 at 03-MAR-11 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_03/o1_mf_nnndf_TAG20110 303T053828_6pxzs59z_.bkp tag=TAG20110303T053828 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:46 channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset including current control file in backupset including current SPFILE in backupset channel ORA_DISK_1: starting piece 1 at 03-MAR-11 channel ORA_DISK_1: finished piece 1 at 03-MAR-11 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_03/o1_mf_ncsnf_TAG20110 303T053828_6pxztnxl_.bkp tag=TAG20110303T053828 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02 Finished backup at 03-MAR-11
Так как мы не указывали никаких опций форматирования, резервные копии базы данных по умолчанию создаются в каталоге флэш-области восстановления. Файлы резервных копий помещаются в специально созданные подкаталоги этого каталога. Так, вначале создаётся подкаталог, соответствующий имени экземпляра копируемой базы данных. Затем в этом подкаталоге создаётся ещё один подкаталог с именем backupset. Далее в нём создаётся подкаталог с именем даты создаваемой резервной копии. После чего, в него помещаются два файла. Файлы представляют собой наборы резервных копий в упакованном внутреннем формате. Первый набор содержит все файлы данных базы. Второй включает контрольные файлы и двоичный файл параметров.
2-3. Освобождение пространства в флэш-области восстановления
Если флэш-область восстановления исчерпала выделенное ей свободное дисковое пространство, то вы будете наблюдать в журнале регистрации alert log запись примерно такого вида:
Errors in file /u01/app/oracle/admin/orcl/udump/orcl_ora_3389.trc: ORA-19815: WARNING: db_recovery_file_dest_size of 1073741824 bytes is 100.00% used, and has 0 remaining bytes available.
Игнорирование этого предупреждения может привести к остановке процесса архивации и невозможности в дальнейшем открытия экземпляра базы данных при перезагрузке. Для исправления ситуации, в этом случае, можно осуществить любые из следующих действий.
Увеличение пространства флэш-области восстановления
Можно динамически увеличить место, выделяемое под флэш-область восстановления, с помощью следующей команды:
SQL> alter system set db_recovery_file_dest_size = 2G; System altered.
Удаление контрольных точек
Можно удалить созданные ранее контрольные точки
SQL> select name, storage_size from v$restore_point; NAME STORAGE_SIZE ---- ------------ P1 1024 SQL> drop restore point p1; Restore point dropped.
Это позволит освободить немного места и стартовать базу данных.
Выключение FlashBack
Если первые два способа не привели к положительным результатам или являются неприемлемыми, можно временно отключить FlashBack:
SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area 285212672 bytes Fixed Size 1261372 bytes Variable Size 167772356 bytes Database Buffers 113246208 bytes Redo Buffers 2932736 bytes Database mounted. SQL> alter database flashback off; Database altered.
Это позволит остановить flashback операции и не генерировать flashback лог. После этого мы можем удалить ненужные резервные копии и архивные журнальные файлы:
RMAN> delete noprompt archivelog all; using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=155 devtype=DISK List of Archived Log Copies Key Thrd Seq S Low Time Name ------- ---- ------- - --------- ---- 1 1 3 A 16-DEC-10 /u01/app/oracle/admin/orcl/arch/1_3_737884089.dbf 2 1 4 A 16-DEC-10 /u01/app/oracle/admin/orcl/arch/arch_1_4_737884089.arc 3 1 5 A 16-DEC-10 /u01/app/oracle/admin/orcl/arch/arch_1_5_737884089.arc deleted archive log archive log filename=/u01/app/oracle/admin/orcl/arch/1_3_737884089.dbf recid=1 stamp=737893466 deleted archive log archive log filename=/u01/app/oracle/admin/orcl/arch/arch_1_4_737884089.arc recid=2 stamp=737893733 deleted archive log archive log filename=/u01/app/oracle/admin/orcl/arch/arch_1_5_737884089.arc recid=3 stamp=737893838 Deleted 3 objects RMAN> delete noprompt backup of database; using channel ORA_DISK_1 List of Backup Pieces BP Key BS Key Pc# Cp# Status Device Type Piece Name ------- ------- --- --- ----------- ----------- ---------- 10 10 1 1 AVAILABLE DISK /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_04/o1_mf_nnndf_TAG20110304T062 845_6q0q3ffd_.bkp deleted backup piece backup piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_04/o1_mf_nnndf_TAG20110 304T062845_6q0q3ffd_.bkp recid=10 stamp=744877725 Deleted 1 objects RMAN> delete noprompt copy of database;
Теперь можно открывать базу данных:
SQL> alter database open; Database altered.
Учитывайте, что выключение FlashBack не удаляет пространство, занятое гарантийными контрольными точками.
2-4. Проверка используемого пространства в флэш-области восстановления
После настройки флэш-области восстановления требуется посмотреть общее пространство, занимаемое этой областью, а также пространство, занимаемое по отдельности каждым составляющим её файлом. Для решения этой задачи можно использовать следующие представления.
Представление v$recovery_file_dest показывает дисковую квоту и использование дискового пространства в флэш-области восстановления:
SQL> select * from v$recovery_file_dest; NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES ------------------------------------ ----------- ---------- ----------------- --------------- /u01/app/oracle/flash_recovery_area/ 2147483648 624492544 0 2
Поля:
- NAME - директория используемая для местоположения флэш-области. Значение соответствует параметру DB_RECOVERY_FILE_DEST.
- SPACE_LIMIT- максимальное количество дискового пространства (в байтах), который база данных может использовать для области восстановления вспышки. Значение соответствует параметру DB_RECOVERY_FILE_DEST_SIZE.
- SPACE_USED - количество дискового пространства (в байтах) используемого файлами флэш-области восстановления. Изменение флэш-области восстановления не сбрасывает это значение в 0.
- SPACE_RECLAIMABLE- общий размер дискового пространства (в байтах), который может быть создан, удаляя устаревшие, избыточные, или другие файлы низкого приоритета из флэш-области восстановления.
- NUMBER_OF_FILES -общее количество файлов в флэш-области.
Представление v$flash_recovery_area_usage показывает процент использование дискового пространства для различных типов файлов флэш-области восстановления:
SQL> select * from v$flash_recovery_area_usage; FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES ------------ ------------------ ------------------------- --------------- CONTROLFILE 0 0 0 ONLINELOG 0 0 0 ARCHIVELOG 0 0 0 BACKUPPIECE 29.08 0 2 IMAGECOPY 0 0 0 FLASHBACKLOG 0 0 0
Поля:
- FILE_TYPE - тип файла флэш-области.
- PERCENT_SPACE_USED - процент дискового пространства используемого данным типом файла флэш-области восстановления в процентах от общего размера дискового пространства флэш-области.
- PERCENT_SPACE_RECLAIMABLE - процент дискового пространства , который может быть создан, удаляя устаревшие, избыточные, или другие файлы низкого приоритета из флэш-области восстановления для данного типа файла в процентах от общего размера дискового пространства флэш-области.
- NUMBER_OF_FILES - количество файлов в флэш-области восстановления.
Для того чтобы видеть общий размер пространства каждого файла флэш-области восстановления, надо соединить представление v$flash_recovery_area_usage с представлением recovery_file_dest.
SQL> SELECT file_type, space_used * percent_space_used / 100 / 1024 / 1024 used, 2> space_reclaimable * percent_space_reclaimable / 100 / 1024 / 1024 3> reclaimable, b.number_of_files 4> FROM v$recovery_file_dest a, v$flash_recovery_area_usage b FILE_TYPE USED RECLAIMABLE NUMBER_OF_FILES ------------ ---------- ----------- --------------- CONTROLFILE 0 0 0 ONLINELOG 0 0 0 ARCHIVELOG 0 0 0 BACKUPPIECE 173.189575 0 2 IMAGECOPY 0 0 0 FLASHBACKLOG 0 0 0
2-5. Расширение или уменьшение флэш-области восстановления.
Иногда может потребоваться увеличение размера флэш-области восстановления. Обычно такая операция необходима при росте базы данных или увеличении периода хранения резервных копий.
Увеличение размера флэш-области
SQL> select * from v$recovery_file_dest; NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES ------------------------------------ ----------- ---------- ----------------- --------------- /u01/app/oracle/flash_recovery_area/ 2147483648 624492544 0 2 SQL> alter system set db_recovery_file_dest_size = 4G; System altered. SQL> select * from v$recovery_file_dest; NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES ------------------------------------ ----------- ---------- ----------------- --------------- /u01/app/oracle/flash_recovery_area/ 4294967296 624492544 0 2
Уменьшение размера флэш-области
SQL> alter system set db_recovery_file_dest_size = 1G; System altered. SQL> select * from v$recovery_file_dest; NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES ------------------------------------ ----------- ---------- ----------------- --------------- /u01/app/oracle/flash_recovery_area/ 1073741824 624492544 0 2
Обычно, при уменьшении размера флэш-области, если используемое дисковое пространство (столбец SPACE_USED) превышает лимит флэш-области (столбец SPACE_LIMIT), то устаревшие и избыточные файлы будут автоматически удалены. При этом, максимальный размер пространства, которое может быть удалено отображается в столбце SPACE_RECLAIMABLE. Если этого количества, по каким-то причинам недостаточно, то чтобы привести в соответствие размеры доступного и занятого дискового пространства в флэш-области, файлы не удаляются и размер занятого пространства в этом случае остается без изменений:
SQL> select * from v$recovery_file_dest; NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES ------------------------------------ ----------- ---------- ----------------- --------------- /u01/app/oracle/flash_recovery_area/ 1073741824 1249017856 0 4
Попытка сделать в этот момент резервную копию, даже очень небольшую закончиться ошибкой следующего вида:
RMAN> backup as copy tablespace users; Starting backup at 14-MAR-11 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile copy input datafile fno=00004 name=/u02/oradata/orcl/users01.dbf RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: failure of backup command on ORA_DISK_1 channel at 03/14/2011 05:13:13 ORA-19809: limit exceeded for recovery files ORA-19804: cannot reclaim 5242880 bytes disk space from 1073741824 limit
Чтобы исправить данную ситуацию необходимо вручную удалить избыточные резервные копии:
RMAN> report obsolete; RMAN retention policy will be applied to the command RMAN retention policy is set to redundancy 2 Report of obsolete backups and copies Type Key Completion Time Filename/Handle -------------------- ------ ------------------ -------------------- Backup Set 20 14-MAR-11 Backup Piece 20 14-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_14/o1_mf_ncsnf_TAG20110314T043 951_6qtwjp5f_.bkp Backup Set 21 14-MAR-11 Backup Piece 21 14-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_14/o1_mf_nnndf_TAG20110314T044 122_6qtwl2bf_.bkp Backup Set 22 14-MAR-11 Backup Piece 22 14-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_14/o1_mf_ncsnf_TAG20110314T044 122_6qtwmkco_.bkp RMAN> delete obsolete; RMAN retention policy will be applied to the command RMAN retention policy is set to redundancy 2 using channel ORA_DISK_1 Deleting the following obsolete backups and copies: Type Key Completion Time Filename/Handle -------------------- ------ ------------------ -------------------- Backup Set 20 14-MAR-11 Backup Piece 20 14-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_14/o1_mf_ncsnf_TAG20110314T043 951_6qtwjp5f_.bkp Backup Set 21 14-MAR-11 Backup Piece 21 14-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_14/o1_mf_nnndf_TAG20110314T044 122_6qtwl2bf_.bkp Backup Set 22 14-MAR-11 Backup Piece 22 14-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_14/o1_mf_ncsnf_TAG20110314T044 122_6qtwmkco_.bkp Do you really want to delete the above objects (enter YES or NO)? Y deleted backup piece backup piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_14/o1_mf_ncsnf_TAG20110 314T043951_6qtwjp5f_.bkp recid=20 stamp=745735238 deleted backup piece backup piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_14/o1_mf_nnndf_TAG20110 314T044122_6qtwl2bf_.bkp recid=21 stamp=745735282 deleted backup piece backup piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_14/o1_mf_ncsnf_TAG20110 314T044122_6qtwmkco_.bkp recid=22 stamp=745735329 Deleted 3 objects
Если при удалении избытычных резервных копий не требуется диалога запроса, то можно использовать следующую команду:
RMAN> delete noprompt obsolete;
Результатом проведённого удаления лишних резервных копий является уменьшение размера занятого дискового пространства флэш-области:
SQL> select * from v$recovery_file_dest; NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES ------------------------------------ ----------- ---------- ----------------- --------------- /u01/app/oracle/flash_recovery_area/ 1073741824 629751808 0 3
2-6. Конфигурирование архивации журнальных файлов для записи в флэш-область восстановления.
Требуется сконфигурировать базу данных так, чтобы заархивированные журнальные файлы записывались в флэш-область восстановления.Использование флэш-области восстановления в качестве места назначения для архивированных журнальных файлов
С помощью следующей команды определить флэш-область в качестве первого места назначения архивированных журнальных файлов:SQL> alter system set log_archive_dest_1 = 'LOCATION=USE_DB_RECOVERY_FILE_DEST'; System altered.Проверка разрешения использование места назначения 1 для архивированных журнальных файлов
Проверить, разрешено ли первое место назначения архивированных журнальных файлов:SQL> show parameter log_archive_dest_state_1; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest_state_1 string enableВключение разрешения использование места назначения 1 для архивированных журнальных файлов
Если место назначения не разрешено, то разрешить его с помощью следующей команды:SQL> alter system set log_archive_dest_state_1 = enable; System altered.Проверка конфигурации архивирования журнальных файлов
С помощью команды archive log list проверить правильность установки места назначения архивных журнальных файлов:SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 4 Next log sequence to archive 6 Current log sequence 6Значение USE_DB_RECOVERY_FILE_DEST, показывает, что место назначения архивных журнальных файлов установлено в флэш-область восстановления.Генерация архивного журнального файла.
Теперь необходимо проверить правильность записи архивных файлов в флэш-область. Для этого выполним команду, генерирующую архивный журнальный файл:SQL> alter system switch logfile; System altered.Если запись архивного журнала в флэш-область прошла успешно, то мы увидим системное сообщение System altered, в противном случае будет выведено сообщение об ошибке.Проверка образования архивного журнального файла
Осталось подтвердить образование файла на уровне операционной системы:[oracle@alfa 2011_03_22]$ cd $ORACLE_BASE/flash_recovery_area/ORCL/archivelog/2011_03_22 [oracle@alfa 2011_03_22]$ ls -l итого 39964 -rw-r----- 1 oracle oinstall 40872960 Мар 22 04:17 o1_mf_1_6_6rhy51mf_.arcили с помощью представления v$archived_log:SQL> select name from v$archived_log order by completion_time; NAME -------------------------------------------------------------------------------------- /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_22/o1_mf_1_6_6rhy51mf_.arcСтарайтесь использовать флэш-область восстановления для записи только резервной копии архивных файлов!2-7. Отправка копий образов в флэш-область восстановления.
С помощью команды backup as copy database создадим копии образов файлов данных и отправим их в флэш-область восстановления:RMAN> backup as copy database; Starting backup at 25-MAR-11 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile copy input datafile fno=00001 name=/u02/oradata/orcl/system01.dbf output filename=/u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_system_6rqngmrb_.dbf tag=TAG20110325T022051 recid=11 stamp=746677277 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:35 channel ORA_DISK_1: starting datafile copy input datafile fno=00003 name=/u02/oradata/orcl/sysaux01.dbf output filename=/u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_sysaux_6rqnhqts_.dbf tag=TAG20110325T022051 recid=12 stamp=746677303 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25 channel ORA_DISK_1: starting datafile copy input datafile fno=00005 name=/u02/oradata/orcl/example01.dbf output filename=/u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_example_6rqnjjlm_.dbf tag=TAG20110325T022051 recid=13 stamp=746677317 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07 channel ORA_DISK_1: starting datafile copy input datafile fno=00002 name=/u02/oradata/orcl/undotbs01.dbf output filename=/u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_undotbs1_6rqnjqxd_.dbf tag=TAG20110325T022051 recid=14 stamp=746677321 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03 channel ORA_DISK_1: starting datafile copy input datafile fno=00004 name=/u02/oradata/orcl/users01.dbf output filename=/u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_users_6rqnjtyq_.dbf tag=TAG20110325T022051 recid=15 stamp=746677323 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting datafile copy copying current control file output filename=/u01/app/oracle/flash_recovery_area/ORCL/controlfile/o1_mf_TAG20110325T022051_6r qnjw60_.ctl tag=TAG20110325T022051 recid=16 stamp=746677324 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset including current SPFILE in backupset channel ORA_DISK_1: starting piece 1 at 25-MAR-11 channel ORA_DISK_1: finished piece 1 at 25-MAR-11 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_25/o1_mf_nnsnf_TAG20110 325T022051_6rqnjygo_.bkp tag=TAG20110325T022051 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02 Finished backup at 25-MAR-11Копии образов файлов данных помещены в каталог /u01/app/oracle/flash_recovery_area/ORCL/ datafile.2-8. Удаление резервных наборов из флэш-области восстановления
Обычно Oracle сам удаляет избыточные резервные копии при нехватке свободного места в FRA. Но иногда бывают такие ситуации, что может понадобиться ручное удаление не избыточных резервных копий.Проверка резервных наборов в RMAN репозитории
Проверяем существующие резервные наборы в RMAN репозитории:RMAN> list backupset; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 33 Full 6.80M DISK 00:00:03 25-MAR-11 BP Key: 33 Status: AVAILABLE Compressed: NO Tag: TAG20110325T023740 Piece Name: /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_25/o1_mf_ncsnf_TAG20110325T023 740_6rqohmtn_.bkp Control File Included: Ckp SCN: 542770 Ckp time: 25-MAR-11 SPFILE Included: Modification time: 25-MAR-11 BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 34 Full 586.61M DISK 00:00:46 25-MAR-11 BP Key: 34 Status: AVAILABLE Compressed: NO Tag: TAG20110325T024751 Piece Name: /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_25/o1_mf_nnndf_TAG20110325T024 751_6rqp17y1_.bkp List of Datafiles in backup set 34 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 543178 25-MAR-11 /u02/oradata/orcl/system01.dbf 2 Full 543178 25-MAR-11 /u02/oradata/orcl/undotbs01.dbf 3 Full 543178 25-MAR-11 /u02/oradata/orcl/sysaux01.dbf 4 Full 543178 25-MAR-11 /u02/oradata/orcl/users01.dbf 5 Full 543178 25-MAR-11 /u02/oradata/orcl/example01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 35 Full 6.80M DISK 00:00:03 25-MAR-11 BP Key: 35 Status: AVAILABLE Compressed: NO Tag: TAG20110325T024751 Piece Name: /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_25/o1_mf_ncsnf_TAG20110325T024 751_6rqp30r1_.bkp Control File Included: Ckp SCN: 543201 Ckp time: 25-MAR-11 SPFILE Included: Modification time: 25-MAR-11Удаление отдельного резервного набора из RMAN репозитория
Удаляем отдельный резервный набор с номером 33:RMAN> delete backupset 33; using channel ORA_DISK_1 List of Backup Pieces BP Key BS Key Pc# Cp# Status Device Type Piece Name ------- ------- --- --- ----------- ----------- ---------- 33 33 1 1 AVAILABLE DISK /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_25/o1_mf_ncsnf_TAG20110325T023 740_6rqohmtn_.bkp Do you really want to delete the above objects (enter YES or NO)? Y deleted backup piece backup piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_03_25/o1_mf_ncsnf_TAG20110 325T023740_6rqohmtn_.bkp recid=33 stamp=746678307 Deleted 1 objectsРезервный набор должен существовать в каталоге, иначе команда удаления не будет работать.2-9. Удаление архивных журнальных файлов из флэш-области восстановления
Требуется удалить архивные журнальные файлы, чтобы быстро освободить свободное место в флэш-области восстановления.Просмотр всех архивных журнальных файлов в флэш-области восстановления
Для начала выведем список всех архивных журнальных файлов:RMAN> list archivelog all; List of Archived Log Copies Key Thrd Seq S Low Time Name ------- ---- ------- - --------- ---- 10 1 12 A 25-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_12_6s4mhvrb_.arc 11 1 13 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_13_6s4mjcwg_.arc 12 1 14 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_14_6s4mjqdw_.arc 13 1 15 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_15_6s4mk16z_.arc 14 1 16 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_16_6s4mkc91_.arc 15 1 17 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_17_6s4mkp3j_.arc 16 1 18 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_18_6s4mkyww_.arc 17 1 19 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_19_6s4ml723_.arc 18 1 20 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_20_6s4mldb0_.arc 19 1 21 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_21_6s4mlj21_.arc 20 1 22 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_22_6s4mlqld_.arcУдаление отдельных архивных журнальных файлов из флэш-области восстановления
Теперь удаляем архивные журнальные файлы с logseq от 12 до 18:RMAN> delete archivelog from logseq=12 until logseq=18; released channel: ORA_DISK_1 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=150 devtype=DISK List of Archived Log Copies Key Thrd Seq S Low Time Name ------- ---- ------- - --------- ---- 10 1 12 A 25-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_12_6s4mhvrb_.arc 11 1 13 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_13_6s4mjcwg_.arc 12 1 14 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_14_6s4mjqdw_.arc 13 1 15 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_15_6s4mk16z_.arc 14 1 16 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_16_6s4mkc91_.arc 15 1 17 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_17_6s4mkp3j_.arc 16 1 18 A 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_18_6s4mkyww_.arc Do you really want to delete the above objects (enter YES or NO)? Y deleted archive log archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_12_6s4mhv rb_.arc recid=10 stamp=747105852 deleted archive log archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_13_6s4mjc wg_.arc recid=11 stamp=747105869 deleted archive log archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_14_6s4mjq dw_.arc recid=12 stamp=747105882 deleted archive log archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_15_6s4mk1 6z_.arc recid=13 stamp=747105890 deleted archive log archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_16_6s4mkc 91_.arc recid=14 stamp=747105900 deleted archive log archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_17_6s4mkp 3j_.arc recid=15 stamp=747105912 deleted archive log archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30/o1_mf_1_18_6s4mky ww_.arc recid=16 stamp=747105920 Deleted 7 objectsВыбранные архивные журнальные файлы удалены. Осталось только проверить корректность их удаления в операционной системе:[oracle@alfa 2011_03_30]$ pwd /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_30 [oracle@alfa 2011_03_30]$ ls -l итого 200368 -rw-r----- 1 oracle oinstall 51229184 Мар 30 01:25 o1_mf_1_19_6s4ml723_.arc -rw-r----- 1 oracle oinstall 51229184 Мар 30 01:25 o1_mf_1_20_6s4mldb0_.arc -rw-r----- 1 oracle oinstall 51229184 Мар 30 01:25 o1_mf_1_21_6s4mlj21_.arc -rw-r----- 1 oracle oinstall 51229184 Мар 30 01:25 o1_mf_1_22_6s4mlqld_.arc2-10. Восстановление повреждённого файла данных из копии- отображения.
Если один из файлов данных повреждён, то вместо того, чтобы немедленно восстанавливать файл из резервной копии, можно временно использовать копию-отображения файла из флэш- области восстановления.Рассмотрим данную ситуацию на примере. Для начала повредим (удалим) файл данных EXAMPLE01.DBF, переведя его в автономный режим, без физического удаления:SQL> alter database datafile '/u02/oradata/orcl/example01.dbf' offline drop; Database altered.Затем, удалим его физически с помощью команды операционной системы.[oracle@alfa orcl]$ pwd /u02/oradata/orcl [oracle@alfa orcl]$ rm example01.dbfПроверка файлов базы данных
Восстановление начнём с проверки списка файлов:RMAN> report schema; Report of database schema List of Permanent Datafiles =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- -------------------- ------- ------------------------ 1 480 SYSTEM *** /u02/oradata/orcl/system01.dbf 2 140 UNDOTBS1 *** /u02/oradata/orcl/undotbs01.dbf 3 240 SYSAUX *** /u02/oradata/orcl/sysaux01.dbf 4 28 USERS *** /u02/oradata/orcl/users01.dbf 5 0 EXAMPLE *** /u02/oradata/orcl/example01.dbf List of Temporary Files ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- -------------------- ----------- -------------------- 1 20 TEMP 32767 /u02/oradata/orcl/temp01.dbfКак видим, размер файла EXAMPLE01.DBF равен нолю. Будем считать, что он у нас повреждён.Проверка на существование копии-отображения повреждённого файла.
Проверяем наличие копии-отображения для нашего повреждённого файла:RMAN> list copy of datafile 5; List of Datafile Copies Key File S Completion Time Ckp SCN Ckp Time Name ------- ---- - --------------- ---------- --------------- ---- 35 5 A 30-MAR-11 553896 30-MAR-11 /u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_example_6s4ozj5c_.dbfПеревод повреждённого файла в offline режим.
Если повреждённый файл находится в оперативном режиме, то необходимо перевести его в автономный режим:RMAN> sql 'alter database datafile 5 offline'; sql statement: alter database datafile 5 offlineПереключение повреждённого файла к последней копии-отображения.
После того как файл перевёлся в автономный режим, нужно сигнализировать базе данных, чтобы она использовала вместо повреждённого файла данных файл копии-отображения из флэш-области восстановления:RMAN> switch datafile 5 to copy; datafile 5 switched to datafile copy "/u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_example_6s4ozj5c_.dbf"Восстановление копии.
Переключение состоялось. Теперь, остаётся только привести копию-отображения файла в состояние согласованное с текущим состоянием базы данных:RMAN> recover datafile 5; Starting recover at 30-MAR-11 using channel ORA_DISK_1 starting media recovery media recovery complete, elapsed time: 00:00:02 Finished recover at 30-MAR-11Перевод повреждённого файла в online режим.
После того как файл восстановлен, его необходимо перевести в оперативный режим работы.RMAN> sql 'alter database datafile 5 online'; sql statement: alter database datafile 5 onlineПроверяем файлы данных:RMAN> report schema; Report of database schema List of Permanent Datafiles =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- -------------------- ------- ------------------------ 1 480 SYSTEM *** /u02/oradata/orcl/system01.dbf 2 140 UNDOTBS1 *** /u02/oradata/orcl/undotbs01.dbf 3 240 SYSAUX *** /u02/oradata/orcl/sysaux01.dbf 4 28 USERS *** /u02/oradata/orcl/users01.dbf 5 100 EXAMPLE *** /u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_example_6s4ozj5c_.dbf List of Temporary Files ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- -------------------- ----------- -------------------- 1 20 TEMP 32767 /u02/oradata/orcl/temp01.dbfКак видно из листинга, база данных теперь использует вместо отсутствующего файла example01.dbf файл o1_mf_example_6s4ozj5c_.dbf из флэш-области восстановления, и у нас есть время для того чтобы спокойно восстановить оригинальный файл данных.2-11. Переключение назад из флэш-области восстановления.
Как было сказано выше, переключение поврежденного файла данных на файл копии- отображения - это временная мера, позволяющая быстро вернуть повреждённый файл в оперативный режим работы. Но затягивать с эксплуатацией базы данных в таком режиме долго не стоит. Как только появится первая возможность, необходимо сразу же совершить обратное переключение.Проверка файлов базы данных
Обратное переключение начнём с проверки списка файлов:RMAN> report schema; Report of database schema List of Permanent Datafiles =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- -------------------- ------- ------------------------ 1 480 SYSTEM *** /u02/oradata/orcl/system01.dbf 2 140 UNDOTBS1 *** /u02/oradata/orcl/undotbs01.dbf 3 240 SYSAUX *** /u02/oradata/orcl/sysaux01.dbf 4 28 USERS *** /u02/oradata/orcl/users01.dbf 5 100 EXAMPLE *** /u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_example_6s4ozj5c_.dbf List of Temporary Files ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- -------------------- ----------- -------------------- 1 20 TEMP 32767 /u02/oradata/orcl/temp01.dbfКак видно, файл данных 5 находится в флэш-области восстановления. Необходимо перенести его в оригинальное местоположение.Создание копии-отображения
Для начала создаём копию-отображения файла 5 в оринальном местоположении. Правда, надо не забыть предварительно, удалить старый повреждённый файл по этому пути:RMAN> backup as copy datafile 5 format='/u02/oradata/orcl/example01.dbf'; Starting backup at 30-MAR-11 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile copy input datafile fno=00005 name=/u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_example_6s4ozj5c_.dbf output filename=/u02/oradata/orcl/example01.dbf tag=TAG20110330T022059 recid=38 stamp=747109266 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15 Finished backup at 30-MAR-11Перевод файла в offline режим.
Перед переключением необходимо перевести текущий файл данных 5 в автономный режим:RMAN> sql 'alter database datafile 5 offline'; sql statement: alter database datafile 5 offlineПереключение файла данных к копии-отображения.
Теперь нам остаётся только переключить текущий файл данных 5 из флэш-области восстановления к файлу копии-отображения, созданному в оригинальном местоположении:RMAN> switch datafile 5 to copy; datafile 5 switched to datafile copy "/u02/oradata/orcl/example01.dbf"Восстановление копии.
После переключения необходимо привести копию-отображения в состояние согласованное с текущим состоянием базы данных:RMAN> recover datafile 5; Starting recover at 30-MAR-11 using channel ORA_DISK_1 starting media recovery media recovery complete, elapsed time: 00:00:03 Finished recover at 30-MAR-11Перевод файла в online режим.
После того как файл восстановлен, переводим его в оперативный режим работы.RMAN> sql 'alter database datafile 5 online'; sql statement: alter database datafile 5 onlineПроверка файлов базы данных
Проверяем файлы данных:RMAN> report schema; Report of database schema List of Permanent Datafiles =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- -------------------- ------- ------------------------ 1 480 SYSTEM *** /u02/oradata/orcl/system01.dbf 2 140 UNDOTBS1 *** /u02/oradata/orcl/undotbs01.dbf 3 240 SYSAUX *** /u02/oradata/orcl/sysaux01.dbf 4 28 USERS *** /u02/oradata/orcl/users01.dbf 5 100 EXAMPLE *** /u02/oradata/orcl/example01.dbf List of Temporary Files ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- -------------------- ----------- -------------------- 1 20 TEMP 32767 /u02/oradata/orcl/temp01.dbfФайл данных 5 вернулся в своё оригинальное местоположение.Создание копии-отображения
В заключение перечисленных выше действий необходимо создать новую копию отображения файла в флэш-области восстановления, для будущего использования в случае отказов:RMAN> backup as copy datafile 5; Starting backup at 30-MAR-11 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile copy input datafile fno=00005 name=/u02/oradata/orcl/example01.dbf output filename=/u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_example_6s4q423w_.dbf tag=TAG20110330T022609 recid=40 stamp=747109572 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03 Finished backup at 30-MAR-112-12. Резервное копирование FRA на магнитную ленту
Так как, дисковое пространство, в котором находиться флэш-область восстановления так же подвержено сбоям, как и другое любое пространство, имеет смысл сделать резервную копию всех файлов флэш-области восстановления на магнитную ленту. В этом случае, не надо копировать на ленту каждый файл области по отдельности, так как всё это можно сделать с помощью единственной команды backup recovery area. Чтобы эта команда заработала, предварительно должен быть сконфигурирован канал sbt накопителя на магнитной ленте. В связи с тем, что накопитель у нас отсутствует, мы будем эмулировать этот канал.Эмуляция канала SBT
Чтобы произвести эмуляцию накопителя на магнитной ленте, нам понадобиться библиотека интерфейса SBT для конкретной платформы. Имеется много вариантов этих библиотек от различных программных продуктов резервного копирования. Мы возьмём файл библиотеки продукта Veritas NetBackup для Linux и поместим его в каталог /u01/app/oracle/product/10.2.0/db1/lib. После этого, сконфигурируем канал sbt, выполнив следующую команду:RMAN> configure channel device type 'sbt_tape' parms 'SBT_LIBRARY=oracle.disksbt ENV=(BACKUP_DIR=/u01/app/oracle/admin/orcl/backup)'; using target database control file instead of recovery catalog new RMAN configuration parameters: CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=oracle.disksbt ENV=(BACKUP_DIR=/u01/app/oracle/admin/orcl/backup)'; new RMAN configuration parameters are successfully storedВ качестве места назначения резервных копий в канале, у нас будет выступать специально созданный нами каталог /u01/app/oracle/admin/orcl/backup. Именно туда будут отправляться копии файлов флэш-области.Копирование флэш-области восстановления
Выполним резервное копирование FGA:RMAN> backup recovery area; Starting backup at 14-APR-11 released channel: ORA_DISK_1 allocated channel: ORA_SBT_TAPE_1 channel ORA_SBT_TAPE_1: sid=150 devtype=SBT_TAPE channel ORA_SBT_TAPE_1: WARNING: Oracle Test Disk API specification does not match any archive log in the recovery catalog specification does not match any datafile copy in the repository input backupset count=100 stamp=748452179 creation_time=14-APR-11 channel ORA_SBT_TAPE_1: starting piece 1 at 14-APR-11 channel ORA_SBT_TAPE_1: backup piece /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_04_14/o1_mf_nnndf_TAG20110414T152 259_6tfp8o08_.bkp piece handle=34m9ouaj_1_2 comment=API Version 2.0,MMS Version 8.1.3.0 channel ORA_SBT_TAPE_1: finished piece 1 at 14-APR-11 channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:36 input backupset count=101 stamp=748452225 creation_time=14-APR-11 channel ORA_SBT_TAPE_1: starting piece 1 at 14-APR-11 channel ORA_SBT_TAPE_1: backup piece /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_04_14/o1_mf_ncsnf_TAG20110414T152 259_6tfpb2kj_.bkp piece handle=35m9ouc1_1_2 comment=API Version 2.0,MMS Version 8.1.3.0 channel ORA_SBT_TAPE_1: finished piece 1 at 14-APR-11 channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:01 Finished backup at 14-APR-11Резервные копии файлов флэш-области восстановления были скопированы в ранее созданный нами каталог /u01/app/oracle/admin/orcl/backup. Проверим, так ли это:[oracle@alfa backup]$ pwd /u01/app/oracle/admin/orcl/backup [oracle@alfa backup]$ ls 34m9ouaj_1_2 35m9ouc1_1_2 Oracle_Disk_SBT_CatalogРезервные копии присутствуют. Вывести их список можно с помощью следующей команды RMAN:RMAN> list backup device type sbt_tape; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 48 Full 586.28M SBT_TAPE 00:00:43 14-APR-11 BP Key: 55 Status: AVAILABLE Compressed: NO Tag: TAG20110414T152259 Handle: 34m9ouaj_1_2 Media: List of Datafiles in backup set 48 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 567952 14-APR-11 /u02/oradata/orcl/system01.dbf 2 Full 567952 14-APR-11 /u02/oradata/orcl/undotbs01.dbf 3 Full 567952 14-APR-11 /u02/oradata/orcl/sysaux01.dbf 4 Full 567952 14-APR-11 /u02/oradata/orcl/users01.dbf 5 Full 567952 14-APR-11 /u02/oradata/orcl/example01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 49 Full 6.80M SBT_TAPE 00:00:01 14-APR-11 BP Key: 56 Status: AVAILABLE Compressed: NO Tag: TAG20110414T152259 Handle: 35m9ouc1_1_2 Media: Control File Included: Ckp SCN: 567971 Ckp time: 14-APR-11 SPFILE Included: Modification time: 13-APR-11Если потребуется в дальнейшем удалить резервные копии флэш-области, то сделать это можно с помощью обычной команды RMAN delete:RMAN> delete backup device type sbt_tape; allocated channel: ORA_SBT_TAPE_1 channel ORA_SBT_TAPE_1: sid=140 devtype=SBT_TAPE channel ORA_SBT_TAPE_1: WARNING: Oracle Test Disk API List of Backup Pieces BP Key BS Key Pc# Cp# Status Device Type Piece Name ------- ------- --- --- ----------- ----------- ---------- 55 48 1 2 AVAILABLE SBT_TAPE 34m9ouaj_1_2 56 49 1 2 AVAILABLE SBT_TAPE 35m9ouc1_1_2 Do you really want to delete the above objects (enter YES or NO)? Y deleted backup piece backup piece handle=34m9ouaj_1_2 recid=55 stamp=748452258 deleted backup piece backup piece handle=35m9ouc1_1_2 recid=56 stamp=748452295 Deleted 2 objects
Комментариев нет:
Отправить комментарий