释放Oracle表空间(用户)

8yparm6h  于 2023-04-05  发布在  Oracle
关注(0)|答案(1)|浏览(168)

我是Oracle数据库的新手,想问一下Oracle表空间的相关问题,特别是用户表空间的问题,每周我都会查看和控制表空间的容量,但是表空间用户增长很快,表空间的大小就变大了。
表空间信息:

Tablespace Name                Total Size (MB) Used Space (MB) Free Space (MB)  Usage (%)
------------------------------ --------------- --------------- --------------- ----------
RBS                                       6000          311.38         5688.62       5.19
SYSAUX                                  113000        42662.75        70337.25      37.75
SYSTEM                                   29000         8568.44        20431.56      29.55
TEMP                                     34000              34           33966         .1
USERS                                   154000       103946.94        50053.06       67.5

如何在不丢失业务交易数据的情况下进行清理?

a11xaf1n

a11xaf1n1#

了解USERS中哪些表占用了空间非常重要--使用此查询来确定占用最多空间的表

SELECT owner, segment_name, segment_type, sum(bytes)/1024/1024 "Size (MB)" 
FROM dba_segments 
WHERE tablespace_name = 'USERS' 
GROUP BY owner, segment_name, segment_type 
ORDER BY 4 DESC;
  • 检查这些表中的数据,以确定是否有任何不必要的数据可以删除或存档
  • 考虑压缩表中的数据
  • 考虑将一些访问频率较低的数据移动到单独的表空间(使用MOVE或通过导出数据+删除表+在不同的表空间中创建新表+并将数据导入回)
  • 向表空间添加其他数据文件以增加其大小(临时解决方案)

PS.任何清理活动都应该经过彻底的测试和验证,以确保业务事务数据不会丢失--定期对数据库进行备份,以确保在出现任何问题时可以恢复数据

相关问题