oracle 之資料庫核查

liqilin0429發表於2010-09-19


clear columns breaks
set feed off wrap off verify off head off trim off
set pagesize 20
set linesize 100
--set newpage 0
set term off
set heading off
set TTITLE  ON


column dat1 new_value filename;
select to_char(sysdate,'yyyy-mm-dd hh24') dat1 from dual; 
spool c:&&filename..txt

                                     prompt *************************************************
                                     prompt **************資料庫相關主要核查資訊*********************
                                     prompt *************************************************

select  '例項名稱:' || name from v$database;

select '歷史最高會話數:' || sessions_highwater from v$license;

select '當前連線數:' || count(*)  from v$process;

select '當前程式數:' || value  from v$parameter where name = 'processes';

Select '併發連線數:' || count(*)  from v$session where status = 'ACTIVE';

select '版本資訊:' || BANNER  from v$version where rownum<2;

set heading on

column username justify left format a14;
column 使用者名稱 justify left format a14;

column count(username)  format a8;
column 使用者連線的最大數 format a8;


select username 使用者名稱, to_char(count(username)) 使用者連線的最大數
  from v$session
 where username is not null
 group by username;

column destination format a32;
column 儲存路徑 format a32;

select status 狀態,destination 儲存路徑 from v$archive_dest;

column username format a16;
column 使用者 format a16;

column tablespace_name format a16;
column 表空間名稱 format a16;

col to_char(max_bytes / 1024 / 1024 || 'M') format a6;
column 限額 format a6;

select username 使用者,
       tablespace_name 表空間名稱,
       case max_bytes
         when -1 then
          '-1'
         else
          to_char(max_bytes / 1024 / 1024 || 'M')
       end as "限額"
  from dba_ts_quotas
 order by username;

col username format a6;
select * from v$pwfile_users;

column b  justify right format a6;

col ff.s format a12;
col 表空間名稱 format a12;


col ff.b format a8;
col 分配空間 format a12;

col (ff.b - fr.b) format a16;
col 已使用空間 format a16;

col fr.b format a12;
col 空閒空間 format a12;

col round((ff.b - fr.b) / ff.b * 100) || '% ' format a8;
col 已使用百分比 format a8;

select ff.s 表空間名稱,
       to_char(ff.b) 分配空間,
       to_char((ff.b - fr.b)) 已使用空間,
       to_char(fr.b) 空閒空間,
       to_char(round((ff.b - fr.b) / ff.b * 100) || '% ') 已使用百分比
  from (select tablespace_name s, sum(bytes) / 1024 / 1024 b
          from dba_data_files
         group by tablespace_name) ff,
       (select tablespace_name s, sum(bytes) / 1024 / 1024 b
          from dba_free_space
         group by tablespace_name) fr
 where ff.s = fr.s;

column file_name format a36;
column 檔案儲存路徑 format a36;

column tablespace_name format a18;
column 表空間名稱 format a18;

select file_name 檔案儲存路徑, tablespace_name 表空間名稱
  from dba_data_files;

column username format a18;
column 使用者名稱稱 format a18;

column decode(lock_date, null, 'unlocked', 'locked') format a8;
column 鎖定狀態  format a8;

select username 使用者名稱稱,
       decode(lock_date, null, 'unlocked', 'locked') 鎖定狀態
  from dba_users;

column increment_by justify left format a12;
column tablespace_name format a18;
column 表空間名稱 format a18;

column autoextensible format a6;
column increment_by format a8;

select tablespace_name 表空間名稱, autoextensible, to_char(increment_by)
  from dba_data_files;

column grantee format a8;
column 使用者 format a8;

column granted_role format a6;
column 許可權型別 format a6;

select grantee 使用者, granted_role 許可權型別
  from dba_role_privs
 where granted_role = 'DBA';

prompt 以下是檢查是否有失效的索引分析資料:

select index_name "索引",
       owner  "屬主",
       table_name  "表名",
       tablespace_name  "表空間"
  from dba_indexes
 where owner not in ('SYS','SYSTEM')
   and status != 'VALID'
 order by owner;


prompt 以下檢查是否有失效的觸發器、檢視、儲存過程、函式的資訊:

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')
 order by owner,object_type;

 

prompt 檢查是否存在執行失敗的JOB的資訊:

 

select job,
       log_user "屬主",
       to_char(last_date,'yyyy-mm-dd hh24:mi:ss') "上次執行時間",
       to_char(next_date,'yyyy-mm-dd hh24:mi:ss') "下次執行時間",
       failures  "失敗次數",
       what  "內容"
from dba_jobs
where failures !=0 or failures is not null;

spool off;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20976446/viewspace-674391/,如需轉載,請註明出處,否則將追究法律責任。

相關文章