Oracle基本情報チェック


作者:dbtan
リンク:http://www.dbtan.com/2009/08/select-oracle-base-info.html
1.WindowsのOracle関連サービスのステータスを確認する
主なサービスは次のとおりです.
Oracle基本信息检查_第1张图片
2.Oracle初期化パラメータの確認
select * from v$parameter;

3.Oracleのインスタンス・ステータスの確認
select instance_name,version,status,database_status
from v$instance;

Oracle基本信息检查_第2张图片
「STATUS」は、Oracleの現在のインスタンスステータスを表し、「OPEN」である必要があります.「DATABASE_STATUS」は、Oracleの現在のデータベースのステータスを表し、「ACTIVE」である必要があります.
4.バックグラウンドスレッドのステータスを確認する
Select name,Description
From V$BGPROCESS
Where Paddr<>'00';

Oracle基本信息检查_第3张图片
5.システムグローバルエリアSGA情報をチェックする
select * from v$sga;

Oracle基本信息检查_第4张图片
SGAの各部の配分状況を確認し、実際のメモリと比較して合理的かどうかを確認する.
6.SGA各部のメモリ使用状況を検査する
select * from v$sgastat;

Shared poolを大量に使用しているオブジェクトの有無、メモリの無駄がないかを確認します.
7.システムSCN番号の確認
select dbms_flashback.get_system_change_number from dual;

select current_scn from v$database;

8.データベースのステータスの確認
select name,log_mode,open_mode from v$database;

9.現在のデータベースのOSプラットフォームを確認する
select platform_name from v$database;

10.データベースのサイズとスペースの使用状況を確認する
col tablespace format a20
select b.file_id    ID,
  b.tablespace_name     ,
  b.file_name          ,
  b.bytes           ,
  (b.bytes-sum(nvl(a.bytes,0)))      ,
  sum(nvl(a.bytes,0))          ,
  sum(nvl(a.bytes,0))/(b.bytes)*100      
  from dba_free_space a,dba_data_files b
  where a.file_id=b.file_id
  group by b.tablespace_name,b.file_name,b.file_id,b.bytes
  order by b.tablespace_name

dba_free_スペース--表領域の空き領域の状況dba_data_files--データファイル領域の使用状況
11.データベースの作成日とアーカイブの確認
Select Created, Log_Mode, Log_Mode From V$Database;

12.データベースがアーカイブ・モードにあるかどうかを確認し、自動アーカイブ・プロセスを開始します.
archive log list;

13.文字セットを含むNLS情報の確認
select * from nls_database_parameters

'NLS_LANGUAGE' || 'NLS_TERRITORY' || 'NLS_CHARACTERSET'は文字セットです.
14.表領域の名前、ステータスおよびサイズを確認する
select t.tablespace_name, t.status, round(sum(bytes/(1024*1024)),0) ts_size
    from dba_tablespaces t, dba_data_files d
    where t.tablespace_name = d.tablespace_name
group by t.tablespace_name, t.status;

15.各表領域の占有スペースの大きさをチェックする
Select Tablespace_Name,Sum(bytes)/1024/1024 
From Dba_Segments Group By Tablespace_Name;

16.表領域物理ファイルの名前とサイズを確認する
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;

17.クエリー表領域の残りのサイズ
select tablespace_name,sum(bytes)/(1024*1024) as free_space
from dba_free_space
group by tablespace_name;

18.表領域の使用状況をチェックする
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME 
AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;

19.表領域の断片化状況を検査する
col tablespace_name form a25 
select tablespace_name, count(*) chunks, 
max(bytes)/1024/1024 max_chunk, 
sum(bytes)/1024/1024 total_space  
from dba_free_space group by tablespace_name;

最大使用可能なブロック(max_chunk)が合計サイズ(total_space)に比べて小さすぎる場合は、テーブルスペースのフラグメントを結合したり、データベース・オブジェクトを再構築したりすることを考慮します.
破片の結合方法:
alter tablespace      coalesce;

20.ロールバック・セグメント名、ステータスおよびサイズの確認
select segment_name, tablespace_name, r.status,
(initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,
max_extents, v.curext CurExtent
From dba_rollback_segs r, v$rollstat v
Where r.segment_id = v.usn(+)
order by segment_name ;

21.制御ファイルの状態をチェックする
select * from v$controlfile;

22.ログファイルのステータスを確認する
select * from v$logfile;

23.ロググループ情報の確認
select * from v$log;

24.データファイルの状態を確認する
select file_name,status 
from dba_data_files;

25.データファイルの保存経路を確認する
col file_name format a50
select tablespace_name,file_id,bytes/1024/1024,file_name 
from dba_data_files order by file_id;

26.データファイルの自動成長制御をチェックする
select file_name,autoextensible from dba_data_files;

27.一時データファイルのパスを確認する
select file_name 
from Dba_temp_files;

28.フラッシュバック・リカバリ領域のパスを確認する
select name from v$recovery_file_dest;

29.データベース・ライブラリ・オブジェクトの確認
select owner, object_type, status, count(*) count# 
from all_objects group by owner, object_type, status;

30.データベースのバージョンを確認する
Select version FROM Product_component_version
Where SUBSTR(PRODUCT,1,6)='Oracle';
VERSION
---------------
11.1.0.6.0

バージョン番号11、新機能バージョン番号1、メンテナンスバージョン番号0、通常のパッチ設定番号6、特殊なプラットフォームパッチ設定番号0の順に選択します.
31.データベースの作成日とアーカイブ方法を確認する
Select Created, Log_Mode, Log_Mode From V$Database;

32.現在のすべてのオブジェクトをチェック
select * from tab;

33.現在接続されているユーザーの確認
show user;

34.既存のユーザーを確認する:
select username from dba_users;

35.すべてのテーブル、インデックス、ストアド・プロシージャ、トリガ、パッケージなどのオブジェクトのステータスを確認する
select owner,object_name,object_type
from dba_objects where status!='VALID' 
and owner!='SYS' and owner!='SYSTEM';

36.現在のユーザーのデフォルト表領域、一時表領域をチェックする
select username,default_tablespace, temporary_tablespace from user_users;

37.現在のユーザーの役割を確認する
select * from user_role_privs;

38.現在のユーザーのシステム権限とテーブルレベル権限を確認する
select * from user_sys_privs;
select * from user_tab_privs;

39.ユーザーの下にあるすべてのテーブルをチェックする
select * from user_tables;

40.各テーブルのサイズをチェックする
現在のユーザーの各テーブルの空き容量のサイズを確認します.
Select Segment_Name,Sum(bytes)/1024/1024 
From User_Extents Group By Segment_Name

注意:セグメント名、すなわちテーブル名
データ・オブジェクト・サイズでソート
Select Segment_Name,segment_type, Sum(bytes)/1024/1024 as MB 
From User_Extents 
Group By Segment_Name, segment_type 
Order by MB

41.あるテーブルの作成時間をチェックする
select object_name,created from user_objects where object_name=upper('&table_name');

42.名前にlog文字が含まれているテーブルをチェックする
select object_name,object_id from user_objects
     where instr(object_name,'LOG')>0;

43.あるテーブルのサイズをチェックする
select sum(bytes)/(1024*1024) as "size(M)" from user_segments
     where segment_name=upper('&table_name');

44.メモリ領域に格納されているテーブルを確認する
select table_name,cache from user_tables where instr(cache,'Y')>0;

45.索引の個数とカテゴリを検査する
select index_name,index_type,table_name from user_indexes order by table_name;

46.インデックス内のインデックスされたフィールドをチェックする
select * from user_ind_columns where index_name=upper('&index_name');

47.インデックスのサイズを確認する
select sum(bytes)/(1024*1024) as "size(M)" from user_segments
     where segment_name=upper('&index_name');

48.無効なインデックスがあるかどうかを確認する
select index_name, owner, table_name, tablespace_name 
from dba_indexes 
where owner not in ('SYS','SYSTEM') and status != 'VALID';

レコードが返される場合は、インデックスの再構築を検討します.
49.無効なオブジェクトがないかチェックする
select object_name,      object_type,      owner,      status  
from dba_objects  
where status !='VALID'    
and owner not in ('SYS','SYSTEM') 
and object_type in  ('TRIGGER','VIEW','PROCEDURE','FUNCTION');

無効なオブジェクトがある場合は、手動で再コンパイルします.
50.シリアル番号のチェック
select * from user_sequences;

last_numberは現在の値です
51.シリアル番号の使用を確認する
select sequence_owner, sequence_name, min_value, 
max_value, increment_by, last_number, 
cache_size, cycle_flag from dba_sequences;

max_に到達するかどうかを確認します.valueのsequence.
52.ビュー名の確認
select view_name from user_views;

53.ビューを作成するselect文を確認する
set view_name,text_length from user_views;
set long 2000;                --  :       text_length   set long    
select text from user_views where view_name=upper('&view_name');

54.同義語の名称をチェックする
select * from user_synonyms;

55.あるテーブルの制約条件をチェックする
select constraint_name, constraint_type,search_condition, r_constraint_name
     from user_constraints where table_name = upper('&table_name');

select c.constraint_name,c.constraint_type,cc.column_name
 from user_constraints c,user_cons_columns cc
 where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')
 and c.owner = cc.owner and c.constraint_name = cc.constraint_name
 order by cc.position;

56.関数とプロセスの状態を検査する
select object_name,status from user_objects where object_type='FUNCTION';
select object_name,status from user_objects where object_type='PROCEDURE';

57.関数とプロセスのソースコードをチェックする
select text from all_source where owner=user and name=upper('&plsql_name');

58.現在のデータベースに何人のユーザーが接続されているかを確認する
システム管理者権限で実行し、
select username,sid,serial#, machine, status from v$session;

USERNAME:セッションのユーザー名を設定します.SID:セッションのID番号;SERIAL#:セッションのシリアル番号で、SIDとともに1つのセッションを一意に識別します.PROGRAM:このセッションはどのツールでデータベースに接続されていますか.MACHINE:このセッションはどのパソコンから接続されたSTATUSの現在のセッションの状態であり、ACTIVEはセッションが何らかのタスクを実行していることを示し、INACTIVEは現在のセッションが何の操作も実行していないことを示している.
接続を停止する場合は
SQL> alter system kill session 'sid,serial#';

このコマンドが実行できない場合、UNIXを検索するプロセスの数
SQL> select pro.spid 
    from v$session ses,v$process pro 
    where ses.sid=21 and ses.paddr=pro.addr;

説明:21は、ある接続のsid数です.
そしてkillコマンドでこのプロセス番号を殺します.
59.定時作業の完了状況をチェックする
select job,log_user,last_date,failures
from dba_jobs;

select  job, this_date, this_sec, next_date, next_sec, failures, what 
from dba_jobs where failures !=0 or failures is not null;

FAILURES列が0より大きい数であれば、JOBの運転に失敗したことを説明し、さらにチェックします.