RMAN В ПРИМЕРАХ - Использование флэш-области восстановления. Глава 2. Часть 1.
2-1. Создание флэш-области
Выключение параметров 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 = 2G;
System altered.
Каталог флэш-области восстановления должен существовать до выполнения команды.
SQL> alter system set db_recovery_file_dest = 'c:\oracle\product\10.2.0/flash_recovery_area';
System altered.
2-2. Запись регулярных копий базы данных в флэш-область восстановления.
Копирование базы в флэш-область восстановления
RMAN> backup database;
Starting backup at 28-JUL-09 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=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF input datafile fno=00002 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF input datafile fno=00003 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF input datafile fno=00005 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF input datafile fno=00004 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF channel ORA_DISK_1: starting piece 1 at 28-JUL-09 channel ORA_DISK_1: finished piece 1 at 28-JUL-09 piece handle=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_07_28\O1_MF_NNNDF_TAG20090728T103654_56X746Q4_.BKP tag=TAG20090728T103654 com ment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45 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 28-JUL-09 channel ORA_DISK_1: finished piece 1 at 28-JUL-09 piece handle=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_07_28\O1_MF_NCSNF_TAG20090728T103654_56X75O8H_.BKP tag=TAG20090728T103654 com ment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03 Finished backup at 28-JUL-09
2-3. Освобождение пространства в флэш-области восстановления.
Иногда в alert log можно наблюдать запись примерно такого вида:
ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% used, and has 0 remaining bytes available.
Это означает, что произошло переполнение флэш-области восстановления. Игнорирование этого предупреждения может привести к остановке процесса архивации и невозможности в дальнейшем открытия экземпляра базы данных при перезагрузке. В этом случае можно осуществить следующие действия.
Увеличение пространства флэш-области восстановления
Можно непосредственно увеличить место выделяемое под флэш-область восстановления с помощью команды:
SQL> alter system set db_recovery_file_dest_size = 4G;
System altered.
Удаление контрольных точек
Так же можно удалить созданные ранее контрольные точки:
SQL> select name, storage_size from v$restore_point;
NAME STORAGE_SIZE ---- ------------ P1 0
SQL> drop restore point p1;
Restore point dropped.
Это позволит освободить немного места и стартовать базу данных.
Выключение FlashBack
Если первые два способа не привели к положительным результатам или неприемлемы, можно временно отключить FlashBack:
Total System Global Area 612368384 bytes Fixed Size 1292036 bytes Variable Size 293603580 bytes Database Buffers 310378496 bytes Redo Buffers 7094272 bytes Database mounted. SQL> alter database flashback off;
Database altered.
Это позволит остановить flashback операции и не генерировать flashback лог. После этого мы можем удалить ненужные резервные копии и архивные журнальные файлы:
RMAN> delete noprompt archivelog all;
released channel: ORA_DISK_1 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=158 devtype=DISK
List of Archived Log Copies Key Thrd Seq S Low Time Name ------- ---- ------- - --------- ---- 37 1 80 A 29-JUL-09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_07_29\O1_MF_1_80_56ZVWX52_.ARC 38 1 81 A 29-JUL-09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_07_29\O1_MF_1_81_56ZVWZCF_.ARC 39 1 82 A 29-JUL-09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_07_29\O1_MF_1_82_56ZWK2W0_.ARC 40 1 83 A 29-JUL-09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_07_29\O1_MF_1_83_56ZWKQOO_.ARC 41 1 84 A 29-JUL-09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_07_29\O1_MF_1_84_56ZWL7QM_.ARC 42 1 85 A 29-JUL-09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_07_29\O1_MF_1_85_56ZX4PMP_.ARC deleted archive log archive log filename=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_07_29\O1_MF_1_80_56ZVWX52_.ARC recid=37 stamp=693485023 deleted archive log archive log filename=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_07_29\O1_MF_1_81_56ZVWZCF_.ARC recid=38 stamp=693485025 deleted archive log archive log filename=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_07_29\O1_MF_1_82_56ZWK2W0_.ARC recid=39 stamp=693485669 deleted archive log archive log filename=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_07_29\O1_MF_1_83_56ZWKQOO_.ARC recid=40 stamp=693485690 deleted archive log archive log filename=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_07_29\O1_MF_1_84_56ZWL7QM_.ARC recid=41 stamp=693485705 deleted archive log archive log filename=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_07_29\O1_MF_1_85_56ZX4PMP_.ARC recid=42 stamp=693486297 Deleted 6 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 ------- ------- --- --- ----------- ----------- ---------- 39 39 1 1 AVAILABLE DISK C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_07_29\O1_MF_NNNDF_TAG20090729T121045_57010 61N_.BKP deleted backup piece backup piece handle=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_07_29\O1_MF_NNNDF_TAG20090729T121045_5701061N_.BKP recid=39 stamp=6934 90246
Deleted 1 objects
RMAN> delete backup;
using channel ORA_DISK_1
List of Backup Pieces BP Key BS Key Pc# Cp# Status Device Type Piece Name ------- ------- --- --- ----------- ----------- ---------- 40 40 1 1 AVAILABLE DISK C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_07_29\O1_MF_NCSNF_TAG20090729T121045_57012 8TK_.BKP
Do you really want to delete the above objects (enter YES or NO)? y deleted backup piece backup piece handle=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_07_29\O1_MF_NCSNF_TAG20090729T121045_570128TK_.BKP recid=40 stamp=6934 90312 Deleted 1 objects
Теперь можно открывать базу данных:
SQL> alter database open;
Database altered.
2-4. Проверка используемого пространства в флэш-области восстановления.
Представление v$recovery_file_dest показывает дисковую квоту и использование дискового пространства в флэш-области восстановления:
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 – количество файлов в флэш-области восстановления.
Процент использования дискового простанства для различных типов файлов флэш-области восстановления. Процент вычисляется от общих размеров используемого дискового пространства флэш-области.
Обычно, при уменьшении размера флэш-области, если используемое дисковое пространство (столбец SPACE_USED) превышает лимит флэш-области (столбец SPACE_LIMIT), то устаревшие и избыточные файлы будут автоматически удалены. При этом максимальный размер пространства которое может быть удален отображается в столбце SPACE_RECLAIMABLE. Но если этого количества по каким то причинам недостаточно, чтобы привести в соответствие размеры доступного и занятого дискового пространства в флэш-области, то файлы не удаляются и размер занятого пространства в этом случае остается без изменений. Попытка сделать в этот момент резервную копию, даже очень небольшую закончиться ошибкой следующего вида:
RMAN> backup as copy tablespace users;
Starting backup at 04-AUG-09 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile copy input datafile fno=00004 name=C:\ORACLE\PRODUCT\10.2.0\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 08/04/2009 12:21:23 ORA-19809: limit exceeded for recovery files ORA-19804: cannot reclaim 22282240 bytes disk space from 2147483648 limit
Чтобы исправить данную ситуацию необходимо вручную удалить избыточные резервные копии:
RMAN> report obsolete;
RMAN retention policy will be applied to the command RMAN retention policy is set to redundancy 3 Report of obsolete backups and copies Type Key Completion Time Filename/Handle -------------------- ------ ------------------ -------------------- Datafile Copy 9 04-AUG-09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\DATAFILE\O1_MF_USERS_57HR7MP4_.DBF Backup Set 60 04-AUG-09 Backup Piece 60 04-AUG-09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_04\O1_MF_NCSNF_TAG20090804T110422_57HQFH 8Y_.BKP
RMAN> delete obsolete;
RMAN retention policy will be applied to the command RMAN retention policy is set to redundancy 3 using channel ORA_DISK_1 Deleting the following obsolete backups and copies: Type Key Completion Time Filename/Handle -------------------- ------ ------------------ -------------------- Datafile Copy 9 04-AUG-09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\DATAFILE\O1_MF_USERS_57HR7MP4_.DBF Backup Set 60 04-AUG-09 Backup Piece 60 04-AUG-09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_04\O1_MF_NCSNF_TAG20090804T110422_57HQFH 8Y_.BKP
Do you really want to delete the above objects (enter YES or NO)? y deleted datafile copy datafile copy filename=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\DATAFILE\O1_MF_USERS_57HR7MP4_.DBF recid=9 stamp=694005556 deleted backup piece backup piece handle=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_04\O1_MF_NCSNF_TAG20090804T110422_57HQFH8Y_.BKP recid=60 stamp=6940 04719 Deleted 2 objects
Если при удалении избытычных резервных копий не требуется диалога запроса, то можно использовать следующую команду:
RMAN> delete noprompt obsolete;
RMAN retention policy will be applied to the command RMAN retention policy is set to redundancy 1 using channel ORA_DISK_1 Deleting the following obsolete backups and copies: Type Key Completion Time Filename/Handle -------------------- ------ ------------------ -------------------- Backup Set 61 04-AUG-09 Backup Piece 61 04-AUG-09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_04\O1_MF_NNNDF_TAG20090804T112650_57HROT WH_.BKP Backup Set 62 04-AUG-09 Backup Piece 62 04-AUG-09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_04\O1_MF_NCSNF_TAG20090804T112650_57HRQM GT_.BKP Backup Set 63 04-AUG-09 Backup Piece 63 04-AUG-09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_04\O1_MF_NNNDF_TAG20090804T115443_57HTB3 S2_.BKP Backup Set 64 04-AUG-09 Backup Piece 64 04-AUG-09 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_04\O1_MF_NCSNF_TAG20090804T115443_57HTCW BX_.BKP deleted backup piece backup piece handle=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_04\O1_MF_NNNDF_TAG20090804T112650_57HROTWH_.BKP recid=61 stamp=6940 06010 deleted backup piece backup piece handle=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_04\O1_MF_NCSNF_TAG20090804T112650_57HRQMGT_.BKP recid=62 stamp=6940 06067 deleted backup piece backup piece handle=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_04\O1_MF_NNNDF_TAG20090804T115443_57HTB3S2_.BKP recid=63 stamp=6940 07683 deleted backup piece backup piece handle=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_04\O1_MF_NCSNF_TAG20090804T115443_57HTCWBX_.BKP recid=64 stamp=6940 07740 Deleted 4 objects
Результатом проведённого удаления лишних резервных копий является уменьшение размера занятого дискового пространства флэш-области:
2-8. Удаление резервных наборов из флэш-области восстановления
Проверка резервных наборов в RMAN репозитории
RMAN> list backupset;
List of Backup Sets ===================
BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 68 Full 80.00K DISK 00:00:01 26-AUG-09 BP Key: 68 Status: AVAILABLE Compressed: NO Tag: TAG20090826T164946 Piece Name: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_26\O1_MF_NNSNF_TAG20090826T164946_59BCYDOH_.BKP SPFILE Included: Modification time: 26-AUG-09
BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 69 Full 6.83M DISK 00:00:02 27-AUG-09 BP Key: 69 Status: AVAILABLE Compressed: NO Tag: TAG20090827T143815 Piece Name: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_27\O1_MF_NCSNF_TAG20090827T143815_59DRKWVT_.BKP Control File Included: Ckp SCN: 3821642 Ckp time: 27-AUG-09 SPFILE Included: Modification time: 26-AUG-09
BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 70 Full 6.83M DISK 00:00:01 27-AUG-09 BP Key: 70 Status: AVAILABLE Compressed: NO Tag: TAG20090827T144520 Piece Name: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_27\O1_MF_NCSNF_TAG20090827T144520_59DRZ5L2_.BKP Control File Included: Ckp SCN: 3821919 Ckp time: 27-AUG-09 SPFILE Included: Modification time: 27-AUG-09
Удаление отдельного резервного набора из RMAN репозитория
Удаление отдельного резервного набора с номером 69:
RMAN> delete backupset 69;
using channel ORA_DISK_1
List of Backup Pieces BP Key BS Key Pc# Cp# Status Device Type Piece Name ------- ------- --- --- ----------- ----------- ---------- 69 69 1 1 AVAILABLE DISK C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_27\O1_MF_NCSNF_TAG20090827T143815_59DRK WVT_.BKP
Do you really want to delete the above objects (enter YES or NO)? y deleted backup piece backup piece handle=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_27\O1_MF_NCSNF_TAG20090827T143815_59DRKWVT_.BKP recid=69 stamp=6960 04732 Deleted 1 objects