- ベストアンサー
アーカイブログのサイズについて
環境:Oracle9i 9.2.0.1.0 言語:VB6 OLTPの処理を行っている販売管理システムです。 夜間にバッチ処理を行っています。 最近アーカイブログモードに変更しましたが、夜間の一部のバッチによる影響でアーカイブログのサイズがかなり大きくなっています。 そのバッチ自体は一時的に作成されるテーブルがあり、そのテーブルが大きく影響しているものと思われます。 そこでご質問なのですがREDOログの書込みを上記テーブルは対象外にするように変更できないものでしょうか? また、アーカイブログのサイズがかなり大きくなる問題についてなにか解決策などがありましたらアドバイスお願い致します。 ちなみに今の現行システムでは1週間で30GB程度まで大きくなっています。 手動でアーカイブログファイルを別のディスクに移動しています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>NOLOGGINGモードにしても問題ないと思いますがなにか気になる点がありましたらご教授お願いできますでしょうか? 例えば、一時テーブルと使っている期間(時間帯)に、障害を起こすと、障害回復させるポイントを 何処にするか制約されます。 一時テーブルを使い終わった後で障害を起こした場合、復旧手順がややこしくなります。 当然ですが、一時テーブルを格納する表領域も配慮する必要があります。 運用上差し支えなければ、NOLOGで良いかと思いますが。
その他の回答 (3)
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
>NOLOGGINGモードは表領域、テーブル、Insert文などいろいろなところで設定可能になっていますが、 表領域やテーブルはともかく、INSERT文にLOGGINGのオプションはありましたっけ?? INDEXの間違い? 追加の質問に書かれている(例えば・・の)3点は、マニュアルに説明が書かれているので、まずはお読みください。 その上で、ご不明な点をご質問いただければ、判る範囲で説明します。 (閲覧可能な書物に記載されている内容を説明する意義を感じません)
リカバリがややこしいですね。 障害時には、その一部以外の処理についてもリカバリの手順を検討する必要があると思います。(私は検討したことが無いので良く知りません) 障害時には、バッチは最初からやり直す位の割りきりが必要だと思います。 (更新処理が多いとNOLOGにするだけで、処理がかなり早くなる場合が有るのも魅力なんですけどね)
SQL文で該当のテーブルをNOLOGGINGモードにすれば大丈夫なはずです。 ただし、REDOログをきちんと理解していないとこの設定は危険です
補足
回答ありがとうございます。 危険と言われると手をだしたくなくなるのですが、REDOログは変更履歴を格納しておりあとから復旧するための元ネタぐらいにしか認識していません。 今回掲示しているテーブルは仮にデータが完全に失われたとしても全く問題ありません。今回のテーブルは既存のデータを集約した値を格納しているだけですので。 ですので仮にOracleシステムがダウンして復旧する際に今回のテーブルは対象外になります。 上記からNOLOGGINGモードにしても問題ないと思いますがなにか気になる点がありましたらご教授お願いできますでしょうか?
補足
回答ありがとうございます。 NOLOGGINGモードについて再確認させてください。 NOLOGGINGモードは表領域、テーブル、Insert文などいろいろなところで設定可能になっていますが、 例えば (1)表領域はNOLOGGINGモードにしていた場合はその表領域で使用しているテーブル、インデックスについては全てNOLOGGINGになるのでしょうか?? (2)表領域はLOGGINGモードでテーブル作成時にNOLOGGINGモードを設定した場合はそのテーブルだけはNOLOGGINGになるのでしょうか? (3)表領域はLOGGINGモード、テーブル作成時も何も設定しなかった場合、Insert文でNOLOGGINGモードにするとそのInsert文は対象テーブル、対象表領域をNOLOGGINGモードに設定しなくてもNOLOGGINGになっているのでしょうか?? ご教授お願い致します。