ORACLE TECHNOLOGY NETWORK
 
 
   

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

スレッド: 統計情報を取得スクリプトがたま〜に失敗

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

Permlink 返信数: 10 - ページ数: 1 - 最新投稿 : 2006/10/10 11:02 最新投稿者: seiten_sora - スレッド表示形式:
tunodasann

投稿数: 3
登録日時: 02/06/13


統計情報を取得スクリプトがたま〜に失敗
投稿時刻: 2006/10/06 14:33
  このスレッドに返信します… 返信

Oracle8i Release8.1.7.2.0
OS:SunOS 5.8

上記の環境で統計情報をcrontabを使用して、
毎週日曜日に取得しています。

3・4週間に1回、統計情報の取得が途中で止まってしまいます。
途中で止まりかつ、Tomcatも道ズレで一緒に停止してしまいます。
正常に終了する時は、2分くらいで終了します。

統計情報を取得するために使っているコマンドは下記です。
exec dbms_stats.gather_table_stats(ownname=> 'XXX', tabname=> 'AAAA
', partname=> NULL);



アプリケーションの内容は、Apache・Tomcatを使用したJAVAです。
業務の勤怠管理、日報を書き込むシステムなので日曜日は
誰も使用していません。
Oracleの設定やサーバの設定を変更することも出来ます。

統計情報を取得するコマンドが怪しい気もします。


宜しくお願い致します。


かよ

投稿数: 230
登録日時: 02/08/06


RE:統計情報を取得スクリプトがたま〜に失敗
投稿時刻: 2006/10/06 15:26   tunodasann さんへの返信です。 tunodasann さんへの返信です。
  このスレッドに返信します… 返信

こんにちは。

>3・4週間に1回、統計情報の取得が途中で止まってしまいます。
なにかエラーが出ていませんか?
(ORA-1555とか、怪しいですね。)

でで

投稿数: 9,980
登録日時: 00/10/25


RE:統計情報を取得スクリプトがたま〜に失敗
投稿時刻: 2006/10/06 15:34   tunodasann さんへの返信です。 tunodasann さんへの返信です。
  このスレッドに返信します… 返信

>3・4週間に1回、統計情報の取得が途中で止まってしまいます。
>途中で止まりかつ、Tomcatも道ズレで一緒に停止してしまいます。
>正常に終了する時は、2分くらいで終了します。

エラーになるのではなく処理が止まってしまうのでしょうか?
その場合止まったままの処理の復旧はどのようにしてやっていますか?
alertログに何か情報は出ていませんか?
cronログに何か情報は出ていませんか?
Tomcatの方にも何かログは出ていませんか?


menelaus

投稿数: 250
登録日時: 02/12/19


RE:統計情報を取得スクリプトがたま〜に失敗
投稿時刻: 2006/10/06 15:39   tunodasann さんへの返信です。 tunodasann さんへの返信です。
  このスレッドに返信します… 返信

>Oracle8i Release8.1.7.2.0

Oracle8.1.7.4辺りにあげることができると良いかもしれませんが、

>3・4週間に1回、統計情報の取得が途中で止まってしまいます。

アラート・ログやトレース・ファイルにそれらしいエラーは
出力されていませんか?

>exec dbms_stats.gather_table_stats(ownname=> 'XXX', tabname=> 'AAAA
>', partname=> NULL);

http://otn.oracle.co.jp/cgi-bin/non/msgview_r.cgi?COMMUNITYID=otn-901233&BBSID=1&NO=15262&VIEW=9
を参考に統計情報を取得しなおしたらどうなりますか?


tunodasann

投稿数: 3
登録日時: 02/06/13


RE:統計情報を取得スクリプトがたま〜に失敗
投稿時刻: 2006/10/06 16:27   tunodasann さんへの返信です。 tunodasann さんへの返信です。
  このスレッドに返信します… 返信

>>ででさん
Cronログ
開始のログは残っていましたが、終了のログが在りませんでした。
エラーは記録されていません。
別途行っている、EXP処理の開始・終了ログは正常にありました。

ALERTログ
対象の時間前後には特にエラーは確認できませんでした。

Tomcatログにも、対象の時間前後にはエラーは確認できませんでした。

>>かよさん、
ORA-1555エラーはかなり怪しいかもしれません。
TABLEの容量は、300MB中192MBほど使用中。
TEMPの容量は、150MB中90MB使用しています。

>>menelausさん
私が動作させている
>exec dbms_stats.gather_table_stats(ownname=> 'XXX', tabname=> 'AAAA
>', partname=> NULL);
は、Oracle Enterprise Managerで統計情報を取る時に出てくる
コマンドをそのまま実行しているだけです^^;
menelausさんのリンクを参考に試してみます。



あと、cronの起動方法は、
shスクリプトに、Oracleの環境変数を記述して、

sqlplus user/pass @/home/oracle/table_stats.sql
と、書いてtable_stats.sqlの中身は、
exec dbms_stats.gather_table_stats(ownname=>・・・
exec dbms_stats.gather_table_stats(ownname=>・・・
〜テーブルの数だけ繰り返し記述〜
quit;

です。

yamataka

投稿数: 2,528
登録日時: 00/06/02


RE[1]:統計情報を取得スクリプトがたま〜に失敗
投稿時刻: 2006/10/06 17:50   tunodasann さんへの返信です。 tunodasann さんへの返信です。
  このスレッドに返信します… 返信

>sqlplus user/pass @/home/oracle/table_stats.sql
>と、書いてtable_stats.sqlの中身は、
>exec dbms_stats.gather_table_stats(ownname=>・・・
>exec dbms_stats.gather_table_stats(ownname=>・・・
>〜テーブルの数だけ繰り返し記述〜
>quit;

全テーブルならばGATHER_SCHEMA_STATSだと一行で済みます。
ただしデフォルトはインデックス情報を取らないのでCASCADEが必須です。

EXEC DBMS_STATS.GATHER_SCHEMA_STATS(OWNNAME=>'XXX',CASCADE=> TRUE);


U210804522

投稿数: 200
登録日時: 01/05/02


RE:統計情報を取得スクリプトがたま〜に失敗
投稿時刻: 2006/10/06 17:58   tunodasann さんへの返信です。 tunodasann さんへの返信です。
  このスレッドに返信します… 返信


>アプリケーションの内容は、Apache・Tomcatを使用したJAVAです。
>業務の勤怠管理、日報を書き込むシステムなので日曜日は
>誰も使用していません。
>Oracleの設定やサーバの設定を変更することも出来ます。

なんとなく、何かがロックとかを取っていて、待ちになっている
という感じを受けるのですが、そういうことは有り得ないのでしょうか。

また、一表ずつ統計情報を取得するスクリプトなのであれば、
どの表まで統計情報の取得が完了しているかを確認すると
何か傾向が見えるのはないでしょうか?


jiropochi

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


RE[1]:統計情報を取得スクリプトがたま〜に失敗
投稿時刻: 2006/10/06 18:28   tunodasann さんへの返信です。 tunodasann さんへの返信です。
  このスレッドに返信します… 返信

syslogにも何も情報がありませんでしょうか?


yapee

投稿数: 857
登録日時: 02/10/01


RE:統計情報を取得スクリプトがたま〜に失敗
投稿時刻: 2006/10/06 21:14   tunodasann さんへの返信です。 tunodasann さんへの返信です。
  このスレッドに返信します… 返信


Alertログに、ORA-XXXXXのメッセージが出力されていませんか?

tunodasann

投稿数: 3
登録日時: 02/06/13


RE:統計情報を取得スクリプトがたま〜に失敗
投稿時刻: 2006/10/10 10:46   tunodasann さんへの返信です。 tunodasann さんへの返信です。
  このスレッドに返信します… 返信

・Alertログって、BACKGROUND_DUMP_DESTに書かれているパスの?
ORA-XXXXX系は、無しでした。

/data/orcl/redo03.logファイルは、何で書かれているのか
TeraPadで開くことが出来ません、どうやってみるのでしょう?

Thread recovery: start rolling forward thread 1
Recovery of Online Redo Log: Thread 1 Group 3 Seq 3 Reading mem 0
Mem# 0 errs 0: /data/orcl/redo03.log


・新たな情報としては、多くのユーザが一度に大量にログインすると
新たなセッションを取得できませんでしたエラーがTomcatから
返されるエラーが大昔からあったとの情報をゲットしました。
古いPCなので、メモリーも少ないのでその辺も原因なのかなとも思います。


・下記の情報が、載っていたのでチョット試してみたいと思います。

こうすると、指定したオーナー全てを統計情報をしてくれる。
EXEC DBMS_STATS.GATHER_SCHEMA_STATS(OWNNAME=>'MMJS',CASCADE=> TRUE);

こうすると、指定したオーナー全てを統計情報取得 + 20%のサンプルで統計
情報を採取 。
EXEC DBMS_STATS.GATHER_SCHEMA_STATS(OWNNAME=>'MMJS',CASCADE=>
TRUE,ESTIMATE_PERCENT => 20);

seiten_sora

投稿数: 1,369
登録日時: 03/11/18


RE[1]:統計情報を取得スクリプトがたま〜に失敗
投稿時刻: 2006/10/10 11:02   tunodasann さんへの返信です。 tunodasann さんへの返信です。
  このスレッドに返信します… 返信

>・Alertログって、BACKGROUND_DUMP_DESTに書かれているパスの?
>ORA-XXXXX系は、無しでした。
>
>/data/orcl/redo03.logファイルは、何で書かれているのか
>TeraPadで開くことが出来ません、どうやってみるのでしょう?
>
>Thread recovery: start rolling forward thread 1
>Recovery of Online Redo Log: Thread 1 Group 3 Seq 3 Reading mem 0
> Mem# 0 errs 0: /data/orcl/redo03.log
>

redoログはエラーのログじゃないですよ


>
>こうすると、指定したオーナー全てを統計情報をしてくれる。
>EXEC DBMS_STATS.GATHER_SCHEMA_STATS(OWNNAME=>'MMJS',CASCADE=> TRUE);
>
>こうすると、指定したオーナー全てを統計情報取得 + 20%のサンプルで統計
>情報を採取 。
>EXEC DBMS_STATS.GATHER_SCHEMA_STATS(OWNNAME=>'MMJS',CASCADE=>
>TRUE,ESTIMATE_PERCENT => 20);

何も情報が無いと手探りで原因を探すしかないですね

ちなみに cronでなく そのシェルを手動で動かすと正常終了する事が前提ですよ
ね?

もし 途中まで動作しているなら user_tables のlast_analyzed の日付が変わっ
ているはずです

そこを見れば途中で終了なのかどうかの判断はつくと思います。

あとはシェルにはログ出力させたほうが良いですね







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