查询DBA_SEGMENTS,bytes=0

简介: 昨天遇到一个奇怪的问题,查询DBA_SEGMENTS显示的bytes=0,系统是开发商安装的,oracle版本是9.2.0.8 for windows的。查询dba_segment 的定义如下:CREATE OR REPLACE FORCE VIEW SYS.
昨天遇到一个奇怪的问题,查询DBA_SEGMENTS显示的bytes=0,系统是开发商安装的,oracle版本是9.2.0.8 for windows的。

查询dba_segment 的定义如下:
CREATE OR REPLACE FORCE VIEW SYS.dba_segments (owner,
                                               segment_name,
                                               partition_name,
                                               segment_type,
                                               tablespace_name,
                                               header_file,
                                               header_block,
                                               BYTES,
                                               blocks,
                                               extents,
                                               initial_extent,
                                               next_extent,
                                               min_extents,
                                               max_extents,
                                               pct_increase,
                                               FREELISTS,
                                               freelist_groups,
                                               relative_fno,
                                               BUFFER_POOL
                                              )
AS
   SELECT owner, segment_name, partition_name, segment_type, tablespace_name,
          header_file, header_block,
            DBMS_SPACE_ADMIN.segment_number_blocks (tablespace_id,
                                                    relative_fno,
                                                    header_block,
                                                    segment_type_id,
                                                    buffer_pool_id,
                                                    segment_flags,
                                                    segment_objd,
                                                    blocks
                                                   )
          * BLOCKSIZE,
          DBMS_SPACE_ADMIN.segment_number_blocks (tablespace_id,
                                                  relative_fno,
                                                  header_block,
                                                  segment_type_id,
                                                  buffer_pool_id,
                                                  segment_flags,
                                                  segment_objd,
                                                  blocks
                                                 ),
          DBMS_SPACE_ADMIN.segment_number_extents (tablespace_id,
                                                   relative_fno,
                                                   header_block,
                                                   segment_type_id,
                                                   buffer_pool_id,
                                                   segment_flags,
                                                   segment_objd,
                                                   extents
                                                  ),
          initial_extent, next_extent, min_extents, max_extents, pct_increase,
          FREELISTS, freelist_groups, relative_fno,
          DECODE (buffer_pool_id,
                  0, 'DEFAULT',
                  1, 'KEEP',
                  2, 'RECYCLE',
                  NULL
                 )
     FROM sys_dba_segs;

观察另外的机器,发现这个定义不对,应该是:

CREATE OR REPLACE FORCE VIEW SYS.dba_segments (owner,
                                               segment_name,
                                               partition_name,
                                               segment_type,
                                               tablespace_name,
                                               header_file,
                                               header_block,
                                               BYTES,
                                               blocks,
                                               extents,
                                               initial_extent,
                                               next_extent,
                                               min_extents,
                                               max_extents,
                                               pct_increase,
                                               FREELISTS,
                                               freelist_groups,
                                               relative_fno,
                                               BUFFER_POOL
                                              )
AS
   SELECT owner, segment_name, partition_name, segment_type, tablespace_name,
          header_file, header_block,
            DECODE
               (BITAND (segment_flags, 131072),
                131072, blocks,
                (DECODE
                    (BITAND (segment_flags, 1),
                     1, DBMS_SPACE_ADMIN.segment_number_blocks
                                                             (tablespace_id,
                                                              relative_fno,
                                                              header_block,
                                                              segment_type_id,
                                                              buffer_pool_id,
                                                              segment_flags,
                                                              segment_objd,
                                                              blocks
                                                             ),
                     blocks
                    )
                )
               )
          * BLOCKSIZE,
          DECODE
             (BITAND (segment_flags, 131072),
              131072, blocks,
              (DECODE
                    (BITAND (segment_flags, 1),
                     1, DBMS_SPACE_ADMIN.segment_number_blocks
                                                             (tablespace_id,
                                                              relative_fno,
                                                              header_block,
                                                              segment_type_id,
                                                              buffer_pool_id,
                                                              segment_flags,
                                                              segment_objd,
                                                              blocks
                                                             ),
                     blocks
                    )
              )
             ),
          DECODE
             (BITAND (segment_flags, 131072),
              131072, extents,
              (DECODE
                   (BITAND (segment_flags, 1),
                    1, DBMS_SPACE_ADMIN.segment_number_extents
                                                             (tablespace_id,
                                                              relative_fno,
                                                              header_block,
                                                              segment_type_id,
                                                              buffer_pool_id,
                                                              segment_flags,
                                                              segment_objd,
                                                              extents
                                                             ),
                    extents
                   )
              )
             ),
          initial_extent, next_extent, min_extents, max_extents, pct_increase,
          FREELISTS, freelist_groups, relative_fno,
          DECODE (buffer_pool_id,
                  0, 'DEFAULT',
                  1, 'KEEP',
                  2, 'RECYCLE',
                  NULL
                 )
     FROM sys_dba_segs;

怎么会出现这样的情况下,仅仅发现如下链接:
http://www.experts-exchange.com/Database/Oracle/Q_22161891.html
并没有给出解决问题的答案。

我的感觉对方是拷贝安装的。而且版本不是9.2.0.8.

我开始重新执行catalog.sql,cateproc.sql命令,结果执行中出现如下错误:
ORA-00604: 递归 SQL 层 1 出现错误
ORA-04020: 尝试锁定对象 SYS.CDC_ALTER_CTABLE_BEFORE 时检测到死锁

关闭再打开还是依旧,查询到如下链接:
http://www.itpub.net/thread-1026878-1-1.html

按照如下方法解决:
SolutionSet the following in the INIT.ORA then restart the database:

_system_trig_enabled=false
aq_tm_processes=0
job_queue_processes=0

Then rerun CATALOG.SQL.

完成后在查看dba_segment视图,一些OK。





目录
相关文章
|
存储 OLAP 数据处理
GaussDB技术解读——GaussDB架构介绍(三)
GaussDB技术解读——GaussDB架构介绍(三)
512 1
|
监控
监控ASM磁盘IO(iostat)
找到ASM磁盘对应的OS设备
411 0
|
SQL 存储 Oracle
Oracle的学习心得和知识总结(四)|Oracle数据库表压缩技术详解
Oracle的学习心得和知识总结(四)|Oracle数据库表压缩技术详解
908 0
Oracle的学习心得和知识总结(四)|Oracle数据库表压缩技术详解
min_free_kbytes 设置案例问题解析
LINUX tmpfs 空间使用未达到100% , 内存也未占满。 执行任何命令提示 bash: fork: Cannot allocate memory 过几秒时间系统会自动重启。
min_free_kbytes 设置案例问题解析
|
SQL Oracle 关系型数据库
|
SQL Oracle 关系型数据库