株式会社コーソル

KNOWLEDGE

コーソルの技術情報

コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。

KNOWLEDGE検索人気のキーワード

Oracle DB Tips

ORA-19809: リカバリ・ファイルの制限を超えています

01.ORA-19809エラーとはどのようなエラーか?

ORA-19809 はフラッシュ・リカバリ領域(11.2以降で高速リカバリ領域と名称変更)が不足した場合に発生するエラーです。
フラッシュ・リカバリ領域とは、バックアップファイル、アーカイブログファイルなどのリカバリ関連のファイルの出力先となるディスク領域です。フラッシュ・リカバリ領域に出力されたファイルはOracle Databaseによって管理され、初期化パラメータDB_RECOVERY_FILE_DEST_SIZEに設定されたサイズを超えないように制御されます。
フラッシュリカバリ領域へファイルを出力しようとして、ファイルサイズの総計がDB_RECOVERY_FILE_DEST_SIZEを超える場合、ORA-19809 エラーが発生します。

02.ORA-19809エラーのエラー出力例

RMAN (Recovery Manager) によるバックアップに失敗した場合のコマンド出力
RMAN> backup database;
backupが開始されました(開始時間: 11-12-15)
:
:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: backupコマンド(ORA_DISK_1チャネル上)が12/15/2011 13:27:43で失敗しました
ORA-19809: リカバリ・ファイルの制限を超えています
ORA-19804: 67108864バイトのディスク領域を制限31457280から再生できません

フラッシュリカバリ領域にファイルを出力するコマンドを実行した結果、ORA-19809エラーが発生した場合、ORA-19804エラーが同時に出力されます。

アーカイブログの出力に失敗した場合のアラートログ出力

アーカイブログの出力に失敗した場合、アラートログに以下のようなログが出力されます。

Errors in file /var/log/oracle/xxxx/diag/rdbms/xxxx/xxxx/trace/xxxx_arc1_3853.trc:
ORA-19815: 警告: db_recovery_file_dest_size(31457280バイト)は100.00%バイトが使用され、残り0バイトが使用可能です。
************************************************************************
You have following choices to free up space from 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.
************************************************************************
ARC1: Error 19809 Creating archive log file to '/var/log/oracle/xxxx/arch/xxxx/archivelog/2011_12_15/o1_mf_1_7_%u_.arc'
ARCH: Archival stopped, error occurred. Will continue retrying
ORACLE Instance xxxx - Archival Error
ORA-16038: ログ1、順序番号7をアーカイブできません。
ORA-19809: リカバリ・ファイルの制限を超えています
ORA-00312: オンライン・ログ1 スレッド1: '/oradata/xxxx/redo01/redo111.log'
ORA-00312: オンライン・ログ1 スレッド1: '/oradata/xxxx/redo02/redo112.log'

ORA-19809エラー発生時、アラートログにはORA-19809エラーとあわせてORA-19815エラーが出力されます。

03.ORA-19809の一般的な発生要因と対処

フラッシュ・リカバリ領域に出力されたファイルサイズの総計が初期化パラメータ DB_RECOVERY_FILE_DEST_SIZEを超えたことが本エラーの発生要因です。
このため、ORA-19809エラー発生時には、以下のいずれかの対処を行う必要があります。

  • フラッシュ・リカバリ領域にある不要なファイルを削除する
  • DB_RECOVERY_FILE_DEST_SIZE の値を大きくする

 

フラッシュ・リカバリ領域にある不要なファイルを削除する

RMAN の DELETE コマンドを使用してフラッシュ・リカバリ領域にある不要なファイルを削除します。なお、RMANのDELETEコマンドを使用せずに、OS コマンドを使用してファイルを直接削除した場合、Oracle Database はフラッシュ・リカバリ領域の空き領域が増加したと認識しないため、注意が必要です。
また、不要なファイルがない場合は、DB_RECOVERY_FILE_DEST_SIZE の値を大きくする必要があります。

DB_RECOVERY_FILE_DEST_SIZE の値を大きくする

初期化パラメータファイルの値を変更後にデータベースの再起動を行うか、ALTER SYSTEM コマンドで動的に変更します。

04.ORA-19809に関するFAQ

OS コマンドを使用してファイルを削除して確保したフラッシュ・リカバリ領域の空き領域を、Oracle Databaseに認識させるには?

RMAN の CROSSCHECK コマンドにて OS 上で削除されているファイルを Oracle Database に認識させてから、DELETE EXPIRED コマンドにて無効となっているファイルの情報を論理的に削除する必要があります。
アーカイブログファイルを削除した場合の実行例を以下に示します。

RMAN を使用して接続します。
$ rman target /
OS 上で削除されているアーカイブログファイルを Oracle が持っている情報から削除するためにチェックをつけます。
RMAN> crosscheck archivelog all;
チェックをつけたファイルを削除します。
RMAN> delete expired archivelog all;

05.キーワード

ORA-19809 ORA-19804 ORA-19815 フラッシュ・リカバリ領域 DB_RECOVERY_FILE_DEST DB_RECOVERY_FILE_DEST_SIZE

この記事の監修者

監修者の写真

舛井 智行 (ますい ともゆき)

営業本部 企画&マーケティング部 次長

《資格》

Oracle Master Gold、Oracle RAC Expert、Linux Expert、LPIC Level1、Dbvisit Standby Certified Associate、基本情報技術者

《略歴》

2004年コーソル入社。2019年まで一貫してOracle Databaseの設計・構築・運用のサービス提供に従事。リモートDBAやリモート監視のサービス化、働き方改革プロジェクトで人事制度改革を手掛ける。2019年からライセンス販売強化のため企画&マーケティング部に異動。DbvisitやToad、DPAの取扱開始、販売促進活動を推し進め、ライセンス販売事業の売上拡大に注力中。

《主な著書》

オラクルマスター教科書 Gold DBA Oracle Database AdministrationⅡ
オラクルマスター教科書 Silver DBA Oracle Database Administration I
オラクルマスター教科書 Silver SQL Oracle Database SQL
Oracleの基本 ~データベース入門から設計/運用の初歩まで
プロとしてのOracle入門
Oracle Database 10g Oracle Enterprise Manager 逆引きクイックリファレンス

《担当者様からの一言》

コーソルはOracle Databaseの技術力において日本有数の知見を有すると自負しています。Oracle Masterの最高峰資格である『Oracle Master Platinum』の取得者数も日本No.1です。Oracle Databaseのことはもちろん、それ以外のDBについてもリモートDBAサービスを始めとした様々なサービス、製品を駆使してお客様のお困りごとを解消いたします。お困りごとがあればコーソルまでご相談ください。

監修者の写真

峯岸 隆一 (みねぎし りゅういち)

インフラソリューション部 市ヶ谷クラウドサービスチーム シニアエキスパート

《資格》

Oracle Master Gold、ORACLE MASTER Platinum、Oracle RAC Expert、
Oracle Database Cloud Service Oracle Infrastructure as a Service Cloud 2017 Implementation Essentials、
Oracle Cloud Infrastructure 2018 Architect Associate、
Oracle Cloud Infrastructure 2019 Architect Professional、
AWS Certified Solutions Architect – Associate、OSS-DB Silver、
MySQL 5.6 Database Administrator、基本情報技術者、テクニカルエンジニア(データベース)

《略歴》

2006年コーソル入社。2021年までOracle Databaseを中心にMySQLやGoldenGateなど、多岐にわたる製品のサポート業務に従事。2021年から企画&マーケティング部に異動し、Nutanix NDBサービス化、Qlik Replicateサービス化、AWS、OCIなど様々な製品のサービス化、クラウド環境上の製品検証、ブログ執筆を手掛ける。2023年からOCI技術に磨きをかけるべくOCI基盤の設計・構築業務を遂行中 。

《主な著書》

オラクルマスター教科書 Gold DBA Oracle Database AdministrationⅡ
オラクルマスター教科書 Silver DBA Oracle Database Administration I
オラクルマスター教科書 Silver SQL Oracle Database SQL  Oracleの基本 ~データベース入門から設計/運用の初歩まで

《担当者様からの一言》

コーソルはOracle Database製品および周辺製品において特化した技術力を有している会社です。また、育成にも力を入れており、新卒などOracle Databaseの知識がないエンジニアでも数年でOracle Master Platinumを取得するほどのエンジニアに育て上げることに成功しています。クラウド分野(AWS、Oracle Cloud)にも積極的に進出しておりますので、Oracle Databaseに関するサービスをご要望であればプラットフォーム問わず対応できるコーソルにご連絡下さい。