oracle資料庫巡檢(一)基本sql語句
很多初學者在管理oracle資料庫的時候面臨一個問題,在沒有前人留下的任何文件資料的情況下要檢查這個資料庫的執行狀態,我也同樣經歷了這樣的痛苦,不過好在有前人留下的一個巡檢報告範本,根據網路上的資料我總結了一些基本的檢查語句供自己積累和大家的參考。
--資料庫巡檢sql語句
--查詢當前資料庫大小(資料檔案+臨時表空間+重做日誌)
select round(sum(space)) Total_DB_size_in_MB from
(
select sum(bytes)/1024/1024 space from dba_data_files
union all
select nvl(sum(bytes)/1024/1024,0) space from dba_temp_files
union all
select sum(bytes)/1024/1024 space from v$log
);
select round(sum(space)) Total_DB_size_in_MB from
(
select sum(bytes)/1024/1024 space from dba_data_files
union all
select nvl(sum(bytes)/1024/1024,0) space from dba_temp_files
union all
select sum(bytes)/1024/1024 space from v$log
);
--查詢表空間及資料檔案使用情況
select a.tablespace_name "Tablespace",a.file_name "DataFile",a.bytes/1024/1024 "Total MBytes",a.blocks "DB Blocks",
sum(nvl(b.bytes,0))/1024/1024 "MBytes Free",
round(sum(nvl(b.bytes,0))/a.bytes*100,3) "%Free",
(a.bytes-sum(nvl(b.bytes,0)))/1024/1024 "MBytes Used",
round((a.bytes-sum(nvl(b.bytes,0)))/a.bytes*100,3) "%Used"
from dba_data_files a, dba_free_space b
where a.file_id=b.file_id
group by a.tablespace_name ,a.file_name,a.bytes,a.blocks
order by a.tablespace_name;
select a.tablespace_name "Tablespace",a.file_name "DataFile",a.bytes/1024/1024 "Total MBytes",a.blocks "DB Blocks",
sum(nvl(b.bytes,0))/1024/1024 "MBytes Free",
round(sum(nvl(b.bytes,0))/a.bytes*100,3) "%Free",
(a.bytes-sum(nvl(b.bytes,0)))/1024/1024 "MBytes Used",
round((a.bytes-sum(nvl(b.bytes,0)))/a.bytes*100,3) "%Used"
from dba_data_files a, dba_free_space b
where a.file_id=b.file_id
group by a.tablespace_name ,a.file_name,a.bytes,a.blocks
order by a.tablespace_name;
--查詢日誌組及日誌的位置大小
select l.group#, lf.member as Logfile,l.status,l.bytes/1024/1024 as "Size/MB"
from v$log l,v$logfile lf
where l.group#=lf.group#
order by group#
group by group#,lf.member;
select l.group#, lf.member as Logfile,l.status,l.bytes/1024/1024 as "Size/MB"
from v$log l,v$logfile lf
where l.group#=lf.group#
order by group#
group by group#,lf.member;
--檢視所有使用者基本資訊
select USERNAME,ACCOUNT_STATUS,EXPIRY_DATE,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE,PROFILE,CREATED from dba_users
select USERNAME,ACCOUNT_STATUS,EXPIRY_DATE,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE,PROFILE,CREATED from dba_users
--檢視用用DBA角色的使用者
select GRANTEE,GRANTED_ROLE,ADMIN_OPTION from dba_role_privs where GRANTED_ROLE='DBA' order by GRANTEE;
--檢視被授予SYSDBA許可權的使用者
select * from V$PWFILE_USERS
select * from dba_sys_privs where GRANTEE not in ('DBA','SYS');
--檢視非系統使用者許可權
select * from dba_sys_privs where GRANTEE in ( select USERNAME from dba_users where account_status ='OPEN' and USERNAME not like '%SYS%') order by GRANTEE;
--檢視失效物件
SELECT owner,object_type,object_name,status,LAST_DDL_TIME FROM dba_objects WHERE status like 'INVALID';
--檢查資料庫安裝選項
select * from v$option;
select * from v$option;
--檢視oracle元件版本
select comp_id, comp_name, version,status from dba_registry;
select comp_id, comp_name, version,status from dba_registry;
--檢查資料庫引數配置
select NAME,VALUE,ISDEFAULT as "Default",ISSYS_MODIFIABLE as "Dynamic" from v$system_parameter order by name;
select NAME,VALUE,ISDEFAULT as "Default",ISSYS_MODIFIABLE as "Dynamic" from v$system_parameter order by name;
--檢查控制檔案
select * from v$controlfile;
select * from v$controlfile;
--檢查系統表空間內非系統使用者的物件
select OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME from dba_segments where tablespace_name='SYSTEM' and owner not in ('SYS','SYSTEM','OUTLN');
select OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME from dba_segments where tablespace_name='SYSTEM' and owner not in ('SYS','SYSTEM','OUTLN');
--查詢當前session數和最大的session數(自資料庫執行以來)
select d.name "DATABASE",to_char(sysdate,'yyyy-MM-dd HH:MM:SS') "Check Date",l.SESSIONS_CURRENT,l.SESSIONS_HIGHWATER from v$license l ,v$database d;
select d.name "DATABASE",to_char(sysdate,'yyyy-MM-dd HH:MM:SS') "Check Date",l.SESSIONS_CURRENT,l.SESSIONS_HIGHWATER from v$license l ,v$database d;
--檢視ASM空間使用
select name,state,type,total_mb,free_mb,usable_file_mb,offline_disks from v$asm_diskgroup;
select name,state,type,total_mb,free_mb,usable_file_mb,offline_disks from v$asm_diskgroup;
--檢視SGA大小
select name,display_value from v$parameter where name like 'sga%'
select name,display_value from v$parameter where name like 'sga%'
--檢視PGA大小
select name,display_value from v$parameter where name like '%pga%'
select name,display_value from v$parameter where name like '%pga%'
這些只能算是一個最基本的參考語句,下一篇《oracle資料庫巡檢(二)全面檢查》我將整理好我正在使用的一個較為完整的資料庫系統的檢查文件。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20575781/viewspace-709230/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫巡檢常用的SQL語句資料庫SQL
- oracle資料庫巡檢最佳化-使用sql語句快速定位資料庫瓶頸Oracle資料庫SQL
- Oracle資料庫巡檢Oracle資料庫
- SQL Server資料庫巡檢SQLServer資料庫
- oracle資料庫巡檢(轉)Oracle資料庫
- Oracle基本SQL語句OracleSQL
- Oracle 資料庫監控SQL語句Oracle資料庫SQL
- oracle資料庫巡檢內容Oracle資料庫
- Oracle資料庫SQL語句效能調整的基本原則 (3)Oracle資料庫SQL
- Oracle資料庫SQL語句效能調整的基本原則 (2)Oracle資料庫SQL
- Oracle資料庫SQL語句效能調整的基本原則 (1)Oracle資料庫SQL
- MSSQL資料庫健康檢查--SQL Server巡檢SQL資料庫Server
- oracle資料庫巡檢(二)全面檢查Oracle資料庫
- 【資料庫】SQL語句資料庫SQL
- Oracle資料庫(RAC)巡檢報告Oracle資料庫
- Oracle資料庫巡檢參考項Oracle資料庫
- ORACLE一些巡檢sqlOracleSQL
- Oracle資料庫SQL語句執行過程Oracle資料庫SQL
- oracle資料庫:耗cpu sql語句優化Oracle資料庫SQL優化
- Oracle資料庫維護常用SQL語句集合Oracle資料庫SQL
- 資料庫常用sql 語句資料庫SQL
- 資料庫SQL拼接語句資料庫SQL
- Oracle資料庫(單機)巡檢報告Oracle資料庫
- 資料庫巡檢模版資料庫
- 1.4 資料庫和常用SQL語句(正文)——MySQL資料庫命令和SQL語句資料庫MySql
- 【轉】通過sql語句獲取資料庫的基本資訊SQL資料庫
- 資料庫的檢索語句資料庫
- oracle資料庫巡檢優化-快速定位資料庫瓶頸Oracle資料庫優化
- 資料庫常用操作SQL語句資料庫SQL
- SQL資料庫連線語句SQL資料庫
- oracle資料庫常用語句Oracle資料庫
- Oracle資料庫語句大全Oracle資料庫
- SQL基本語句SQL
- 資料庫常用的sql語句大全--sql資料庫SQL
- oracle資料庫巡檢優化-快速定位資料庫瓶頸(轉)Oracle資料庫優化
- oracle資料庫巡檢最佳化-快速定位資料庫瓶頸Oracle資料庫
- ORACLE 資料庫 查詢語句與DML語句Oracle資料庫
- SQL Server 資料庫部分常用語句小結(一)SQLServer資料庫