現象
spreport.sql で statsupack レポートを出力しようとすると、ORA-20200 エラーが発生する。
$ sqlplus perfstat/perfstat SQL> @?/rdbms/admin/spreport.sql Current Instance ~~~~~~~~~~~~~~~~ DB Id DB Name Inst Num Instance ----------- ------------ -------- ------------ 273180916 ORCL 1 orcl Instances in this Statspack schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Using 273180916 for database Id Using 1 for instance number declare * ERROR at line 1: ORA-20200: Database/Instance 273180916/1 does not exist in STATS$DATABASE_INSTANCE ORA-06512: at line 23
「Database/Instance 273180916/1 does not exist」って怒られたので、DBID と INSTANCE_NUMBER を確認してみる。
SQL> select dbid from v$database; DBID ---------- 273180916 SQL> select instance_number from v$instance; INSTANCE_NUMBER --------------- 1
問題なさそう。
原因
スナップショットが全くないからエラーになっていたと思われる。スナップショットを2つ取得すると、statspack レポートを出力できるようになった。
解決策
statspck のスナップショットを2つ取得する。
$ sqlplus prefstat/perfstat SQL> exec statspack.snap(7); SQL> exec statspack.snap(7);
statspack レポートを出力してみる。
SQL> @?/rdbms/admin/spreport.sql
無事成功。