Начиная с первого релиза 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 показывает процент использование дискового пространства для различных типов файлов флэш-области восстановления:
PERCENT_SPACE_USED - процент дискового пространства используемого данным типом файла флэш-области восстановления в процентах от общего размера дискового пространства флэш-области.
PERCENT_SPACE_RECLAIMABLE - процент дискового пространства , который может быть создан, удаляя устаревшие, избыточные, или другие файлы низкого приоритета из флэш-области восстановления для данного типа файла в процентах от общего размера дискового пространства флэш-области.
NUMBER_OF_FILES - количество файлов в флэш-области восстановления.
Для того чтобы видеть общий размер пространства каждого файла флэш-области восстановления, надо соединить представление v$flash_recovery_area_usage с представлением recovery_file_dest.
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 создадим копии образов файлов данных и отправим их в флэш-область восстановления:
Копии образов файлов данных помещены в каталог /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_.arc
2-10. Восстановление повреждённого файла данных из копии- отображения.
Если один из файлов данных повреждён, то вместо того, чтобы немедленно восстанавливать файл из резервной копии, можно временно использовать копию-отображения файла из флэш- области восстановления.
Рассмотрим данную ситуацию на примере. Для начала повредим (удалим) файл данных EXAMPLE01.DBF, переведя его в автономный режим, без физического удаления:
SQL> alter database datafile '/u02/oradata/orcl/example01.dbf' offline drop;
Database altered.
Затем, удалим его физически с помощью команды операционной системы.
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> 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> 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 в автономный режим:
Теперь нам остаётся только переключить текущий файл данных 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> 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-11
2-12. Резервное копирование FRA на магнитную ленту
Так как, дисковое пространство, в котором находиться флэш-область восстановления так же подвержено сбоям, как и другое любое пространство, имеет смысл сделать резервную копию всех файлов флэш-области восстановления на магнитную ленту. В этом случае, не надо копировать на ленту каждый файл области по отдельности, так как всё это можно сделать с помощью единственной команды backup recovery area. Чтобы эта команда заработала, предварительно должен быть сконфигурирован канал sbt накопителя на магнитной ленте. В связи с тем, что накопитель у нас отсутствует, мы будем эмулировать этот канал.
Эмуляция канала SBT
Чтобы произвести эмуляцию накопителя на магнитной ленте, нам понадобиться библиотека интерфейса SBT для конкретной платформы. Имеется много вариантов этих библиотек от различных программных продуктов резервного копирования. Мы возьмём файл библиотеки libobk.so продукта 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
Комментариев нет:
Отправить комментарий