Oracle RAC扩表空间

2022-08-17 15:12:11 浏览数 (1)

最近Zabbix告警rac库表空间使用率超过75%需要扩容,本文记录了变更操作。

1.表空间查看

set pages 999 set linesize 999 SELECT a.tablespace_name "表空间名称", 100-ROUND((NVL(b.bytes_free,0)/a.bytes_alloc)*100,2) "占用率(%)", ROUND(a.bytes_alloc/1024/1024,2) "容量(M)", ROUND(NVL(b.bytes_free,0)/1024/1024,2) "空闲(M)", ROUND((a.bytes_alloc-NVL(b.bytes_free,0))/1024/1024,2) "使用(M)", TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss') "采样时间"  FROM  (SELECT f.tablespace_name, SUM(f.bytes) bytes_alloc, SUM(DECODE(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytes  FROM dba_data_files f  GROUP BY tablespace_name) a, (SELECT  f.tablespace_name,  SUM(f.bytes) bytes_free  FROM dba_free_space f  GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name;

发现表空间BMSBAK使用率为75.67%,超阀值

2.asm查看

SQL> select name,total_mb, free_mb from v$asm_diskgroup; NAME                            TOTAL_MB    FREE_MB ------------------------------ ---------- ---------- ORADATA                          1988096    1154582

rac的库在asm上。

查看剩余可扩空间,发现剩余空间有1T多。

3.查看数据文件

SQL>  select a.tablespace_name,a.FILE_NAME,bytes/1024/1024||'M' "size",a.AUTOEXTENSIBLE,a.MAXBYTES,a.INCREMENT_BY  from  dba_data_files a order by a.FILE_NAME;

发现BMSBAK表空间数据文件有8个,全部为自动扩展,大小由5120M——16384M不等,自动扩展的值由1——16384不等(这两处显得很不专业,数据文件大小和扩展值最好保持一致,不要太随意)。

加一个数据文件(16384M)后使用率预期为64%,符合要求。

4.确定扩展大小

SQL> show parameter db_block; NAME                                TYPE        VALUE ------------------------------------ ----------- ------------------------------ db_block_buffers                    integer    0 db_block_checking                    string      FALSE db_block_checksum                    string      TRUE db_block_size                        integer    8192

扩展大小:8192*16384/1024/1024M=128M(db_block_size*INCREMENT_BY,块大小*块数=自动扩展的大小)

5.扩展表空间 SQL> alter tablespace BMSBAK add datafile ' ORADATA/callcent/datafile/bmsbak09.dbf' SIZE 16384M AUTOEXTEND ON NEXT 128M;

6.确认扩展后表空间使用率

发现使用率下降至64.62%。

至此扩表空间变更完成。

0 人点赞