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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle資料庫檢視鎖表的sql語句整理Oracle資料庫SQL
- Oracle基本SQL語句OracleSQL
- SQL Server資料庫巡檢SQLServer資料庫
- Oracle資料庫SQL語句執行過程Oracle資料庫SQL
- Oracle OCP(01):使用SQL SELECT語句檢索資料OracleSQL
- 【資料庫】SQL語句資料庫SQL
- Oracle資料庫(RAC)巡檢報告Oracle資料庫
- MSSQL資料庫健康檢查--SQL Server巡檢SQL資料庫Server
- Oracle資料庫(單機)巡檢報告Oracle資料庫
- Oracle資料庫語句大全Oracle資料庫
- oracle資料庫常用語句Oracle資料庫
- 1.4 資料庫和常用SQL語句(正文)——MySQL資料庫命令和SQL語句資料庫MySql
- 資料庫常用操作SQL語句資料庫SQL
- ORACLE 資料庫 查詢語句與DML語句Oracle資料庫
- 資料庫常用的sql語句大全--sql資料庫SQL
- 資料庫的檢索語句資料庫
- 小麥苗資料庫巡檢指令碼V7.0,支援Oracle、MySQL、SQL Server和PG資料庫資料庫指令碼OracleMySqlServer
- SQL Server 資料庫部分常用語句小結(一)SQLServer資料庫
- SQL語句在oracle資料庫中的初級應用(上)SQLOracle資料庫
- oracle-資料庫- insert 插入語句Oracle資料庫
- C#一次執行多條SQL語句,Oracle11g資料庫C#SQLOracle資料庫
- sql 正則替換資料庫語句!SQL資料庫
- 資料庫常用的sql語句彙總資料庫SQL
- GaussDB資料庫SQL系列-動態語句資料庫SQL
- idea內建資料庫 + sql語句庫表操作Idea資料庫SQL
- MySQL資料庫健康檢查--MySQL巡檢MySql資料庫
- mysql資料庫sql語句基礎知識MySql資料庫
- MySQL資料庫中SQL語句分幾類?MySql資料庫
- MySQL資料庫:7、SQL常用查詢語句MySql資料庫
- SQL查詢語句 (Oracle)SQLOracle
- Oracle SQL精妙SQL語句講解OracleSQL
- 6. Oracle開發和應用—6.3. 基本SQL語句—6.3.4. select語句OracleSQL
- 恢復Oracle資料庫誤刪除資料的語句Oracle資料庫
- MySQL基本sql語句總結MySql
- SQL Server 資料庫基本記錄(一)SQLServer資料庫
- SQL Server 資料庫部分常用語句小結(二)SQLServer資料庫
- SQL server資料庫表碎片比例查詢語句SQLServer資料庫
- Oracle獲取資料庫中的物件建立語句Oracle資料庫物件
- 列出oracle dbtime得sql語句OracleSQL