最近 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%.
至此扩表空间变更完成.
来源: http://www.linuxidc.com/Linux/2018-09/154431.htm