查询redo logfile的使用率 tablespace 的自由空间

来源:互联网 发布:高斯键盘知乎 编辑:程序博客网 时间:2024/04/30 10:40

原文转自:http://www.eygle.com/archives/2004/07/redo_logfile_usage.html

redo logfile的使用,不能通过v$视图查询,但是我们可以通过底层视图得到.

首先介绍一下引用到的视图及字段.

x$kccle---- [K]ernel [C]ache [C]ontrolfile management [L]ogfil[E] record

          这个视图记录了logfile的使用情况

其中,

LESIZ ------logfile大小(以逻辑块表示)
LESEQ------log sequence # 
LEBSZ------logfile逻辑块大小

顺便说一下,redo logfile是以操作系统块为单位的.所以,这里的LEBSZ就是OS的块大小.

如果我们需要获取OS块大小,就可以从这里查询得到:

 

SQL> select max(lebsz) lbsize from x$kccle;

LBSIZE
----------
512

 

 

x$kcccp----[K]ernel [C]ache [C]ontrolfile management [c]heckpoint [p]rogress

        检查点增进(progress)

CPODR_SEQ------日志文件的seq # 
CPODR_BNO------日志文件中使用块的数量

获取日志文件使用率:

 

SELECT le.leseq    CURRENT_LOG_SEQUENCE#, 100*cp.cpodr_bno/LE.lesiz PERCENTAGE_FULLfrom x$kcccp cp,x$kccle leWHERE LE.leseq =CP.cpodr_seq;

 CURRENT_LOG_SEQUENCE#       PERCENTAGE_FULL
       ---------------------                                           ---------------
                 2308                                            85.6982422


如何查看各个表空间的自由空间

DBA_FREE_SPACE视图记录了数据库中所有表空间的自由extents情况,所以可以从该视图获得各表空间自由空间情况。

SQL> desc dba_free_space Name                         Null?    Type ----------------------- ------------- ----------- TABLESPACE_NAME                     VARCHAR2(30) FILE_ID                               NUMBER BLOCK_ID                              NUMBER BYTES                                 NUMBER BLOCKS                                NUMBER RELATIVE_FNO                          NUMBER

可以使用如下SQL进行查询:
select tablespace_name,sum(bytes)/1024/1024 free_Mbytesfrom dba_free_spacegroup by tablespace_nameorder by free_Mbytes/


示例输出:
SQL> select tablespace_name,sum(bytes)/1024/1024 free_Mbytes  2  from dba_free_space  3  group by tablespace_name  4  order by free_Mbytes  5  /TABLESPACE_NAME      FREE_MBYTES-------------------- -----------USERS                        .75UNDOTBS1                 18.6875SYSTEM                   42.6875

原创粉丝点击