(最終更新日:01年05月31日)
データベース情報 取得スクリプト
1.データベース情報
----------------------------------------------------------------------------------
-- データベース情報 取得スクリプト
-- あらかじめ、SYSTEM(DBA)でCONNECT してください。
-- spool '出力先ファイル名(フルパス)' で、結果をファイルに出力することができます。
-- spool off で、ファイル出力を止めます。
----------------------------------------------------------------------------------
SET LINESIZE 136
--
-- Oracle に関する情報
--
select * from v$instance;
select * from v$database;
select * from v$version;
select substrb(PARAMETER, 1, 30) "PARAMETER",
substrb(VALUE, 1, 5) "VALUE"
from v$option;
-- SGA に関する情報
-- Fixed Size Fixed
-- Variable Size 共有プール
-- Database Buffers DBバッファ
-- Redo Buffers REDOログバッファ
select * from v$sga;
-- 総SGAサイズ
select sum(value) from v$sga;
-- ライブラリキャッシュのヒット率(90%以上)
select sum(pins) "要求数",
sum(reloads) "再読込数",
round(100*(1-(sum(reloads)/sum(pins))),3) "ヒット率"
from v$librarycache;
-- ディクショナリキャッシュのヒット率(90%以上)
select sum(gets) "要求数",
sum(getmisses) "再読込数",
round(100*(1-(sum(getmisses)/sum(gets))),3) "ヒット率"
from v$rowcache where gets > 0;
-- 共有プールの空き領域の大きさ(30%未満)
select s.name,
s.bytes "空き領域",
p.value/1024 "共有プール(KB)",
round((s.bytes/p.value)*100,3) "空き領域率"
from v$parameter p, v$sgastat s
where s.name = 'free memory' and p.name = 'shared_pool_size';
-- バッファキャッシュのヒット率(90%以上)
select (a.value+b.value) "論理リード",
c.value "物理リード",
round(((1 - (c.value / (a.value+b.value))) * 100),3) "ヒット率"
from v$sysstat a, v$sysstat b, v$sysstat c
where a.name = 'db block gets'
and b.name = 'consistent gets'
and c.name = 'physical reads';
-- ログバッファの空き待機回数
col "ログバッファサイズ" format a20
select a.Value "ログバッファサイズ",
b.Value "空き待機回数"
from v$parameter a, v$sysstat b
where a.Name = 'log_buffer'
and b.Name = 'redo log space requests';
-- ソート領域
-- sorts (rows)はソート行数
-- sorts (disk)は一時セグメントへのI/Oを必要とするソート回数
-- sorts (memory)は完全にメモリ内で実行されたソート回数
select a.value sorts_rows, b.value sorts_disk, c.value sorts_memory,
round(100*b.value / (b.value+c.value), 3) "Disk_Sort_Ratio"
from v$sysstat a, v$sysstat b, v$sysstat c
where a.name = 'sorts (rows)'
and b.name = 'sorts (disk)'
and c.name = 'sorts (memory)';
--初期化パラメータ
select NUM "No.",
substrb(NAME, 1, 60) "パラメータ名",
substrb(VALUE, 1, 30) "値",
decode(ISDEFAULT,'TRUE','○','×') "初期値"
from v$parameter;
2.セッション情報
--
-- セッション情報
--
select SID, STATUS,
substrb(USERNAME,1,8) "USERNAME",
substrb(SCHEMANAME,1,8) "SCHEMANAME",
OSUSER,
substrb(MACHINE,1,8) "MACHINE",
substrb(PROGRAM,1,32) "PROGRAM",
SERIAL#
from v$session
where USERNAME is not null;
3.表領域情報
--
-- 表領域情報
--
-- 表領域
select a.TABLESPACE_NAME "表領域名",
b.BYTES/1024 "サイズ(KB)",
(nvl(c.BYTES,0)+to_number(e.VALUE))/1024 "使用済(KB)",
(nvl(c.BYTES,0)+to_number(e.VALUE))/(b.BYTES)*100 "使用率",
d.BYTES/1024 "未使用(KB)",
a.STATUS "状態"
from DBA_TABLESPACES a,
(select TABLESPACE_NAME,
sum(BYTES) "BYTES"
from dba_data_files
group by TABLESPACE_NAME
) b,
(select TABLESPACE_NAME,
sum(BYTES) "BYTES"
from dba_segments
group by TABLESPACE_NAME
) c,
(select TABLESPACE_NAME,
sum(BYTES) "BYTES"
from dba_free_space
group by TABLESPACE_NAME
) d,
v$parameter e
where a.TABLESPACE_NAME = b.TABLESPACE_NAME(+)
and a.TABLESPACE_NAME = c.TABLESPACE_NAME(+)
and a.TABLESPACE_NAME = d.TABLESPACE_NAME(+)
and e.NAME = 'db_block_size';
-- 表領域の定義情報
select TABLESPACE_NAME, INITIAL_EXTENT, MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE,
MIN_EXTLEN, STATUS
from dba_tablespaces;
-- データファイル
select substrb(a.TABLESPACE_NAME, 1, 16) "TABLESPACE_NAME",
substrb(a.FILE_NAME, 1, 40) "FILE_NAME",
a.FILE_ID,
a.BYTES/1024 "サイズ(KB)",
(b.BYTES+to_number(c.VALUE))/1024 "使用済(KB)",
a.MAXBYTES/1024 "MAX_KB",
a.STATUS, a.AUTOEXTENSIBLE, a.INCREMENT_BY
from dba_data_files a,
(select FILE_ID, sum(BYTES) "BYTES" from dba_extents group by FILE_ID) b,
v$parameter c
where A.FILE_ID = B.FILE_ID
and c.NAME = 'db_block_size'
order by TABLESPACE_NAME, FILE_ID;
-- ロールバックセグメントのサイズ
select substrb(a.SEGMENT_NAME, 1, 16) "SEGMENT_NAME",
substrb(a.OWNER, 1, 16) "OWNER",
substrb(a.TABLESPACE_NAME, 1, 16) "TABLESPACE_NAME",
b.BYTES
from dba_rollback_segs a,
(select OWNER,
SEGMENT_NAME,
TABLESPACE_NAME,
sum(BYTES) "BYTES"
from dba_extents
where SEGMENT_TYPE = 'ROLLBACK'
group by OWNER, SEGMENT_NAME, TABLESPACE_NAME) b
where (a.OWNER = b.OWNER and a.SEGMENT_NAME = b.SEGMENT_NAME and a.TABLESPACE_NAME = b.TABLESPACE_NAME)
;
4.ユーザー情報
--
-- ユーザー情報
--
-- ユーザー
select USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE, PROFILE, CREATED
from dba_users;
-- プロファイル
select * from dba_profiles;
-- ロール
select * from dba_roles;
select * from dba_role_privs;
-- クォーター
select * from dba_ts_quotas ;