• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
飞飞飞——
博客园    首页    新随笔    联系   管理    订阅  订阅
解决ORACLE表空间问题
【后端】解决ORACLE表空间问题
项目中经常遇到ORACLE表空间不足导致系统服务无法启动问题.
问题描述:ora-01653无法通过1024在表空间(KTMIS_KM)中扩展
解决方案:
第一步-》oracle查询表空间是否已满
SELECT a.tablespace_name "表空间名",
a.bytes / 1024 / 1024 "表空间大小(M)",
(a.bytes - b.bytes) / 1024 / 1024 "已使用空间(M)",
b.bytes / 1024 / 1024 "空闲空间(M)",
round(((a.bytes - b.bytes) / a.bytes) * 100, 2) "使用比"
FROM (SELECT tablespace_name, sum(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) a,
(SELECT tablespace_name, sum(bytes) bytes, max(bytes) largest
FROM dba_free_space
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
ORDER BY ((a.bytes - b.bytes) / a.bytes) DESC
 
查询结果-》
 
第二步-》查询表空间是否设置自增长,如果没有设置自增,最简单的方法就是设置文件自增,来解决表空间不足问题。
 SELECT T.TABLESPACE_NAME,
D.FILE_NAME,
D.AUTOEXTENSIBLE,
D.BYTES,
D.MAXBYTES,
D.STATUS
FROM DBA_TABLESPACES T, DBA_DATA_FILES D
WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME
ORDER BY TABLESPACE_NAME, FILE_NAME;
 
查询结果-》
 
第三步-》解决上诉问题共有4种方式
1、增加数据文件
ALTER TABLESPACE KTMIS_KM ADD datafile 'E:\APP\ADMINISTRATOR\TMIS\KTMIS_KM2.DBF' SIZE 2048M;
 
2、增加数据文件并允许自动增长
ALTER TABLESPACE KTMIS_KM ADD datafile
'E:\APP\ADMINISTRATOR\TMIS\KTMIS_KM2.DBF' SIZE 2048M AUTOEXTEND ON NEXT 8M MAXSIZE 10240M;
 
3、允许已存在的数据文件自动增长(未设置自增的情况,这种有个弊端就是单个文件可能会太大)
ALTER DATABASE DATAFILE 'E:\APP\ADMINISTRATOR\TMIS\KTMIS_KM.DBF' AUTOEXTEND ON NEXT 8M MAXSIZE 10240M;
 
4、手工改变已存在数据文件的大小
ALTER DATABASE DATAFILE 'E:\APP\ADMINISTRATOR\TMIS\KTMIS_KM.DBF' RESIZE 10240M;
 
posted on 2025-01-02 16:59  飞飞飞——  阅读(57)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3