ORA-00314:スレッド1のログ102、予期されるシーケンス番号642317が642315と一致しません
Ora 00314 Log 102 Thread 1
この種のエラーを初めて見たときは、それを記録してください。インターネットで検索した情報によると、このエラーによりデータベースがハングする可能性があります。幸いなことに、遭遇してもハングしませんでした。
アラートログによると、問題のプロセスを引き出すことができます。
エラーの原因と解決策に関して、mosは、発生した状況に一致する関連ドキュメントを見つけました。ORA-00314:ログ404のスレッド4、予期されるシーケンス番号33808が一致しません33543(ドキュメントID 1077564.1)
症状
Following errors are received when attempting to startup standby or while logs are being applied ORA-00314: log 404 of thread 4, expected sequence# 33808 doesn't match 33543 ORA-00312: online log 404 thread 4: '+/onlinelog/group_404.468.703522549' ORA-00314: log 404 of thread 4, expected sequence# 33808 doesn't match 33543 ORA-00312: online log 404 thread 4: '+/onlinelog/group_404.450.703522549'
- スタンバイREDOのエントリが破損しています。
- REDOエントリの転送/受信中にインスタンスがクラッシュする
- ora-314のエラーメッセージは、破損したスタンバイREDOを示しています
例:ORA-00314:スレッド4のログ404、予期されるシーケンス番号33808が33543と一致しません
==> REDOロググループ(#404)は破損しているグループです。
問題(インスタンスのクラッシュ、ネットワークの問題)が発生したとき、シーケンス33808を受信していて、途中で破損していました。したがって、ヘッダーにはシーケンス33808に関する情報がありますが、転送されている現在のアーカイブシーケンス番号は33543です。
別のスタンバイREDOがv $ standby_logのシーケンス#33543を受信していて、そのうちの2つがアクティブステータスであることがわかります。
GROUP# DBID THREAD# SEQUENCE# ---------- ---------------------------------------- ---------- ---------- BYTES USED ARC STATUS FIRST_CHANGE# FIRST_TIME ---------- ---------- --- ---------- ------------- ------------------- LAST_CHANGE# LAST_TIME ------------ ------------------- 401 1863397730 4 34381 104857600 93738496 YES ACTIVE 5.9903E+12 Jan 28 2010 05:22PM 5.9903E+12 Jan 28 2010 06:52PM 404 1863397730 4 33808 104857600 0 YES ACTIVE 5.9902E+12 Jan 24 2010 02:04AM 5.9903E+12 Jan 28 2010 06:52PM
解決
ora-314エラーでスタンバイREDOをクリアします。
-- Stop recovery on standby side. SQL> Alter database recover managed standby database cancel --clear standby redo group 404. SQL> alter database clear logfile group 404 -- You may have to use the 'unarchived'-Keyword to be able to clear the Standby RedoLog Group in most Cases, eg. SQL> alter database clear unarchived logfile group 404
mosファイルとアラートログを組み合わせて、問題のプロセスを整理しましょう。
- 17:33:04 RFS [426]はシーケンス642315のログ102を選択しました
- 17:33:04メディアリカバリシーケンス642315(転送中)を待機し、642315のオンラインログを読み取ってリカバリします。
- 17:33:04MRP適用シーケンス642314
- 17:33:58 RFS [426]はシーケンス642316のログ101を選択しました
- 17:33:58メディアリカバリシーケンス642316(転送中)を待機し、リカバリのために642316のオンラインログを読み取ります。
- 17:34:00MRP適用シーケンス642315
- 17:34:49 RFS [426]は、シーケンス642317のログ102を選択しました。
- 17:34:49送信された642317が破損しているため、エラーORA-314が発生します。このとき、スタンバイログファイルヘッダーに記録されているシーケンスは642317であり、データベースに適用されている最新のシーケンス(現在のアーカイブシーケンス番号が転送されている)、つまり制御ファイルに記録されているシーケンスは642315です。エラーORA-00338:ログ102が制御ファイルよりも新しい。
- 17:34:50メディアリカバリシーケンス642317(転送中)を待機中-スタンバイログに再投稿される642317のログは次のとおりです。そして幸運を祈って、継続を拾うことができます。したがって、フォローアップはこのシーケンスのスタンバイログを直接読み取り、MRPが再開します。
- 17:34:51MRP適用シーケンス642316
- 17:35:49 MRPはシーケンス642317を適用し、その後通常に戻りました