oracle数据库undo、sysaux、hisdata等空间满的处理办法
(2018-08-23 20:51:17)
标签:
it |
问题描述:
出现问题现场出现数据访问非常慢甚至无法正常访问情况
问题说明:
由于审计日志及其它日志文件功能未关闭,在服务器更改过名称及ip地址后,系统会不断产生系统相关错误日志,可能导致表空间满,或者在多次进行大数据操作但未执行完毕退出,导致回滚空间满,或者历史数据存储数量太多导致历史数据空间满。
问题解决:
1、首先查询表空间使用情况
SELECT Upper(F.TABLESPACE_NAME)
"表空间名",
D.TOT_GROOTTE_MB
"表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) /
D.TOT_GROOTTE_MB * 100, 2), '990.99')
||
'%'
"使用比",
F.TOTAL_BYTES
"空闲空间(M)",
F.MAX_BYTES
"最大块(M)"
FROM (SELECT
TABLESPACE_NAME,
Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,
Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES
DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 1
2、确认UNDO表空间名称
select name from v$tablespace;
3、检查数据库UNDO表空间占用空间情况以及数据文件存放位置;
select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like 'UNDOTBS1';
UNDO表空间不够用,有两种处理方法,1,扩大表空间大小;2,创建新的UNDO表空间,删除原来的
假设:数据文件为:/oracle/oradata/undo/undotbs01.dbf
一、扩大UNDO表空间
(1)alter
database UNDOTBS1
datafile
'/oracle/oradata/undo/undotbs01.dbf
'
resize 4000M;
二、创建新的UNDO表空间,删除原来的
(1) 创建一个新的undo表空间,用来替换原来的undo表空间
create
undo
tablespace
UNDOTBS2
datafile
'/oracle/oradata/log/undotbs02.dbf'
出现问题现场出现数据访问非常慢甚至无法正常访问情况
问题说明:
由于审计日志及其它日志文件功能未关闭,在服务器更改过名称及ip地址后,系统会不断产生系统相关错误日志,可能导致表空间满,或者在多次进行大数据操作但未执行完毕退出,导致回滚空间满,或者历史数据存储数量太多导致历史数据空间满。
问题解决:
1、首先查询表空间使用情况
SELECT Upper(F.TABLESPACE_NAME)
FROM
WHERE
ORDER
2、确认UNDO表空间名称
select name from v$tablespace;
3、检查数据库UNDO表空间占用空间情况以及数据文件存放位置;
select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like 'UNDOTBS1';
UNDO表空间不够用,有两种处理方法,1,扩大表空间大小;2,创建新的UNDO表空间,删除原来的
假设:数据文件为:/oracle/oradata/undo/undotbs01.dbf
一、扩大UNDO表空间
(1)alter
二、创建新的UNDO表空间,删除原来的
(1) 创建一个新的undo表空间,用来替换原来的undo表空间
create
datafile