关于表空间的一个问题

最近在进行数据库服务器维护的时候发生某个表空间(名为PPSTT)占用率过高,如何解决这一问题,上网查了很多这方面的资料,因为本人对数据库管理还是个生手,所以只好求教于同事. 同事发过来一文档,照着操作,问题解决了.

        数据库服务器为 Sun Microsystems Inc SunOS 5.9          数据库为 Oracle9i
        操作步骤如下:
         1) 执行 select * from dba_data_files where tablespace_name='PPSTT' order by file_name desc
             得到系统中该表空的数据文件序列字段FILE_NAME如值为 /dev/md/rdsk/d203 则我们在增加表空
             间时应该取值d204.
        2) 以root用户登陆数据库服务器
        3) 执行 /usr/sbin/metainit d204 -p d100 2g 这里d204是表空文件的命名,后面的2g表示表空空间
            大小,d100保持不变
        4) 执行 chown oracle:dba /dev/md/dsk/d204  
                     chown oracle:dba /dev/md/rdsk/d204
             将这两个文件的权限分配给oracle用户和ora组
        5) 从root用户切换到oracle用户(su oracle)
        6) 与数据库建立连接:sqlplus "/ as sysdba"
        7) 执行 alter tablespace "PPSTT" add datafile '/dev/md/rdsk/d204' size 2000m; 将表空文件加到
             PPSTT表空中.
附:如下SQL可以查看各个表空间的使用情况:
select dbf.tablespace_name,
dbf.totalspace "总量(M)",
dbf.totalblocks as 总块数,
dfs.freespace "剩余总量(M)",
dfs.freeblocks "剩余块数",
(dfs.freespace / dbf.totalspace) * 100 "空闲比例"
from (select t.tablespace_name,
sum(t.bytes) / 1024 / 1024 totalspace,
sum(t.blocks) totalblocks
from dba_data_files t
group by t.tablespace_name) dbf,
(select tt.tablespace_name,
sum(tt.bytes) / 1024 / 1024 freespace,
sum(tt.blocks) freeblocks
from dba_free_space tt
group by tt.tablespace_name) dfs
where trim(dbf.tablespace_name) = trim(dfs.tablespace_name)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值