ORA-19804: cannot reclaim N bytes disk space from M bytes limit(M バイトの上限から N バイトのディスク領域を再利用できない)
Oracle意味
Oracle が新しいファイル (アーカイブログ、バックアップ、フラッシュバックログ) のために高速リカバリ領域 (FRA) に空きを作ろうとしたが、DB_RECOVERY_FILE_DEST_SIZE で定義された論理上限に達しているため、必要な領域を再利用できなかった。
原因
FRA のサイズ (DB_RECOVERY_FILE_DEST_SIZE) は物理ディスクとは独立した上限であり、アーカイブログ、RMAN バックアップ、フラッシュバックログがそれを埋め尽くした。根本原因は通常、アーカイブログが定期的にバックアップ・削除されていない、または不要になったバックアップが削除されていないことである。
対処方法
FRA の使用状況を確認する: SELECT * FROM v$recovery_area_usage; および SELECT * FROM v$recovery_file_dest; アーカイブログを FRA 外の出力先にバックアップして削除する (RMAN: BACKUP ARCHIVELOG ALL FORMAT '/backup/arc_%U' DELETE INPUT;)、または不要になったバックアップを削除する (RMAN: DELETE OBSOLETE;)。Data Guard 環境では、スタンバイでまだ適用されていないアーカイブログを削除しない。恒久対策として、ディスク容量があれば DB_RECOVERY_FILE_DEST_SIZE を増やす。Flashback Database が不要であれば、無効化を検討する。
同じデータベースの他の項目
- ORA-07445exception encountered: core dump(例外発生: コアダンプ)
- ORA-01102cannot mount database in EXCLUSIVE mode(EXCLUSIVE モードでデータベースをマウントできない)
- ORA-29913error in executing ODCIEXTTABLEOPEN callout(ODCIEXTTABLEOPEN コールアウトの実行エラー)
- ORA-00494enqueue held for too long by 'inst N, osid M'('inst N, osid M' がエンキューを長時間保持)
- ORA-04021timeout occurred while waiting to lock object(オブジェクトのロック待機中にタイムアウト発生)
- ORA-04061existing state of package/procedure has been invalidated(パッケージ/プロシージャの既存の状態が無効化された)
- ORA-01466unable to read data - table definition has changed(データを読み取れない - 表定義が変更された)