系统检查脚本

本文提供了一套详尽的Oracle数据库检查脚本,包括控制文件、重做日志、数据文件等位置及状态的确认,以及关于表空间、数据段、表和索引等的详细信息查询。
系统检查脚本
Oracle数据库检查脚本[@more@]

--调查环境所用的脚本----------------------------------------------------------------------------------
-- 作为系统用户登录,执行
----------------------------------------------------------------------------------

spool /o.log
set linesize 256
col NAME                                 format a40
col MEMBER                             format a40
col FILE_NAME                        format a40
col TABLESPACE_NAME           format a20
col DEFAULT_TABLESPACE       format a20
col TEMPORARY_TABLESPACE  format a20
col SEGMENT_NAME                 format a20
col USERNAME                         format a20
col OWNER                              format a20
col TABLE_NAME                      format a20
col TABLE_OWNER                   format a20
col INDEX_NAME                      format a20
col SEGMENT_NAME                 format a20

----------------------------------------------------------------------------------
-- 确认控制文件重做日志文件 数据文件的位置和名称
-- 这些文件和初始化参数文件{init(SID).ora}是冷备份的对象
----------------------------------------------------------------------------------
select * from v$controlfile;
select * from v$logfile;
select FILE#, STATUS, ENABLED, NAME from v$datafile; 

----------------------------------------------------------------------------------
--关于重做日志的信息
----------------------------------------------------------------------------------
select * from v$log;
select * from v$logfile; 

----------------------------------------------------------------------------------
--关于数据文件的信息
----------------------------------------------------------------------------------

select a.TABLESPACE_NAME, a.FILE_ID, a.FILE_NAME,
       a.BYTES/1024/1024 SIZE_MB, b.CREATE_BYTES/1024/1024 CREATE_MB,
       a.INCREMENT_BY*b.BLOCK_SIZE/1024/1024 NEXT_MB, a.MAXBYTES/1024/1024 MAX_MB
  from DBA_DATA_FILES a, v$datafile b
where a.FILE_ID = b.FILE#;

----------------------------------------------------------------------------------
--  数据文件的大小(KB),使用量(KB),空闲容量(KB)
----------------------------------------------------------------------------------
select a.FILE_ID, a.FILE_NAME,
       min(a.BYTES)/1024 SIZE_KB, min(a.BYTES)/1024 - sum(b.BYTES)/1024 USED_KB,
       sum(b.BYTES)/1024 FREE_KB
  from dba_data_files a, dba_free_space b
where a.FILE_ID = b.FILE_ID
group by a.FILE_ID, a.FILE_NAME; 
----------------------------------------------------------------------------------
--关于表空间的信息
----------------------------------------------------------------------------------

select TABLESPACE_NAME, INITIAL_EXTENT/1024 INITIAL_EXTENT_KB, NEXT_EXTENT/1024 NEXT_EXTENT_KB,
       MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE, MIN_EXTLEN, STATUS, CONTENTS, LOGGING
  from dba_tablespaces;

----------------------------------------------------------------------------------
--  表空间的大小(KB),使用量(KB),空闲容量(KB)
----------------------------------------------------------------------------------
select a.TABLESPACE_NAME,
       min(a.BYTES)/1024 SIZE_KB, min(a.BYTES)/1024 - sum(b.BYTES)/1024 USED_KB, sum(b.BYTES)/1024 FREE_KB
  from dba_data_files a, dba_free_space b
where a.FILE_ID = b.FILE_ID
group by a.TABLESPACE_NAME;

select a.TABLESPACE_NAME, a.FILE_NAME, sum(a.BYTES)/1024 SIZE_KB, sum(a.BYTES)/1024 - sum(b.BYTES)/1024 USED_KB, sum(b.BYTES)/1024 FREE_KB
  from dba_data_files a, dba_free_space b
where a.FILE_ID = b.FILE_ID
group by a.TABLESPACE_NAME, a.FILE_NAME; 
------------------------------------------------------------------------------------
--扩展的信息:扩展数为2个以上的数据段的一览表
------------------------------------------------------------------------------------
select TABLESPACE_NAME, OWNER, SEGMENT_NAME, count(*)
from dba_extents
group by TABLESPACE_NAME, OWNER, SEGMENT_NAME
having count(*) >= 2;

select TABLESPACE_NAME, OWNER, TABLE_NAME,
    INITIAL_EXTENT/1024 INITIAL_EXTENT_KB , NEXT_EXTENT/1024 NEXT_EXTENT_KB, MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE
  from dba_tables
  where (OWNER, TABLE_NAME) in (
          select OWNER, SEGMENT_NAME
            from dba_extents
            where SEGMENT_TYPE = 'TABLE'
            group by TABLESPACE_NAME, OWNER, SEGMENT_NAME, SEGMENT_TYPE
            having count(*) >= 2)
  order by TABLESPACE_NAME, OWNER, TABLE_NAME;

select TABLESPACE_NAME, OWNER, TABLE_NAME, INDEX_NAME,
    INITIAL_EXTENT/1024 INITIAL_EXTENT_KB , NEXT_EXTENT/1024 NEXT_EXTENT_KB, MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE
  from dba_indexes
  where (OWNER, INDEX_NAME) in (
          select OWNER, SEGMENT_NAME
            from dba_extents
            where SEGMENT_TYPE = 'INDEX'
            group by TABLESPACE_NAME, OWNER, SEGMENT_NAME, SEGMENT_TYPE
            having count(*) >= 2)
  order by TABLESPACE_NAME, OWNER, TABLE_NAME, INDEX_NAME; 
------------------------------------------------------------------------------------
--表信息表信息(1)
------------------------------------------------------------------------------------
break on OWNER
select OWNER, TABLE_NAME,
    PCT_FREE, PCT_USED, INI_TRANS, MAX_TRANS,
    INITIAL_EXTENT/1024 INITIAL_EXTENT_KB , NEXT_EXTENT/1024 NEXT_EXTENT_KB, MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE,
    TABLESPACE_NAME
  from dba_tables
  order by OWNER, TABLE_NAME;

--表信息(2)
----------------------------------------------------------------------------------
-- 为了求出NUM_ROWS,BLOCKS,AVG_SPACE,CHAIN_CNT,AVG_ROW_LEN的值,
-- 需要事先执行ANALYZE命令。
-- analyze table 表名 compute statistics;
----------------------------------------------------------------------------------
select OWNER, TABLE_NAME,
    NUM_ROWS, BLOCKS, AVG_SPACE, CHAIN_CNT, AVG_ROW_LEN,
    TABLESPACE_NAME
  from dba_tables
  order by OWNER, TABLE_NAME;
 
------------------------------------------------------------------------------------
--索引信息:索引信息(1)
------------------------------------------------------------------------------------
select TABLE_OWNER, TABLE_NAME, INDEX_NAME, UNIQUENESS,
INI_TRANS, MAX_TRANS, INITIAL_EXTENT/1024 INITIAL_EXTENT_KB , NEXT_EXTENT/1024 NEXT_EXTENT_KB, MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE, PCT_FREE,
STATUS, TABLESPACE_NAME
  from dba_indexes
  order by TABLE_OWNER, TABLE_NAME, INDEX_NAME;

------------------------------------------------------------------------------------
--索引信息(2)
------------------------------------------------------------------------------------
select TABLE_OWNER, TABLE_NAME, INDEX_NAME, UNIQUENESS,
BLEVEL, LEAF_BLOCKS, DISTINCT_KEYS, AVG_LEAF_BLOCKS_PER_KEY, AVG_DATA_BLOCKS_PER_KEY,
STATUS, TABLESPACE_NAME
  from dba_indexes
  order by TABLE_OWNER, TABLE_NAME, INDEX_NAME;
 
------------------------------------------------------------------------------------
--关于用户的信息用户信息
------------------------------------------------------------------------------------
select USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE, CREATED, PROFILE
  from dba_users
  order by USERNAME;
------------------------------------------------------------------------------------
--分配给用户的权限
------------------------------------------------------------------------------------
break on GRANTEE
select * from dba_role_privs order by GRANTEE, GRANTED_ROLE;

----------------------------------------------------------------------------------
--基本信息
----------------------------------------------------------------------------------
select * from v$version;
select * from v$option;
select * from v$sga;
select * from v$instance;
select * from v$database;
col VALUE format a40
select * from v$parameter; 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7176288/viewspace-907185/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7176288/viewspace-907185/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值