oracle数据库表空间扩容

  1. 数据库表空间排查及扩容

数据库表空间排查及扩容

  1. 通过以下SQL去用ORACLE的SYS用户查询相关表空间使用情况:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
SELECT d.tablespace_name "Name", d.status "Status", 
TO_CHAR (NVL (a.BYTES / 1024 / 1024, 0), '99,999,990.90') "Size (M)",
TO_CHAR (NVL (a.BYTES - NVL (f.BYTES, 0), 0) / 1024 / 1024,
'99999999.99'
) USE,
TO_CHAR (NVL ((a.BYTES - NVL (f.BYTES, 0)) / a.BYTES * 100, 0),
'990.00'
) "Used %"
FROM SYS.dba_tablespaces d,
(SELECT tablespace_name, SUM (BYTES) BYTES
FROM dba_data_files
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM (BYTES) BYTES
FROM dba_free_space
GROUP BY tablespace_name) f
WHERE d.tablespace_name = a.tablespace_name(+)
AND d.tablespace_name = f.tablespace_name(+)
AND NOT (d.extent_management LIKE 'LOCAL' AND d.CONTENTS LIKE 'TEMPORARY')
UNION ALL
SELECT d.tablespace_name "Name", d.status "Status",
TO_CHAR (NVL (a.BYTES / 1024 / 1024, 0), '99,999,990.90') "Size (M)",
TO_CHAR (NVL (t.BYTES, 0) / 1024 / 1024, '99999999.99') USE,
TO_CHAR (NVL (t.BYTES / a.BYTES * 100, 0), '990.00') "Used %"
FROM SYS.dba_tablespaces d,
(SELECT tablespace_name, SUM (BYTES) BYTES
FROM dba_temp_files
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM (bytes_cached) BYTES
FROM v$temp_extent_pool
GROUP BY tablespace_name) t
WHERE d.tablespace_name = a.tablespace_name(+)
AND d.tablespace_name = t.tablespace_name(+)
AND d.extent_management LIKE 'LOCAL'
AND d.CONTENTS LIKE 'TEMPORARY';

查询结果如下图:

表空间查询结果

查询表空间已经占用99%以上。

  1. 查询是否还有自动扩展的表空间文件
1
2
3
4
5
6
SELECT 
TABLESPACE_NAME, FILE_NAME, BYTES/1024/1024 "CURR_SIZE(MB)", MAXBYTES/1024/1024 "MAX_SIZE(MB)",AUTOEXTENSIBLE
FROM
-- DBA_DATA_FILES;
-- DBA_TEMP_FILES;
-- TEMP为临时表空间查询

查询结果如下图:

临时表空间文件查询结果

表空间文件查询结果

  1. 增加表空间文件

如果发现已无自动扩展文件可用需要增减表空间文件:

1
2
3
-- 增加表空间文件
ALTER TABLESPACE "<table_space_name>" ADD DATAFILE '+DG_ORA_DB/<filename>.dbf' SIZE 8G;
-- 如果增加的为temp表空间,请讲DATAFILE改为TEMPFILE
  1. 修改增加后的表空间文件

增加表空间成功以后,修改文件为自动扩展:

1
2
alter database DATAFILE '+DG_ORA_DB/<filename>.dbf' autoextend on next 128M maxsize 31G;
-- 如果修改的为temp表空间,请讲DATAFILE改为TEMPFILE

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 yuanshaoqiancom@gmail.com

文章标题:oracle数据库表空间扩容

本文作者:Mr.Yuan

发布时间:2019-12-06, 00:43:17

最后更新:2019-12-08, 20:47:28

原始链接:https://yuanshaoqian.github.io/2019/12/06/oracle数据库表空间扩容/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏