To disable FRA you can use:
ALTER SYSTEM SET
DB_RECOVERY_FILE_DEST
= '' scope=both;
Restrictions on
Initialization Parameters
- Oracle automatically assings the LOG_ARCHIVE_DEST_10 to the location
of the FRA.
- Oracle allows you to archive to both the FRA and one or more
additional locations through the use of the LOG_ARCHIVE_DEST_n
parameters. To do this, you do not use the standard FRA parameter
DB_RECOVERY_FILE_DEST. Rather, you define the various
LOG_ARCHIVE_DEST_n parameters as you normally would. Then, you define
an additional LOG_ARCHIVE_DEST_n parameter for the FRA using the
Oracle-supplied constant USE_DB_RECOVERY_FILE_DEST for the location of
that archiving destination, as shown in this example:
SQL> alter system set
log_archive_dest_10='LOCATION=USE_DB_RECOVERY_FILE_DEST';
In this case, the LOG_ARCHIVE_DEST_10 parameter will cause ARCH to
archive the archive log destination. Note that you still need to set
the DB_RECOVERY_FILE_DEST parameter. What happens if you set the
DB_RECOVERY_FILE_DEST parameter and you set any of the
LOG_ARCHIVE_DEST_n parameters? Oracle will only archive to the
LOG_ARCHIVE_DEST_n locations, and will not archive to the FRA unless
you have set one of the LOG_ARCHIVE_DEST_n parameters to a location of
USE_DB_RECOVERY_FILE_DEST.
- Multiple database can have the same DB_RECOVERY_FILE_DEST only if the
DB_NAME are different or if the DB_NAME is same (example the primary
and standby database) then the DB_UNIQUE_NAME parameter must be
different for the databases
- For RAC the location of Flash Recovery Area must be on a cluster file
system, ASM or a shared directory configured through NFS. The location
and disk quota must be the same on all instances.
Oracle 10g has a new dynamic performance view for
monitoring the recovery area:
desc
v$recovery_file_dest
Name
Type
-----------------------------
-----------
NAME
VARCHAR2(513)
SPACE_LIMIT
NUMBER
SPACE_USED
NUMBER
SPACE_RECLAIMABLE
NUMBER
NUMBER_OF_FILES
NUMBER
Column Description:
- NAME: Recovery area name, indicating location string.
- SPACE_LIMIT: used space by recovery area files in bytes
- SPACE_RECLAIMABILE: amount of space that can be created by deleting
obsolete, redundant, and other low priority files through the space
management algorithm.
- NUMBER_OF_FILE: number of files
Example:
SQL> select * from
v$recovery_file_dest;
NAME
SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE
NUMBER_OF_FILES
------------
------------- ------------ -----------------
----------------
/dba/backup
2147483648
458219520
0
49
The size of the flash recovery area at any time is
a function of:
• Copies of all datafiles
• Incremental backups
• Online redo logs
• Archived redo logs
• Flashback logs
• Current Controlfile
• Controlfile autobackups and SPFILEs
When sizing, you need to take into account the RMAN backup retention
policy, storage device type and number of data block changes.
Managing
the Flash Recovery Area: Resolving flash_recovery_area full
The database issues a warning alert when reclaimable space is less than
15% and a critical alert when reclaimable space is less than 3%.
You can see the alerts in the alert.log and in DBA_OUTSTANDING_ALERTS.
SELECT object_type, message_type,
message_level, reason, suggested_action
FROM
dba_outstanding_alerts;
If the flash recovery area becomes full, an error is
issued. Beware of
using the flash recovery area for log_archive_dest_n.
If the flash recovery becomes full and Oracle cannot archive redo logs
then the instance will hang.
The following actions can be done to resolve the space
issue :
- Add disk space to the Flash Recovery Area or increase
DB_RECOVERY_FILE_DEST_SIZE
alter system set
DB_RECOVERY_FILE_DEST_SIZE= <new size>;
- Use the command BACKUP RECOVERY AREA, to back up the contents
of the Flash Recovery Area to a tertiary device such as tape.
RMAN>
backup device type 'sbt_tape'
recovery area;
or
RMAN> backup
recovery area;
-
Delete the files from the Flash Recovery Area using RMAN.
The removal is
desribed in the RMAN documentation but this is a quick and dirty way if
you don't have an rman repository - but could endanger your ability to
recover - so be careful.
a) delete unwanted
archive log files from disk ( rm /del )
b) connect to rman
c) rman> crosscheck
archivelog all; - marks
the controlfile that the archives have been
deleted
d) rman> delete expired
archivelog all; - deletes the log entries
identified above.
- Changing RMAN retention policy.
NOTE= Manually removing fixed files from the FRA can
have unexpected consequences. Oracle does not immediately detect the
removal of these files, and thus the space is not reclaimed. If you end
up manually removing files (or loose a disk perhaps), use the RMAN crosscheck command along with the delete command to cause Oracle to
update the current control file information on the FRA. The folks at
Oracle recommend that you not manually remove files managed by Oracle
if at all possible.
Oracle does not delete eligible files from the Flash
Recovery Area until the space must be reclaimed for some other purpose.
The effect is that files recently moved to tape are often still
available on disk for use in recovery. The recovery area can thus serve
as a kind of cache for tape. Once the Flash Recovery Area is full,
Oracle automatically deletes eligible files to reclaim space in the
Flash Recovery Area as needed.
Identify
Different File types and space used in Flash Recovery Area
Starting with Oracle 10G Release 2, a new view has been made available
:V$FLASH_RECOVERY_AREA_USAGE
V$FLASH_RECOVERY_AREA_USAGE shows the percentage of the total disk
quota used by different types of files, and how much space for each
type of file can be reclaimed by deleting files that are obsolete,
redundant, or already backed up to tape.
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
39.86
39.86
24
BACKUPPIECE
59.19
28.93
4
IMAGECOPY 0
0
0
FLASHBACKLOG 0
0
0
Percentage of space usable in the flash recovery area can be identified
by:
SELECT (100 -
sum(percent_space_used)) + sum(percent_space_reclaimable)FROM
v$flash_recovery_area_usage;
(100-SUM(PERCENT_SPACE_USED))+SUM(PERCENT_SPACE_RECLAIMABLE)
------------------------------------------------------------
69.74
V$RECOVERY_FILE_DEST shows the current location, disk quota, space in
use, space reclaimable by deleting files, and total number of files in
the flash recovery area
SQL> select * from
v$recovery_file_dest;
NAME
SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE
NUMBER_OF_FILES
------------
------------- ------------ -----------------
----------------
/dba/backup
4294967296 2647365120
0
49
Changing the
Flash Recovery Area
It is possible to:
a. Archive to another file system location in addition to the Flash
Recovery Area
b. Archive to another file system location instead of the Flash
Recovery Area
c. Place disk backups in an alternate location
d. Avoid use of the Flash Recovery Area altogether (not recommended)
a.
Archive to another file system location in addition to the Flash
Recovery Area
SQL>create pfile from spfile;
Add the following line to the init.ora:
log_archive_dest_n=’<archivelog directory>’ eg
log_archive_dest_1='LOCATION=D:\oracle\product\10.2.0\oradata\V102\Arch'
Restart the instance using the amended pfile and recreate the spfile:
SQL>shutdown
SQL>create spfile from pfile;
SQL>startup;
b. Archive to
another file system location instead of the Flash Recovery Area
Create a parameter file (as above)
Add the following line to the init.ora:
log_archive_dest_n (as above)
Remove the following parameter in the init.ora:
log_archive_dest_10
Restart the instance using the amended pfile and recreate the spfile
c.Place disk backups in an
alternate location
Specify a format on RMAN when backing up eg:
rman> backup database format
'd:\oracle\product \10.2.0\oradata\V102\backups\%U';
d.
Avoid use of the Flash Recovery Area altogether (not recommended)
Create a parameter file (as above)
Add the following line to the init.ora:
log_archive_dest_n (as above) or
log_archive_dest='<arch
directory>'
Remove the following parameter in the init.ora:
log_archive_dest_10
db_recovery_file_dest
db_recovery_file_dest_size
Restart the instance using the amended pfile and recreate the spfile.