缩小Oracle的系统表空间(SYSTEM、TEMP、UNDOTBS1、SYSAUX)

一、基础环境

操作系统:Windows 或 Linux

数据库版本:Oracle Database 11.2.0.1.0  及以上版本

二、解决问题

随着使用时间的增长,Oracle 的系统表空间(SYSTEM、TEMP、UNDOTBS1、SYSAUX)会变的越来越大,会导致系统的磁盘空间不足。我们需要定期对数据库进行维护保证数据库的安全稳定运行并提高数据库的运行效率。

三、操作步骤

说明:以下步骤适用 Windows 或 Linux 只需要修改为不同的操作系统文件路径格式

1、缩减临时表空间(包含系统临时表空间 TEMP 和用户自建的临时表空间)的大小

a)  以 DBA 的身份登陆SQL plus ;

sqlplus / as sysdba;

b) 执行以下 SQL 语句:其中 100M 如果觉的太小可以自己重新设置。临时表空间一般为自动扩展。

SELECT 'ALTER TABLESPACE '||TABLESPACE_NAME ||' SHRINK SPACE KEEP 100M;' FROM DBA_TEMP_FILES;

c)  将查询结果复制到SQL plus 里面执行即可。

d) 完成。该方法在生产环境中测试没有问题。

2、缩小系统表空间(指 SYSTEM 表空间)

a)  以 DBA 的身份登陆SQL Plus ;

sqlplus / as sysdba;

b)  查询需要缩小表空间对应的数据文件的 FILE_ID。根据FILE_NAME 确定需要缩小的数据文件的 FILE_ID

SELECT FILE_ID, FILE_NAME

FROM DBA_DATA_FILES

WHERE TABLESPACE_NAME = 'SYSTEM';

c) 查询该数据文件中数据所在的数据块的最大位置

SELECT MAX(BLOCK_ID)*8/1024 FROM DBA_EXTENTS WHERE FILE_ID=1;

d) 查询结果为:721.4375 即:该数据文件中数据所在的数据块的最大位置为 721.4375MB 处。

e) 修改该数据文件的尺寸。根据需要调整数据文件的大小,但是不能低于上一步骤的查询值。数据文件的路径为步骤 b) 的FILE_NAME 值。

ALTER DATABASE DATAFILE 'D:\PROGRAMFILES\ORACLE\ORADATA\ORCL\SYSTEM01.DBF' RESIZE 750M;

f)  完成。该方法为通用方法,即适用于其他表空间。

3、缩小UNDOTBS 表空间

a) UNDOTBS 表空间的作用为:(1)、 Read Consistent(一致性读)(2)、Transaction Rollback(事务回滚)(3)、Transaction Recovery(事务恢复)时间越长,该表空间可能越大,但表空间只用于临时存储所以可以清理。可以通过创建新的UNDO 表空间替换旧的 UNDO 表空间。

b) 以 DBA 的身份登陆SQL Plus ;

sqlplus / as sysdba;

c) 创建一个新的 UNDO 表空间

CREATE UNDO TABLESPACE UNDOTBS2

DATAFILE 'D:\PROGRAMFILES\ORACLE\ORADATA\ORCL\UNDOTBS2.DBF'

SIZE 100M

REUSE AUTOEXTEND ON;

d) 设置新的 UNDO 表空间为系统的 UNDO 表空间

ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2;

e)重启数据库,以下命令相当于 shutdown abort + startup

STARTUP FORCE

f) 删除旧的 UNDO 表空间及数据文件

DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES;

g) 至此,UNDOTBS01 表空间缩减完毕。如果想要还原原来的表空间名称,重新执行该方法即可。

参考资料:

标签:数据文件,TEMP,DBA,UNDOTBS1,SYSTEM,UNDO,TABLESPACE,FILE,空间

来源: https://www.cnblogs.com/yaoyangding/p/12595637.html

oracle undo 缩小,缩小Oracle的系统表空间(SYSTEM、TEMP、UNDOTBS1、SYSAUX)相关推荐

  1. Oracle的SYS.AUD$占满系统表空间了怎么办

    Oracle的SYS.AUD$占满系统表空间了怎么办 问题分析 应急处理 长远的解决方案 测试环境:关闭审计功能 生产环境:迁移表空间 问题分析 应该反馈无法连接数据库.查看告警日志: [oracle ...

  2. oracle系统表空间不足,oracle表空间不足相关问题解决办法

    oracle 临时表空间和数据表空间 Oracle临时表空间主要用来做查询和存放一些缓冲区数据.临时表空间消耗的主要原因是需要对查询的中间结果进行排序.重启数据库可以释放临时表空间,如果不能重启实例, ...

  3. Oracle系统表空间

    需求:需要整理现场用户创建的表空间以及其存储数据,进行规范化管理.在整理用户现场建立的表空间时,需要排除掉非用户创建的表空间,所有首先需要那些表空间是用户创建的,那些是Oracle自带的. 本机测试建 ...

  4. oracle维护常用SQL语句(查看系统表和视图)

    转:http://www.360doc.com/content/11/1230/15/7489308_176090474.shtml oracle维护常用SQL语句(查看系统表和视图) 1.查看表空间 ...

  5. oracle 查询 非系统表,Oracle冷备----删除非系统表空间

    1.备份文件 define fil=/home/Oracle/cdbk.sql define log=/home/oracle/cdbk.log spool &fil prompt conne ...

  6. oracle pdb系统表空间损坏,oracle 12c pdb 恢复

    备份数据库 [oracle@12cr2 ~]$ rman target / RMAN> backup database; RMAN> list backup summary; 数据库ope ...

  7. Oracle的SQL基础之用户与表空间

    前排提示:数据库对象不理解的,可以查看我的关于数据库对象的博文 1.用户 1.1四个系统默认用户 Oracle的安装完成会产生四个系统默认用户,其级别依次是 sys > system > ...

  8. Oracle案例08——xx.xx.xx.xx,表空间 SYSAUX 使用率95%%

    本实例主要针对Oracle表空间饱满问题处理方法做个步骤分享.  一.告警信息 收到zabbix告警信息,表空间 SYSAUX 使用率>95%%,系统表空间sysaux使用率超过了95%. 二. ...

  9. Oracle→简介、用户、数据字典、表空间及其文件

    https://www.oracle.com/cn/downloads/ 用户 dba_users scott 表空间 dba_tablespaces user_tablespaces dba_use ...

最新文章

  1. 1.第一个java程序,Hello world
  2. 在fedora21 上的php+mysql+apache环境搭建
  3. ActiveReports for .NET 3 破解
  4. 互联网亿级日志实时分析平台,一个码农半小时就可以搞定,只因ELK
  5. 智慧城市产业图谱研究报告(2020年)
  6. 两个维护 提升三服务器,王莉霞:以整改成效践行“两个维护”立足“事要解决”抓好“三访结合”...
  7. python类class定义_python基础教程之类class定义使用方法
  8. java 线程退出cmd_java 线程的终止与线程中断
  9. systemtap原理及使用
  10. 窗体之间传递值的几种方法
  11. ES6 String和Number扩展
  12. Excel冻结首行/首列
  13. 51单片机STC89C52控制LED跑马灯左移(使用C51自带库_crol_()实现),详细注释
  14. 一些有意思的js代码
  15. 2016年最新苹果开发者账号注册申请流程最强详解!
  16. Android代码实现——拨打电话和发送短信APP
  17. 使用Pyton将MAC地址转换成指定格式
  18. MySQL的Binlog原理
  19. 棒棒的二维数据可视化分类模型
  20. Composer入门教程 - 基本用法

热门文章

  1. UVC (USB Video Class) 使用笔记 (转)
  2. OpenCV图像发现轮廓函数findContours()的使用
  3. PostgreSQL示例demo
  4. 计蒜客NOIP模拟D1T2
  5. 因新漏洞问题 Firefox 49发布时间将延期一周
  6. 关于解决form表单记录上次保存填写记录清空
  7. Kafka配置消息保存时间的方法
  8. 安装Ubuntu 13.04后要做的六件事
  9. grub修复与grub.conf
  10. Namespace declaration statement has to be the very first statement in the script