ORACLE TECHNOLOGY NETWORK
 
 
   

Oracle Technology Network (OTN) Japan - 掲示板 » データベース(R/O) » Oracle Database 10gの部屋(読取専用)

スレッド: 空きがあるのにdb_recovery_file_dest_size制限

このスレッドに返信する このスレッドに返信する スレッド一覧へ スレッド一覧へ

Permlink 返信数: 16 - ページ数: 2 [ 1 2 | 次へ ] - 最新投稿 : 2006/02/04 10:25 最新投稿者: @ ・ x ・ @3 - スレッド表示形式:
nanbuwks

投稿数: 8
登録日時: 06/01/16


空きがあるのにdb_recovery_file_dest_size制限
投稿時刻: 2006/01/30 20:50
  このスレッドに返信します… 返信

はじめまして。
DB_RECOVERY_FILE_DEST_SIZEの設定で悩まされています。
ファイルサイズは十分に小さいのにORA-19809エラーが発生します。
このの問題はどのように解決したらいいでしょうか。

環境:Oracle 10.1.0.2.0+Windows 2003 Server

1.1/19に既存のOracleデータベースをArchiveLogモードに変更しました。
2.1/24にアーカイブログがいっぱいになり、ORA-19809で停止しました。
3.対策として、ログの消去をするスクリプトを定期で走らせるようにし、また
DB_RECOVERY_FILE_DEST_SIZEを2G → 10Gに変更しました。
4.1/30(本日)Oracleが停止しました。
5.shutdown後に、startupするとエラーが以下のように表示されます。

データベースがマウントされました。
ORA-16038: ログ2、順序番号1476をアーカイブできません。
ORA-19809: リカバリ・ファイルの制限を超えています
ORA-00312: オンライン・ログ2 スレッド1:
'E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO02.LOG'
ORA-00312: オンライン・ログ2 スレッド1: 'C:\MIRROR\REDO002.LOG'

6.以下に、alert_orcl.logの抜粋を示します。

Starting up ORACLE RDBMS Version: 10.1.0.2.0.
System parameters with non-default values:
processes = 150
shared_pool_size = 1073741824
large_pool_size = 67108864
java_pool_size = 67108864
nls_language = JAPANESE
nls_territory = JAPAN
control_files =
E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL01.CTL,
E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL02.CTL,
C:\MIRROR\CONTROL03.CTL
db_block_size = 8192
db_cache_size = 536870912
compatible = 10.1.0.2.0
db_file_multiblock_read_count= 16
db_recovery_file_dest = E:\oracle\product\10.1.0\flash_recovery_area
db_recovery_file_dest_size= 10737418240
.
.
.

ARC1: Evaluating archive log 3 thread 1 sequence 1477
Mon Jan 30 20:02:24 2006
Errors in file
e:\oracle\product\10.1.0\admin\orcl\bdump\orcl_arc1_464.trc:
ORA-00313: ログ・グループ3(スレッド1)のメンバーをオープンできません。

Mon Jan 30 20:02:24 2006
Errors in file e:\oracle\product\10.1.0\admin\orcl\udump\orcl_ora_232.trc:
ORA-19815: 警告: db_recovery_file_dest_size(10737418240バイト)は
100.00%バイトが 使用され、残り0バイトが使用可能です。

Mon Jan 30 20:02:24 2006
Errors in file
e:\oracle\product\10.1.0\admin\orcl\bdump\orcl_arc0_356.trc:
ORA-19815: 警告: db_recovery_file_dest_size(10737418240バイト)は
100.00%バイトが 使用され、残り0バイトが使用可能です。

.
.
.

Mon Jan 30 20:02:24 2006
Errors in file e:\oracle\product\10.1.0\admin\orcl\udump\orcl_ora_232.trc:
ORA-19809: リカバリ・ファイルの制限を超えています
ORA-19804: 10017792バイトのディスク領域を制限10737418240から再生できません

Mon Jan 30 20:02:24 2006
Errors in file
e:\oracle\product\10.1.0\admin\orcl\bdump\orcl_arc0_356.trc:
ORA-19809: リカバリ・ファイルの制限を超えています
ORA-19804: 10017792バイトのディスク領域を制限10737418240から再生できません

Mon Jan 30 20:02:24 2006
ARCH: Error 19809 Creating archive log file to
'E:\ORACLE\PRODUCT\10.1.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2006_01_30\O1_MF_1_1476_U_.ARC'
Mon Jan 30 20:02:24 2006
ARCH: All standby destinations failed; successful archival assumed
ARCH: Failed to archive log 2 thread 1 sequence 1476 (19809)
ORA-16038 signalled during: ALTER DATABASE OPEN...
Mon Jan 30 20:02:25 2006
ARC0: Error 19809 Creating archive log file to
'E:\ORACLE\PRODUCT\10.1.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2006_01_30\O1_MF_1_1477_U_.ARC'
Mon Jan 30 20:02:25 2006
ARC0: All standby destinations failed; successful archival assumed
ARC0: Failed to archive log 3 thread 1 sequence 1477 (19809)
ARCH: Archival stopped, error occurred. Will continue retrying
ARCH:
Mon Jan 30 20:02:25 2006
ORA-16038: ログ3、順序番号1477をアーカイブできません。
ORA-19809: リカバリ・ファイルの制限を超えています
ORA-00312: オンライン・ログ3 スレッド1:
'E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO03.LOG'
ORA-00312: オンライン・ログ3 スレッド1: 'C:\MIRROR\REDO003.LOG'

.
.
.

7.以下に、db_recovery_file_destのファイルサイズを示します。
E:\oracle\product\10.1.0\flash_recovery_area>dir /s | findstr "ディレ
クトリ フ ァイル"
E:\oracle\product\10.1.0\flash_recovery_area のディレクトリ
0 個のファイル 0 バイト
E:\oracle\product\10.1.0\flash_recovery_area\ORCL のディレクトリ
0 個のファイル 0 バイト
E:\oracle\product\10.1.0\flash_recovery_area\ORCL\ARCHIVELOG のディレ
クトリ
0 個のファイル 0 バイト
E:\oracle\product\10.1.0\flash_recovery_area\ORCL\ARCHIVELOG\2006_01_28
のディ レクトリ
16 個のファイル 128,624,128 バイト
E:\oracle\product\10.1.0\flash_recovery_area\ORCL\ARCHIVELOG\2006_01_29
のディ レクトリ
14 個のファイル 81,499,648 バイト
E:\oracle\product\10.1.0\flash_recovery_area\ORCL\ARCHIVELOG\2006_01_30
のディ レクトリ
115 個のファイル 1,133,311,488 バイト
ファイルの総数:
145 個のファイル 1,343,435,264 バイト
17 個のディレクトリ 279,526,703,104 バイトの空き領域

8. 7.のように、指定領域には1.3G程しかないのに6.ではエラーが出ています。

以上、宣しくお願いします。

deanna

投稿数: 3,796
登録日時: 97/05/10


RE:空きがあるのにdb_recovery_file_dest_size制限
投稿時刻: 2006/01/30 20:57   nanbuwks さんへの返信です。 nanbuwks さんへの返信です。
  このスレッドに返信します… 返信

Windowsサーバでクォータが設定されてませんか?

---
deanna

t_saegusa

投稿数: 1,237
登録日時: 02/08/26


RE:空きがあるのにdb_recovery_file_dest_size制限
投稿時刻: 2006/01/30 20:58   nanbuwks さんへの返信です。 nanbuwks さんへの返信です。
  このスレッドに返信します… 返信

>ファイルサイズは十分に小さいのにORA-19809エラーが発生します。

以下のツリーで同じエラーを扱っています。
ご参考に。
http://otn.oracle.co.jp/cgi-bin/non/msgview_r.cgi?communityid=otn-489965&bbsid=1&no=78250&view=9

nanbuwks

投稿数: 8
登録日時: 06/01/16


RE[1]:空きがあるのにdb_recovery_file_dest_size制限
投稿時刻: 2006/01/30 21:12   deanna さんへの返信です。 deanna さんへの返信です。
  このスレッドに返信します… 返信

アドバイスありがとうございます。
全てのドライブでクォータは無効にしてあります。
ちなみに、OS側ではエラーは発生していません(イベントビューワ-システムで
確認)

nanbuwks

投稿数: 8
登録日時: 06/01/16


RE[1]:空きがあるのにdb_recovery_file_dest_size制限
投稿時刻: 2006/01/30 21:47   t_saegusa さんへの返信です。 t_saegusa さんへの返信です。
  このスレッドに返信します… 返信

お返事ありがとうございます。
alter system set DB_RECOVERY_FILE_DEST_SIZE=30G;
としたら動作はしました。
しかし、現在db_recovery_file_destに該当するところが
1.27G(エクスプローラで確認)にもかかわらず今までの10Gで
停止したので、30Gとしても今後容量に満たないにかかわらず
停止する可能性を考えています。

お教え頂いたスレッド中の、
http://otn.oracle.co.jp/cgi-bin/non/msgview_r.cgi?communityid=otn-489965&bbsid=1&no=78252&view=9
には
5) RMANを使用してファイルをリカバリ領域から削除します。
とありますが、当方ではRMANを使用せず、スクリプトで削除しています。
スクリプトはcygwinを使用し、以下のようにして削除しています。
cd $1
find . -type f -mtime +$2 | xargs rm
find . -type d -empty | xargs rmdir -p

$1にdb_recovery_file_destのディレクトリを、$2に経過日数として1を指定
し、3時間ごとのホットバックアップ後実行するようにしています。

cygwinを使って消しておりますが、OSコマンドと同じ働きをすると考えてお
ります。

また、alter system set DB_RECOVERY_FILE_DEST_SIZE=10G;
の状態で(30Gに変更していない状態で)db_recovery_file_destのフォルダ
内部を以下のDOSコマンドで削除してみました。

cd e:\oracle\product\10.1.0\flash_recovery_area
del /S /Q *.*

エクスプローラではフォルダのサイズが0バイトとなりましたが、でも、依然
として以下のメッセージは表示されます。
ORA-19809: リカバリ・ファイルの制限を超えています


jiropochi

投稿数: 5,213
登録日時: 00/04/03


RE[2]:空きがあるのにdb_recovery_file_dest_size制限
投稿時刻: 2006/01/30 22:41   nanbuwks さんへの返信です。 nanbuwks さんへの返信です。
  このスレッドに返信します… 返信

>5) RMANを使用してファイルをリカバリ領域から削除します。
>とありますが、当方ではRMANを使用せず、スクリプトで削除しています。
>スクリプトはcygwinを使用し、以下のようにして削除しています。

OSコマンドで削除しても、削除後に空く領域が認識されない
ようです。
なのでv$recovery_file_destのspace_usedを確認すると10Gになって
いませんか?
とりあえずOSコマンドではなくRMANの削除コマンドを使用してください。


@ ・ x ・ @3

投稿数: 1,230
登録日時: 02/10/03


RE[2]:空きがあるのにdb_recovery_file_dest_size制限
投稿時刻: 2006/01/30 23:07   nanbuwks さんへの返信です。 nanbuwks さんへの返信です。
  このスレッドに返信します… 返信


>5) RMANを使用してファイルをリカバリ領域から削除します。
>とありますが、当方ではRMANを使用せず、スクリプトで削除しています。
>スクリプトはcygwinを使用し、以下のようにして削除しています。
>cd $1
>find . -type f -mtime +$2 | xargs rm
>find . -type d -empty | xargs rmdir -p
>
>$1にdb_recovery_file_destのディレクトリを、$2に経過日数として1を指定
>し、3時間ごとのホットバックアップ後実行するようにしています。
>
>cygwinを使って消しておりますが、OSコマンドと同じ働きをすると考えてお
>ります。


まずrmanを起動して「list archivelog all;」を実行してみてください。
カタログ上にOSコマンドで削除してしまったアーカイブログが残ってませんか?

nanbuwks

投稿数: 8
登録日時: 06/01/16


RE[3]:空きがあるのにdb_recovery_file_dest_size制限
投稿時刻: 2006/01/31 1:00   jiropochi さんへの返信です。 jiropochi さんへの返信です。
  このスレッドに返信します… 返信

アドバイスありがとうございます。
現在、現場を離れてしまいましたので後日再現し、試してみます。

さて、自分はRMANでなければ削除できないと理解していなかったのですが、
これは仕様でしょうか。それとも何らかの問題でしょうか。

・Oracle Database プラットフォーム・ガイド 10g リリース1(10.1) for
Microsoft Windows
・Oracle Database 管理者ガイド
・Oracle Database 概要

上記のマニュアルをオンラインであたってみましたが、
DB_RECOVERY_FILE_DEST_SIZEに関連した言及をみつけられませんでした。

# 『Oracle Database バックアップおよびリカバリ・アドバンスト・ユーザー
ズ ・ガ イ ド 』
# 『Oracle Database バックアップおよび
リ カバ リ 基 礎 』
# ってオンラインにあるのでしょうか?


nanbuwks

投稿数: 8
登録日時: 06/01/16


RE[3]:空きがあるのにdb_recovery_file_dest_size制限
投稿時刻: 2006/01/31 1:27   @ ・ x ・ @3 さんへの返信です。 @ ・ x ・ @3 さんへの返信です。
  このスレッドに返信します… 返信

>まずrmanを起動して「list archivelog all;」を実行してみてください。
>カタログ上にOSコマンドで削除してしまったアーカイブログが残ってませんか?

アドバイスありがとうございます。現在現場から離れてしまいましたので、
後日環境を再現して試してみます。
ところで、Oracle10ってRMANを使わないとここらへんの管理できなくなって
しまったんですかね? 上記のコマンドを含め、RMANについては恥ずかしなが
ら勉強していませんでしたのでマニュアルをあたってみようと思います。

RMANのマニュアルについてはオンラインで見つかりませんでしたので、
公開されているところを御存じでしたらお教え願えませんでしょうか。
宣しくお願いします。



sunhouse

投稿数: 803
登録日時: 02/04/08


RE[4]:空きがあるのにdb_recovery_file_dest_size制限
投稿時刻: 2006/01/31 1:38   nanbuwks さんへの返信です。 nanbuwks さんへの返信です。
  このスレッドに返信します… 返信

>RMANのマニュアルについてはオンラインで見つかりませんでしたので、
>公開されているところを御存じでしたらお教え願えませんでしょうか。

Oracle10g以降、マニュアルの存在位置がわかりにくくなっています。^^

http://otn.oracle.co.jp/document/products/oracle10g/101/doc_cd/nav/po
rtal_3.htm
の20行ほどのところ。
Oracle Database Recovery Manager クイック・スタート・ガイド
Oracle Database Recovery Manager リファレンス



jiropochi

投稿数: 5,213
登録日時: 00/04/03


RE[4]:空きがあるのにdb_recovery_file_dest_size制限
投稿時刻: 2006/01/31 10:15   nanbuwks さんへの返信です。 nanbuwks さんへの返信です。
  このスレッドに返信します… 返信

>さて、自分はRMANでなければ削除できないと理解していなかったのですが、
>これは仕様でしょうか。それとも何らかの問題でしょうか。

「Oracle Database バックアップおよびリカバリの基礎,10gリリース(10.1)」
マニュアルの6-22P「フラッシュ・リカバリ領域が一杯になった場合の解決
方法」に以下の記述があります。

--
Recovery Manager の削除コマンドを使用して、フラッシュ・リカバリ領域から不要な
ファイルを削除します。(ホスト・オペレーティング・システムのコマンドを使用して
ファイルを削除しても、データベースでは、削除した結果できる空き領域が認識されな
いことに注意してください。
--

とあります。


@ ・ x ・ @3

投稿数: 1,230
登録日時: 02/10/03


RE[4]:空きがあるのにdb_recovery_file_dest_size制限
投稿時刻: 2006/01/31 10:18   nanbuwks さんへの返信です。 nanbuwks さんへの返信です。
  このスレッドに返信します… 返信

>>まずrmanを起動して「list archivelog all;」を実行してみてください。
>>カタログ上にOSコマンドで削除してしまったアーカイブログが残ってませんか?
>
>アドバイスありがとうございます。現在現場から離れてしまいましたので、
>後日環境を再現して試してみます。
>ところで、Oracle10ってRMANを使わないとここらへんの管理できなくなって
>しまったんですかね? 上記のコマンドを含め、RMANについては恥ずかしなが
>ら勉強していませんでしたのでマニュアルをあたってみようと思います。
>
>RMANのマニュアルについてはオンラインで見つかりませんでしたので、
>公開されているところを御存じでしたらお教え願えませんでしょうか。
>宣しくお願いします。

OSコマンドでカタログ上にエントリがあるにもかかわらずファイルを削除して
しまっているのであれば、「crosscheck」や「delete expired」も必要ですね。

マニュアルは
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_v8/nav/portal_3.htm
にありますのでご確認ください。

nanbuwks

投稿数: 8
登録日時: 06/01/16


RE[5]:空きがあるのにdb_recovery_file_dest_size制限
投稿時刻: 2006/01/31 11:18   jiropochi さんへの返信です。 jiropochi さんへの返信です。
  このスレッドに返信します… 返信

ありがとうございます。
「Oracle Database バックアップおよびリカバリの基礎,10gリリース(10.1)」
の場所は、11555のアーティクルで教えていただいた場所と同じ所にありました。

このうちの、6-22の御指摘の記述を確認しました。ところで、同マニュアルの
1-3に、以下のようにあるのですが、

「物理バックアップに基づくバックアップおよびリカバリを実行するために、
次の 2 つのソリューションが提供されています。
・Recovery Manager は、…
・従来のユーザー管理のバックアップとリカバリは、…
オラクル社は、いずれの方法も完全にサポートしており、…」

ユーザ管理のバックアップを完全にサポートしてるってことはRMANレスでイケル
んだ! と思いこんでしまったのは、やっぱり早合点だったのでしょうかね。

まだ、あまり読んでいないので、読んでから状況を再現して報告させていただ
きます。


jiropochi

投稿数: 5,213
登録日時: 00/04/03


RE[6]:空きがあるのにdb_recovery_file_dest_size制限
投稿時刻: 2006/01/31 11:22   nanbuwks さんへの返信です。 nanbuwks さんへの返信です。
  このスレッドに返信します… 返信

>ユーザ管理のバックアップを完全にサポートしてるってことはRMANレスでイケル
>んだ! と思いこんでしまったのは、やっぱり早合点だったのでしょうかね。

db_recovery_file_destを使用せずに、log_archive_destを使用すれば
RMANは全く必要がなくなりますよ。

# db_recovery_file_destとlog_archive_destは同時に指定できません。
# EEならlog_archive_dest_nと一緒に指定することは可能です。


nanbuwks

投稿数: 8
登録日時: 06/01/16


RE[5]:空きがあるのにdb_recovery_file_dest_size制限
投稿時刻: 2006/01/31 11:23   sunhouse さんへの返信です。 sunhouse さんへの返信です。
  このスレッドに返信します… 返信

ありました! うっかり「books」の項目は販売書籍だと思い込んでしまってい
ました。
ここに、RMANのマニュアル以外にも、探していたバックアップリカバリガイド
などもありました。一通り読んでから、状況の再現と実験をしてみようと思い
ます。ありがとうございました。








ウェブサイトのご使用条件 | 個人情報保護基本方針/情報保護基本方針