当前位置: 首页 > news >正文

【Oracle专栏】删除用户 释放表空间

 Oracle相关文档,希望互相学习,共同进步

风123456789~-CSDN博客


1.背景

        本文主要实验:1)oracle删除用户,释放表空间

                                 2)删除表,收缩表空间

                                 3)降低表空间的高水位线

2. 实验验证

2.1 准备数据

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_BYTESFROM SYS.DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MBFROM SYS.DBA_DATA_FILES DDGROUP BY DD.TABLESPACE_NAME) DWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME;

结果截图:

2)实验前,使用表空间用户情况

SELECT owner, tablespace_name,round(sum(BYTES/1024/1024),2) sizes
FROM dba_segments
WHERE owner like 'NH_MCRO_FINANCE%'
group by owner, tablespace_name;

 结果截图:

2.2  删除用户,验证

drop user NH_MCRO_FINANCE0108 cascade;

1) 执行后的 表空间用户情况

SELECT owner, tablespace_name,round(sum(BYTES/1024/1024),2) sizes
FROM dba_segments
WHERE owner like 'NH_MCRO_FINANCE%'
group by owner, tablespace_name;

 删除0108的用户后,结果截图对比:

2)执行后,表空间大小

删除后结果:看到已使用空间减小,确实是删除了数据。

     但是由于空间是大表空间,且自动增长的,看到表空间文件没有自动收缩,1.3T 但是目前是273M使用的,因此需要收缩一下空间

3)执行后,数据文件大小

select * from dba_data_files t where t.tablespace_name ='NH_MCRO_FINANCE_DATA'

结果截图:

4)直接收缩空间

ALTER TABLESPACE NH_MCRO_FINANCE_DATA SHRINK SPACE;

报错:ora12916无法压缩永久表空间(shrink:该命令将回收未使用的空间并压缩表空间。) 

 

ALTER DATABASE DATAFILE '/home/u01/app/oracle/oradata/ORCL/orclpdb1/nh_mcro_finance_data001.dbf' RESIZE 600M

这主要涉及到Oracle的逻辑存储和段空间管理以及数据库块中的数据分布。

    Oralce有一个High Water Mark(高水位线),它表示Oracle对象使用空间最高水位线。

    当插入了数据以后,HWM就会上涨;Delete语句删除数据后,HWH并没有降低。

    HWH数据库块分布在调整范围之外,此时使用RESIZE命令会报错。

5) 收缩空间

 对所有表空间中的所有表执行一次shrink命令

在执行shrink前,必须开启数据表的行迁移功能

alter table xxx enable row movement;

alter table xxx shrink space cascade;

注意:该SQL语句会造成引用表xxx的对象(如存储过程、包、视图等)变为无效,后续需要重新编译一次确认是否有效。

构造shrink命令,建立shrink.sql文件,其内容如下:

set heading off;
set echo off;
set feedback off;
set termout on;
spool /home/oracle/backup/deal_shrink.sql;
select 'alter table NH_MCRO_FINANCE_OLD.'|| table_name || ' enable row movement; ' from user_tables where tablespace_name='NH_MCRO_FINANCE_DATA';
select 'alter table NH_MCRO_FINANCE_OLD.'|| table_name || ' shrink space CASCADE;' from user_tables where tablespace_name='NH_MCRO_FINANCE_DATA';
spool off;

NH_MCRO_FINANCE_OLD@xxx/orclpdb1> @/home/oracle/backup/shrink.sql

NH_MCRO_FINANCE_OLD@xxx/orclpdb1> @deal_shrink.sql

 执行后,发现表空间会变小

SELECT owner, tablespace_name,round(sum(BYTES/1024/1024),2) sizes
FROM dba_segments
WHERE owner like 'NH_MCRO_FINANCE%'
group by owner, tablespace_name;

2.3  单表删除后的表空间 收缩

alter table table_name enable row movement;–语句开启允许行移动,该语句允许rowid改变;
alter table table_name shrink space;–语句回收空间。
备注:如果使用turncate直接进行全表删除,会直接释放表空间,不需要进行回收

 实验验证:ok 

3.相关知识点

 alter table <table_name> shrink space [ <null> | compact | cascade ];
    alter table <table_name> shrink space compcat;
    说明:收缩表,移动块中数据位置到一起,但 High Water Mark 保持不变

    alter table <tablespace_name> shrink space;
    说明:收缩表,降低 High Water Mark

    alter table <tablespace_name> shrink space cascade;
    说明:收缩表,降低 High Water Mark,并且把相关索引也收缩一下。

    alter index idxname shrink space;
    说明:回缩索引


项目管理--相关知识   

项目管理-项目绩效域1/2-CSDN博客

项目管理-项目绩效域1/2_八大绩效域和十大管理有什么联系-CSDN博客

项目管理-项目绩效域2/2_绩效域 团不策划-CSDN博客

高项-案例分析万能答案(作业分享)-CSDN博客

项目管理-计算题公式【复习】_项目管理进度计算题公式:乐观-CSDN博客

项目管理-配置管理与变更-CSDN博客

项目管理-项目管理科学基础-CSDN博客

项目管理-高级项目管理-CSDN博客

项目管理-相关知识(组织通用治理、组织通用管理、法律法规与标准规范)-CSDN博客


Oracle其他文档,希望互相学习,共同进步

Oracle-找回误删的表数据(LogMiner 挖掘日志)_oracle日志挖掘恢复数据-CSDN博客

oracle 跟踪文件--审计日志_oracle审计日志-CSDN博客

ORA-12899报错,遇到数据表某字段长度奇怪现象:“Oracle字符型,长度50”但length查却没有50_varchar(50) oracle 超出截断-CSDN博客

EXP-00091: Exporting questionable statistics.解决方案-CSDN博客

Oracle 更换监听端口-CSDN博客

相关文章:

  • 架构师面试(三十四):IM 假在线
  • Linux 文件系统目录结构详解
  • 什么是 IDE?集成开发环境的功能与优势
  • 基于springboot+vue的仓库管理系统
  • AWS Linux快速指南:5分钟搭建多用户图形界面
  • 使用 Docker Swarm 纳管节点并实现容器通信
  • 【网络】数据链路层知识梳理
  • Hi3518E官方录像例程源码流程分析(四)
  • 【NLP 62、实践 ⑮、基于RAG + 智谱语言模型的Dota2英雄故事与技能介绍系统】
  • 13【生命周期·进阶】省略规则与静态生命周期 (`‘static`)
  • 08【工具赋能】深入 Cargo:依赖管理、构建配置与工作空间 (Workspace)
  • C++类继承关键点总结
  • MySQL数据库(基础篇)
  • 量子计算与经典计算融合:开启计算新时代
  • 读一篇AI论文并理解——通过幻觉诱导优化缓解大型视觉语言模型中的幻觉
  • UE5 UI 教程系列全集
  • llama factory
  • 7、sentinel
  • 微信小程序通过mqtt控制esp32
  • 手写call,bind,apply
  • 经济大省中川、豫、浙一季报已发:GDP增速均高于全国
  • 女子“伸腿阻拦高铁关门”被行拘,事件追踪:当时发生了什么?
  • 我国自主研制的重大航空装备AG600性能怎样?专家解读
  • 老旧高层遭“连环漏水”,如何携手共治解难题?
  • 海康威视:去年海外主业和机器人等创新业务占比首次超50%
  • 吉林省文联党组书记、主席赵明接受纪律审查和监察调查