最近一段时间发现程序在晚上同步数据时会假死,程序没有输出异常信息,但是用浏览器访问后页面空白,重启后后正常了,一开始以为是程序晚上同步数据时有2万多个空指针,导致内存溢出,然后卡死,把异常数据清理后发现问题依旧。在同步数据时卡死,那么数据库也嫌疑犯之一。首先查看表空间的使用情况:
SELECT tbs 表空间名, sum(totalM) 总共大小M, sum(usedM) 已使用空间M, sum(remainedM) 剩余空间M, sum(usedM) / sum(totalM) * 100 已使用百分比, sum(remainedM) / sum(totalM) * 100 剩余百分比 FROM (SELECT b.file_id ID, b.tablespace_name tbs, b.file_name name, b.bytes / 1024 / 1024 totalM, (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 usedM, sum(nvl(a.bytes, 0) / 1024 / 1024) remainedM, sum(nvl(a.bytes, 0) / (b.bytes) * 100), (100 - (sum(nvl(a.bytes, 0)) / (b.bytes) * 100)) FROM dba_free_space a, dba_data_files b WHERE a.file_id = b.file_id GROUP BY b.tablespace_name, b.file_name, b.file_id, b.bytes ORDER BY b.tablespace_name) GROUP BY tbs
发现表空间USERS的表空间的已使用百分比是99%.再获取用户的默认表空间:
select username, DEFAULT_TABLESPACE from dba_users where username = 'scott';
scott用户的默认表空间刚好是USERS,找到表空间的物理路径:
select * from dba_data_files where tablespace_name ='USERS';
那就把这个表空间进行扩展:
alter database datafile 'D:\ORACLE\PRODUCT\ORADATA\TEST\USERS01.DBF' resize 5120M;
修改USERS表空间时较慢,花了4分多钟.修改完成后再次查询表空间的使用情况,再次查询看否执行成功。
从百度点进来的,支持一下