Oracle基本情報チェック
作者:dbtan
リンク:http://www.dbtan.com/2009/08/select-oracle-base-info.html
1.WindowsのOracle関連サービスのステータスを確認する
主なサービスは次のとおりです.
2.Oracle初期化パラメータの確認
3.Oracleのインスタンス・ステータスの確認
「STATUS」は、Oracleの現在のインスタンスステータスを表し、「OPEN」である必要があります.「DATABASE_STATUS」は、Oracleの現在のデータベースのステータスを表し、「ACTIVE」である必要があります.
4.バックグラウンドスレッドのステータスを確認する
5.システムグローバルエリアSGA情報をチェックする
SGAの各部の配分状況を確認し、実際のメモリと比較して合理的かどうかを確認する.
6.SGA各部のメモリ使用状況を検査する
Shared poolを大量に使用しているオブジェクトの有無、メモリの無駄がないかを確認します.
7.システムSCN番号の確認
8.データベースのステータスの確認
9.現在のデータベースのOSプラットフォームを確認する
10.データベースのサイズとスペースの使用状況を確認する
dba_free_スペース--表領域の空き領域の状況dba_data_files--データファイル領域の使用状況
11.データベースの作成日とアーカイブの確認
12.データベースがアーカイブ・モードにあるかどうかを確認し、自動アーカイブ・プロセスを開始します.
13.文字セットを含むNLS情報の確認
'NLS_LANGUAGE' || 'NLS_TERRITORY' || 'NLS_CHARACTERSET'は文字セットです.
14.表領域の名前、ステータスおよびサイズを確認する
15.各表領域の占有スペースの大きさをチェックする
16.表領域物理ファイルの名前とサイズを確認する
17.クエリー表領域の残りのサイズ
18.表領域の使用状況をチェックする
19.表領域の断片化状況を検査する
最大使用可能なブロック(max_chunk)が合計サイズ(total_space)に比べて小さすぎる場合は、テーブルスペースのフラグメントを結合したり、データベース・オブジェクトを再構築したりすることを考慮します.
破片の結合方法:
20.ロールバック・セグメント名、ステータスおよびサイズの確認
21.制御ファイルの状態をチェックする
22.ログファイルのステータスを確認する
23.ロググループ情報の確認
24.データファイルの状態を確認する
25.データファイルの保存経路を確認する
26.データファイルの自動成長制御をチェックする
27.一時データファイルのパスを確認する
28.フラッシュバック・リカバリ領域のパスを確認する
29.データベース・ライブラリ・オブジェクトの確認
30.データベースのバージョンを確認する
バージョン番号11、新機能バージョン番号1、メンテナンスバージョン番号0、通常のパッチ設定番号6、特殊なプラットフォームパッチ設定番号0の順に選択します.
31.データベースの作成日とアーカイブ方法を確認する
32.現在のすべてのオブジェクトをチェック
33.現在接続されているユーザーの確認
34.既存のユーザーを確認する:
35.すべてのテーブル、インデックス、ストアド・プロシージャ、トリガ、パッケージなどのオブジェクトのステータスを確認する
36.現在のユーザーのデフォルト表領域、一時表領域をチェックする
37.現在のユーザーの役割を確認する
38.現在のユーザーのシステム権限とテーブルレベル権限を確認する
39.ユーザーの下にあるすべてのテーブルをチェックする
40.各テーブルのサイズをチェックする
現在のユーザーの各テーブルの空き容量のサイズを確認します.
注意:セグメント名、すなわちテーブル名
データ・オブジェクト・サイズでソート
41.あるテーブルの作成時間をチェックする
42.名前にlog文字が含まれているテーブルをチェックする
43.あるテーブルのサイズをチェックする
44.メモリ領域に格納されているテーブルを確認する
45.索引の個数とカテゴリを検査する
46.インデックス内のインデックスされたフィールドをチェックする
47.インデックスのサイズを確認する
48.無効なインデックスがあるかどうかを確認する
レコードが返される場合は、インデックスの再構築を検討します.
49.無効なオブジェクトがないかチェックする
無効なオブジェクトがある場合は、手動で再コンパイルします.
50.シリアル番号のチェック
last_numberは現在の値です
51.シリアル番号の使用を確認する
max_に到達するかどうかを確認します.valueのsequence.
52.ビュー名の確認
53.ビューを作成するselect文を確認する
54.同義語の名称をチェックする
55.あるテーブルの制約条件をチェックする
56.関数とプロセスの状態を検査する
57.関数とプロセスのソースコードをチェックする
58.現在のデータベースに何人のユーザーが接続されているかを確認する
システム管理者権限で実行し、
USERNAME:セッションのユーザー名を設定します.SID:セッションのID番号;SERIAL#:セッションのシリアル番号で、SIDとともに1つのセッションを一意に識別します.PROGRAM:このセッションはどのツールでデータベースに接続されていますか.MACHINE:このセッションはどのパソコンから接続されたSTATUSの現在のセッションの状態であり、ACTIVEはセッションが何らかのタスクを実行していることを示し、INACTIVEは現在のセッションが何の操作も実行していないことを示している.
接続を停止する場合は
このコマンドが実行できない場合、UNIXを検索するプロセスの数
説明:21は、ある接続のsid数です.
そしてkillコマンドでこのプロセス番号を殺します.
59.定時作業の完了状況をチェックする
FAILURES列が0より大きい数であれば、JOBの運転に失敗したことを説明し、さらにチェックします.
リンク:http://www.dbtan.com/2009/08/select-oracle-base-info.html
1.WindowsのOracle関連サービスのステータスを確認する
主なサービスは次のとおりです.
2.Oracle初期化パラメータの確認
select * from v$parameter;
3.Oracleのインスタンス・ステータスの確認
select instance_name,version,status,database_status
from v$instance;
「STATUS」は、Oracleの現在のインスタンスステータスを表し、「OPEN」である必要があります.「DATABASE_STATUS」は、Oracleの現在のデータベースのステータスを表し、「ACTIVE」である必要があります.
4.バックグラウンドスレッドのステータスを確認する
Select name,Description
From V$BGPROCESS
Where Paddr<>'00';
5.システムグローバルエリアSGA情報をチェックする
select * from v$sga;
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の運転に失敗したことを説明し、さらにチェックします.