Flash recovery area og ORA-19809
Har du støtt på Oracle feilmeldingen ORA-19804, ORA-19809 eller ORA-19815 mange ganger?
Dette skyldes at du har nådd den logiske grensen på “flash_recovery_area” i Oracle-terminologien. Jeg mener dette er en feil i rutinen til programmet som oppretter databasen – database konfigurasjons assistenten dbca og skyldes som regel at du har beholdt standard oppsettet på DB_RECOVERY_FILE_DEST_SIZE som er 2 GB.
Hva er riktig størrelse?
Som regel benytter man et stort område til å lagre arkivfiler og sikkerhetskopi av databasene. Og derfor burde database konfigurasjons assistenten vært mer nøyaktig om hvilke konsekvenser denne feilen får. Konsekvensen er at databasen stopper helt til du enten rydder plass eller endrer størrelsen til noe mer realistisk, for eksempel 90% av den plass du har avsatt for arkivering og sikkerhetskopier av databasen. Har du flere databaser på samme server konkurrerer de muligens også om den samme plassen.
Begynn med å sjekke alert-loggen
Alert loggen er et bra sted å søke i når denne logiske grense er nådd. Det kan da se slik ut:
ORA-19815: WARNING: db_recovery_file_dest_size of 53687091200 bytes is 100.00% used, and has 0 remaining bytes available.
************************************************************************
You have following choices to free up space from flash recovery area:
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such as tape using RMAN
BACKUP RECOVERY AREA command.
3. Add disk space and increase db_recovery_file_dest_size parameter to
reflect the new space.
4. Delete unnecessary files using RMAN DELETE command. If an operating
system command was used to delete files, then use RMAN CROSSCHECK and
DELETE EXPIRED commands.
************************************************************************
Creating archive destination file : /oradata/flash_recovery_area/PROD/archivelog/2008_09_26/o1_mf_1_10164_0_.arc (189364 blocks)
Fri Sep 26 18:06:36 2008
Errors in file /oracle/admin/PROD/udump/prod_rfs_17303.trc:
ORA-00270: error creating archive log /oradata/flash_recovery_area/PROD/archivelog/2008_09_26/o1_mf_1_10164_%u_.arc
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 96954368 bytes disk space from 53687091200 limit
Du kan også bruke Oracle-kommandoen oerr for å få en forklaring til disse ORA- feilmeldingene. Denne kommandoen finnes kun på Linux og Unix plattformen.
oracle@xps:~$ oerr ora 19809
19809, 00000, "limit exceeded for recovery files"
//*Cause: The limit for recovery files specified by the
// DB_RECOVERY_FILE_DEST_SIZE was exceeded.
//*Action:The error is accompanied by 19804. See message 19804 for further
// details.
oracle@xps:~$ oerr ora 19804
19804, 00000, "cannot reclaim %s bytes disk space from %s limit"
// *Cause: Oracle cannot reclaim disk space of specified bytes from the
// DB_RECOVERY_FILE_DEST_SIZE limit.
// *Action: There are five possible solutions:
// 1) Take frequent backup of recovery area using RMAN.
// 2) Consider changing RMAN retention policy.
// 3) Consider changing RMAN archivelog deletion policy.
// 4) Add disk space and increase DB_RECOVERY_FILE_DEST_SIZE.
// 5) Delete files from recovery area using RMAN.
Hvor mye ledig plass gjenstår?
Ønsker du å sjekke hvor mye plass som er benyttet kan følgende SQL brukes:
SYS@PROD SQL> SELECT (100 - sum(percent_space_used))
+ sum(percent_space_reclaimable)
"Prosent ledig plass"
FROM v$flash_recovery_area_usage;
Prosent ledig plass
-------------------
84,09
Løsningen på problemet er indikert i såvel alert loggen som ORA-teksten og en enkel variant er å endre parameteren DB_RECOVERY_FILE_DEST_SIZE til å bedre indikere hvor stor plass som er avsatt til dette området. SQL-en ser da slik ut:
SYS@PROD SQL> ALTER SYSTEM SET
db_recovery_file_dest_size = 100G;
Hvis du ønsker en tilbakemelding neste gang området er på vei å fylles opp kan du enten benytte deg av Oracle Enterprise Manager eller overvåkingsprogrammet dbWatch. dbWatch har etterhvert fått stor anerkjennelse og fikk en 5-stjerners vurdering i juli.
This post is also available in: English
English
Norsk 