トラブルシューティングORA-30036 - UNDO表領域を拡張できません(ドキュメントID 460481.1)
に適用されます:
Oracleデータベース-エンタープライズ・エディション-バージョン9.2.0.1 11.2.0.2へ[リリース9.2 11.2へ]
Oracleデータベース-エンタープライズ・エディション-バージョン11.2.0.3 11.2.0.3へ[リリース11.2]
Oracleデータベーススキーマのクラウドサービス-バージョンN / A以降
OracleデータベースのExadataクラウドマシン-バージョンN / A以降
のOracleクラウドインフラストラクチャ-データベースサービス-バージョンN / A以降
このドキュメントの情報は、任意のプラットフォームに適用されます。
目的
このドキュメントの目的は、ORA-30036エラーのトラブルシューティングのためのチェックリストを持っていることで、セグメントを拡張できませんIEで%s内のUNDO表領域「%s」は自動UNDO管理(AUM)を使用した場合。このノートでは、Oracleサポートでサービスリクエストを上げながら必要な診断情報とともに、このテーマにいくつかの既知の問題について説明します。
この文書の目的は、いつ自動UNDO管理(AUM)「%s」はUNDO表領域での使用は、%sのセグメントを拡張しないこと、ORA-30036エラーを解決するためのチェックリストを提供することです。このノートはまた、このトピックに関連する既知の問題のいくつかを説明し、だけでなく、Oracleサポートを介してサービス要求を行うときに診断情報が必要
トラブルシューティング手順
ORA-30036が報告されますとき 。 それが報告されます場合はORA-30036
現在のUNDO表領域は、アクティブなトランザクションのために利用可能な空き容量がない場合、ORA-30036エラーが報告されています。
ときにアクティブなトランザクションのために利用できる現在のUNDO表領域がない以上の空き領域、レポートORA-30036エラー
トランザクションがデータベースにヒットしたとき、彼らは元に戻すのスペースを必要としています。UNDO領域の割り当ては、次の順序で発生します。
トランザクションは、データベースを打つとき、彼らはスペースを元に戻す必要があります。次の順序で割り当てられたアンドゥ空間が
アンドゥセグメントにエクステントを割り当てる1.
1.割り当てUNDOセグメントの拡張領域は、アクティブなトランザクションではありません。オラクルの試みは、UNDOセグメント上のすべてのトランザクションを割り当てます。
2.元に戻すセグメントは、オンライン、オフラインUNDOセグメントおよびそれを使用するには、oracle試みを発見した場合。
任意のUNDOセグメントが見つかった場合は2、OracleはオフラインUNDOセグメントを接続して使用しようとしています
3.オンラインにノーUNDOセグメントなら、私たちは、新しいUNDOセグメントを作成し、それを使用しています。
3.あなたがオンラインアンドゥセグメントをしないと、私たちは新しいUNDOセグメントを作成し、それを使用します
4.スペースがアンドゥセグメントの作成を許可しない場合、我々は、既存のUNDOセグメントから期限切れの範囲を再利用してみてください。
4.あなたがスペースを元に戻すセグメントを作成することができない場合、我々はアンドゥセグメント範囲が満了している既存の再利用しようとし
たUNDOセグメントに関連付けられた実行中のトランザクションのために 、それは、より多くのアンドゥのスペースを必要とする場合、/範囲:
それはより多くのアンドゥスペースを必要とする場合、UNDOセグメント/拡張領域に関連付けられたトランザクションを実行するため、
現在の程度はより多くの空きブロックを持っている場合1.すべてのエクステントに割り当てられる準備ができている次の空きブロックを使用します。
1以上のフリーブロックと現在のエクステンション領域は、次の準備が空きブロックに割り当てられた拡張領域を使用する場合
2.セグメントの次のエクステントは、次のエクステントでラップし、最初のブロックを返し、その後期限切れになった場合、現在のエクステントは空きブロックを持っていない場合。
2.が現在エクステンション領域の空きブロックではなく、次の拡張セグメント領域が満了した場合、次包装ゾーンおよび第1の拡張ブロックへ戻ります。
3.次のエクステントの有効期限が切れていない場合は、UNDO表領域からスペースを取得します。フリーエクステントが利用可能である場合、UNDOセグメントにそれを割り当て、新しいエクステントの先頭ブロックを返します。
3.次の拡張領域がまだ満了していない場合は、スペースのUNDO表領域から入手してください。拡張領域が利用可能である場合は、UNDOセグメントに割り当てられ、そして新しい拡張領域の第1ブロックを返します。
4.オフラインUNDOセグメントから盗む、利用可能な空きエクステントが存在しない場合。オフラインUNDOセグメントからエクステントの割当てを解除し、現在のUNDOセグメントに追加します。エクステントの最初のフリーブロックを返します。
4.利用可能な程度、盗難UNDOセグメントからオフラインがない場合。割り当てられていないオフラインのUNDOセグメントの範囲、及び現在のセグメントを元に戻すことを追加。最初のフリーブロックの範囲を返します。
5.オンラインUNDOセグメントから盗みます。オンラインUNDOセグメントからのエクステントの割当てを解除し、現在のUNDOセグメントに追加します。エクステントの最初のフリーブロックを返します。
元に戻すには、オンライン部分から盗まれました。割り当てられていないオンラインUNDOセグメントの範囲、および現在のUNDOセグメントに追加します。最初のフリーブロックの範囲を返します。
UNDO表領域にファイルを拡張6。ファイルは、現在のUNDOセグメントにエクステントを追加拡張することができる場合は、ブロックを返します。
6.拡張ファイルは、表スペースを元に戻します。ファイル拡張子場合、範囲は、現在のセグメントを元に戻すために添加し、次いでブロックを返すであろう。
7.それ以外の場合は独自のUNDOセグメントから期限の切れていないエクステントを再利用してみてください。すべてのエクステントは現在、ステップ8に進みます(彼らはコミットされていない情報が含まれています)忙しくしている場合はそうでない場合は、次のエクステントに包みます。
7.それ以外の場合は、独自の期限が切れていないUNDOセグメントにおける拡張領域を再利用してみてください。現在のパネルがビジー状態(彼らが提出されていない情報が含まれています)にすべてある場合は、ステップ8に進みます。そうでない場合は、次のパネルへのパッケージ。
8.ランダムオフラインUNDOセグメントから有効期限内のエクステントを盗みます。これが失敗した場合は、再利用のためのオンラインUNDOセグメントにしてみてください。
ランダムから8 UNDOセグメントは、オフラインエクステントが満了していない盗みます。それが失敗した場合は、再利用のためのオンラインセグメントを元に戻すことを試みます
9.上記のすべては、その後%s内のUNDO表領域「%S」によってセグメントを拡張するORA-30036できない返す失敗した場合
上記の方法のすべてが失敗した場合は9、その後、ORA-30036によりセグメントを拡張できません%s内のUNDO表領域「%s」を返します
このエラーは、我々は常にそうではないかもしれないUNDO表領域に領域を追加する必要があると述べています。
このエラーは、我々がUNDO表領域に領域を追加する必要があることを示しているが、これは必ずしもそうではありません。
アンドゥが小さすぎるサイズに、トランザクションがさえ、他のUNDOセグメントから盗んでアンドゥブロックを取得することができませんされた場合盗むために障害が発生しました。
サイズが小さすぎるとトランザクションアンドゥブロックが得られず、他のUNDOセグメントから盗まれた場合でも元に戻す場合は、障害が発生し盗みます
トラブルシューティングORA-30036エラーが ORA-30036エラーを除外しました
I)を確認し 、UNDO表領域の空き領域は。確認したUNDO表領域使用可能なスペースを
TABLESPACE_NAMEは'<UNDO表領域>' = DBA_FREE_SPACEから和(バイト)を選択します。 TABLESPACE_NAMEは'<UNDO表領域>' = DBA_DATA_FILESから選択合計(バイト)。
II)かどうかを確認UNDO表領域のデータファイルは自動拡張可能です。チェック UNDO表領域のデータファイルが自動的に拡張されます
TABLESPACE_NAMEは '<UNDO表領域> = DBA_DATA_FILESから自動拡張を選択し、
III) 有効期限内のエクステントが現在同じトランザクションでセグメントとして利用可能であるかどうかをチェックする。 それを現在のトランザクションをチェックエクステント期限が切れていないの範囲があるかどうか
SQL> DISTINCTステータスを選択し、SUM(BYTES)、COUNT(*)DBA_UNDO_EXTENTS GROUP BYのSTATUS FROM;
元に戻すスペースが残っていない場合は、次に我々は、期限が切れていないエクステント(名誉UNDO_RETENTIONに必要な元に戻す程度)を使用してみてください。これは、時々、ORA-1555エラーになります。あなたはまた、期限が切れていないエクステントを持っていない場合さて、あなたはUNDO表領域に領域を追加する必要があります。
あなたは残りのスペースを元に戻すことはできません場合は、我々は、拡張領域を使用してみてください(アンドゥ現金UNDO_RETENTIONを拡大する必要性)の有効期限が切れていません。時には、これはORA-1555エラーにつながることができます。期限が切れていないいないエクステントをすれば今、あなたは、UNDO表領域に領域を追加する必要があります
IV)チェックザ・アンドゥエクステントの状態。状態アンドゥエクステントをチェック
SQL> DISTINCTステータスを選択し、SUM(BYTES)、COUNT(*)、DBA_UNDO_EXTENTS GROUP BYのSTATUS FROM TABLESPACE_NAME、TABLESPACE_NAME;
アクションは出力に基づいて異なります。 操作は出力に応じて、
ケース1:いいえ期限切れのエクステントが利用可能と 。ほとんどがアクティブエクステントの存在ケース1:使用不可エクステント、およびアクティブメインパネルがあります
再使用することができます何の期限切れのエクステントが存在しない場合は、その可能ORA-30036が発生します。私たちは、主にアクティブエクステントが表示された場合、これは最も可能性の高い元に戻すサイズの問題です。UNDO表領域が適切なサイズであれば、この場合には、確認してください。
あなたが再利用可能の範囲を拡大していない場合は、ORA-30036が発生することがあります。私たちが活動の主要な範囲が表示された場合、それはおそらくその「アンドゥリサイズ」の問題です。この場合、チェック「アンドゥテーブルスペース」のサイズは正しいです。
次のクエリは、(現在のワークロードに基づいて)必要なバイト数を計算します。
(現在のワークロードに基づいて)計算するために必要なバイトの次のクエリ数
SQL> SELECT(UR *(UPS * DBS))+(DBSは24 *) "バイト" AS FROM(SELECT値AS UR五$パラメータからWHERE名= 'UNDO_RETENTION')、 (SELECT(SUM(undoblks)/ SUM( ((END_TIME - BEGIN_TIME)* 86400)のV $ FROM))AS UPS UNDOSTAT)、 (TABLESPACE_NAME = DBA_TABLESPACESからDBSとして選択BLOCK_SIZE (選択値名= 'UNDO_TABLESPACE'))は、V $パラメータから。
*(UR)UNDO_RETENTION秒
毎秒生成アンドゥデータブロックの*(UPS)数
*(DBS)オーバーヘッドのエクステントとファイルサイズ(DB_BLOCK_SIZE)に基づいて変化し
、この上の詳細な説明のためのノート下記を参照してください
どのようにするにはサイズのUNDO表領域の自動UNDO管理(ドキュメントID 262066.1)
Oracle Database 10gでは、あなたは元に戻すサイズ勧告を取得するために、UNDOアドバイザ機能を使用することができます
参照してください: 現在の[元に戻す]の設定を確認し、推奨設定をアドバイス(ドキュメントID 1579035.1)
ケース2:いいえが使用可能エクステントと期限切れ 現在、主に期限が切れていないエクステントを。 事例2:使用できませんエクステントを、パネルのほとんどは有効期限が切れありません
再使用することができます何の期限切れのエクステントが存在しない場合は、その可能ORA-30036が発生します。私たちは、主に期限が切れていないエクステントが表示された場合、それは元に戻す間隔問題や不当に高いUNDO保存によって引き起こさのいずれかになります。言い換えれば、この手段UNDO領域は、指定されたUNDO_RETENTIONまたはTuned_undoretention値のために十分ではありません。
あなたが再利用可能の範囲を拡大していない場合は、ORA-30036が発生することがあります。我々は残存元本の範囲が表示された場合、それはピッチの問題を取り消すことができる、それが過度によって引き起こさリテンションの撤退に起因する可能性があります。言い換えれば、この手段UNDO_RETENTIONまたはTuned_undoretentionの与えられた値のため、元に戻すには、スペースを欠いていること。
tuned_undo保持UNDO保存を確認し、 检查UNDO保存和tuned_undo保留
元に戻すパラメータ表示 のV $ UNDOSTATからMAX(tuned_undoretention)を選択します。
tuned_undoretentionが高すぎる場合の回避策は、(下記のいずれか)になります。
tuned_undoretention高すぎる場合は、解決策は、(次のいずれかの方法)になります
A。UNDO表領域のデータファイルのautoextensibilityをオンにして、UNDO表領域のすべてのデータファイルの実際のサイズにMAXSIZEを設定します。
。オープン自動拡張UNDO表領域のデータファイル、およびデータは、表領域の実際の大きさのすべてを元に戻すにはMAXSIZEをファイル
この変更tuned_undoretentionを計算し、従ってtuned_undoretention値を設定するために使用されるアルゴリズムは、実際の要件に比べて高すぎる習慣。
したがって、これはtuned_undoretentionの設定値が高すぎると実際の需要に比べていないtuned_undoretentionを計算するためのアルゴリズムを変更します
B。セット_smu_debug_mode = 33554432
この再度の変更tuned_undoretentionを計算し、従ってtuned_undoretention値セットは、実際の要件に比べて高すぎることが習慣に使用されるアルゴリズム。
実際の需要に比べて設定値が高すぎないtuned_undoretentionので、これは再び、計算tuned_undoretentionに使用するアルゴリズムを変更します
C。同調アンドゥ保持値を制限値に_first_spare_parameter(10.2)又は_highthreshold_undoretention(11.xの)インスタンス・パラメータを設定します。
C。セット_first_spare_parameter(10.2)又は_highthreshold_undoretention(11.xの)限定的な例としてパラメータが取り消さ予約値の調整値に設定されています
この値はtuned_undoretentionの上限として作用します
この値はtuned_undoretentionの上限として使用され
D。_undo_autotune = falseを設定することにより元に戻すのを無効にする自動チューニング
D。無効に自動調整元に戻すに_undo_autotune =偽を提供することにより
UNDO保存一般的な問題(の自動チューニング参照してくださいドキュメントID 1579779.1を詳細)。
ケース3:期限切れエクステントのロットがある 利用可能。 ケース3:多くの利用可能なエクステントがあります。
期限切れのエクステントが存在し、まだORA-30036が発生したしている場合、それはEXPIREDエクステントが再利用されていないことを意味します。これらの期限切れのエクステントが再利用されている必要があり、その代わりに、我々は、ORA-30036エラーを取得しています。
期限切れの程度はまだORA-30036が発生している場合、それは再利用できない期限切れの範囲を意味します。これらの時代遅れのスコープが再利用されている必要があり、逆に、我々は、ORA-30036エラーを受け取りました
これは、10.2.0.4(および11g)に固定されている未公開バグ5442919のものであってもよいです。
バグ5442919 -再利用されていない期限切れエクステント(ORA-30036)(ドキュメントID 5442919.8)
これは、他のバージョンで起こっている場合には、さらなる調査のために、Oracleサポートに同じことを報告してください
既知の問題点
1 の場合は 10グラム以上、あなたが使用している場合、 保証UNDO保存し、 その後、期限が切れていないエクステントが再利用されることはありません、あなたがUNDO表領域に領域を追加する必要があります。
1. で 10グラム以上、あなたが使用している場合場合は、 保証UNDO保存し、その後、期限が切れていないエクステントが再利用されないだろう、とあなたは、UNDO表領域に領域を追加する必要があります
2.あなたは、UNDO表領域がであるかもしれないことを、10gリリース2に表示される場合があります100% 。
10gR2の2.、あなたは元に戻すの表スペースがであってもよく見ることができる100% 。
これは正常な動作です。あなたは問題を議論ノート下記を参照することができます
これは正常な動作です。あなたは問題を論じ、次の資料を参照してくださいすることができます
全UNDO表領域に10gリリース2(ドキュメントID 413732.1)
エクスポートまたはインポート中に報告された問題について3
エクスポートまたはインポートプロセスの問題のレポート3.
トラブルシューティングORA-01555 / ORA-01628 / ORA-30036エクスポートおよびインポート時(ドキュメントID 1579437.1)
フラッシュバック・データ・アーカイブを有効にした後報告されたエラーのために4。
4.エラー報告はのフラッシュバック・データ・アーカイブのために有効になっています
FBDA ORA-1950 ORA-942 ORA-30036(有効化した後、エラードキュメントID 1330817.1を)
OracleサポートにSRを上げながら、診断情報を収集します
A。アラート・ログ・ファイルをアップロード
B。以下の出力を提供します
TABLESPACE_NAMEは'<UNDO表領域>' = DBA_FREE_SPACEから和(バイト)を選択します。 TABLESPACE_NAMEは'<UNDO表領域>' = DBA_DATA_FILESから選択合計(バイト)。 和を選択し(ブロック)期限が切れていない' '= UNDOTBS1'andステータス' TABLESPACE_NAMEは= dba_undo_extentsから"期限切れBLOCKS"。 TABLESPACE_NAME = 'UNDOTBS1'andステータスは=' 'EXPIRED dba_undo_extentsから和(ブロック) "期限切れブロック"を選択します。 和を選択テーブル空間は= dba_undo_extentsから(ブロック)「アクティブなブロック」「UNDOTBS1'andステータス=」 'ACTIVE。 SELECT COUNT(*)DBA_ROLLBACK_SEGSどこステータス= 'OFFLINE'から。 元に戻すパラメータ表示 のV $ UNDOSTATからMAX(tuned_undoretention)を選択します。
C。セット_smu_debug_mode = 16384とORA-30036が発生した場合に生成されたトレースファイルを提供しています。
システムレベルのパラメータ_smu_debug_mode = 16384は、エラーORA-30036が報告されている診断情報を生成します。
REFERENCES
注:413732.1 -フルUNDO表領域に10gリリース2以上
注:461480.1 - FAQ -自動UNDO管理(AUM)/システム元に戻す(SMU)マネージド