共计 1710 个字符,预计需要花费 5 分钟才能阅读完成。
最近 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%。
至此扩表空间变更完成。
: