90-Oracle 对于LOB的数据-新建表空间和分区表

Oracle表空间瘦身实战:3种高效回收空间的方法(附完整SQL脚本) 本文详细介绍了Oracle表空间瘦身的三种高效方法,包括表重组技术、索引精炼术和文件瘦身术,并提供了完整的SQL脚本。这些方法能有效回收空间,提升数据库性能,适用于经历大量删除操作或存在空间浪费的Oracle数据库。 阅读详情
生产现场有些业务表,保存了超多的LOB字段的表,且逐年递增,无优化和减少的趋势。需要定期新增固定大小的 表空间同时对历史表进行分区,分区不能影响其他年份或是继续的业务。和生产商量后,先建立EMRP新的表空间,大小参考去年的使用量(可以增加多个表空间文件),表空间建立后做一下表分区执行。

​一、LOB字段分区存储基础​

性能优化​

  • ​分区修剪​:按时间(如就诊日期)分区后,查询2023年数据仅扫描对应分区,避免全表扫描实现年度隔离)。
  • ​IO均衡​:将BLOB/CLOB单独存储至EMRP52023等表空间,避免与结构化数据竞争IO资源(创建专用表空间)。

存储管理​

  • ​滚动归档​:年度分区表空间(如EMRP52022→EMRP52023)支持快速归档旧数据(ALTER TABLE ... DROP PARTITION)。
  • ​空间预分配​:禁用自动扩展(AUTOEXTEND OFF),通过多数据文件预分配空间(创建多个固定大小的文件),避免碎片化。

运维安全​

  • ​故障隔离​:单分区损坏不影响整体数据(如2023年分区故障不影响2022年数据)。
  • ​独立备份​:可单独备份EMRP52023表空间(文档中未展示但隐含此能力)。

二、操作步骤​

​步骤1、诊断存储状态
## 查询表空间大小和占用率
set linesize 300
SELECT d.status "Status",
       d.tablespace_name "Name",
       d.contents "Type",
       d.extent_management "ExtentManagement",
       to_char(nvl(a.bytes / 1024 / 1024, 0), '99999999.999') "TotalSizeM",
       to_char(nvl(a.bytes - nvl(f.bytes, 0), 0) / 1024 / 1024,'99999999.999') "UsedM",
       to_char(nvl(nvl(f.bytes, 0), 0) / 1024 / 1024, '99999999.999') "FreeM",
       to_char(nvl((a.bytes - nvl(f.bytes, 0)) / a.bytes * 100, 0),'990.00') "Used%"
  FROM sys.dba_tablespaces d,
       (SELECT tablespace_name, SUM(bytes) bytes FROM dba_data_files GROUP BY tablespace_name) a,
       (SELECT tablespace_name, SUM(bytes) bytes FROM dba_free_space GROUP BY tablespace_name) f
 WHERE d.tablespace_name = a.tablespace_name(+)
   AND d.tablespace_name = f.tablespace_name(+)
   ORDER BY ((a.bytes-f.bytes)/a.bytes) desc;            

#查询物理文件大小
SELECT
B.FILE_NAME 物理文件名,
B.TABLESPACE_NAME 表空间名称,
B.BYTES/1024/1024 大小M,
(B.BYTES-SUM(NVL(A.BYTES,0)))/1024/1024 已使用M,
SUBSTR((B.BYTES-SUM(NVL(A.BYTES,0)))/(B.BYTES)*100,1,5) 使用率
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.BYTES
ORDER BY B.TABLESPACE_NAME;

--查看表空间大小
set linesize 300
col file_name for a50;
col tablespace_name for a16;
col online_status for a10;
col autoextensible for a10;
SELECT file_id,file_name,bytes / 1024 / 1024 AS MB,tablespace_name,online_status,autoextensible FROM dba_data_files;
步骤2、查一下表空间数据文件的存放地址

查看表空间存储物理位置,便于以下新加表空间和表文件dbf

select tablespace_name, file_id, file_name, 
round(bytes/(1024*1024),0) total_space 
from dba_data_files 
order by tablespace_name; 
--
步骤2.创建表空间EMRP52023,作为2023年分区的表空间
create tablespace EMRP52023 datafile '*步骤1中查询出的存放地址*\EMRP5202301.dbf' size 表空间大小(根据生产运行情况设置)
--原dbf文件路径为: /oradata01/orcl/EMRP52022_05.dbf

创建表空间,要保证服务器有足够大小!

不建议自动扩展,同样是为了提高磁盘IO。如果认为表空间大小不够,可以增加表空间数据文件。

--新建表空间,便于以下分区表使用到最新的表空间,直接pl/sql中运行,等待完成
CREATE TABLESPACE EMRP52023 DATAFILE 
  '/oradata01/orcl/EMRP52023_01.dbf' SIZE 4G AUTOEXTEND OFF,
  '/oradata01/orcl/EMRP52023_02.dbf' SIZE 4G AUTOEXTEND OFF,
  '/oradata01/orcl/EMRP52023_03.dbf' SIZE 4G AUTOEXTEND OFF,
  '/oradata01/orcl/EMRP52023_04.dbf' SIZE 4G AUTOEXTEND OFF,
  '/oradata01/orcl/EMRP52023_05.dbf' SIZE 4G AUTOEXTEND OFF 
    LOGGING
    ONLINE
    EXTENT MANAGEMENT LOCAL AUTOALLOCATE
    BLOCKSIZE 8 K
    SEGMENT SPACE MANAGEMENT AUTO
    FLASHBACK ON;
    ----如遇老的表空间容量不足,临时增加dbf文件
    alter tablespace EMRP52023 add datafile '/oradata01/orcl/EMRP52023_06.dbf' SIZE 4G; --20231109添加
 步骤3、查看分区表信息
 select distinct table_name from dba_tab_partitions;
select table_name,partition_name,high_value from dba_tab_partitions;

 步骤4.生成分区脚本,指导文件
select 'ALTER TABLE' || (tab_par.table_name) ||
       ' ADD PARTITION DATE2023' || ' VALUESLESS THAN  (TO_DATE(' || '''' ||
       '2024-1-1' || '''' || ',' || '''' ||'YYYY-MM-DD' || '''' || ')) ' ||
       'TABLESPACE EMRP52023 ;'
  from (select distinct table_name
          from dba_tab_partitions
         where table_owner = 'EMRP用户名') tab_par;

注意:此处若无法查询出分区脚本,可以将EMRP用户名中的英文改成大写字母后尝试执行!为原有OWNER为EMRP50的表,建立新的分区,并使用新的分区指定到分区的隔离时间,执行文件 

步骤5.执行分区脚本并校验

复制查询出来的语句,执行!切换至EMRP50对应的有权限的用户,否则报错

--示例文件
1	ALTER TABLE RCD_OUT_RECORD_DATA ADD PARTITION DATE2023 VALUES LESS THAN  (TO_DATE('2024-1-1','YYYY-MM-DD')) TABLESPACE EMRP52023 ;
2	ALTER TABLE RCD_TEMPERATURE_SPECIAL_DATA ADD PARTITION DATE2023 VALUES LESS THAN  (TO_DATE('2024-1-1','YYYY-MM-DD')) TABLESPACE EMRP52023 ;
3	ALTER TABLE RCD_TEMPERATURE_LIFESIGNDATA ADD PARTITION DATE2023 VALUES LESS THAN  (TO_DATE('2024-1-1','YYYY-MM-DD')) TABLESPACE EMRP52023 ;
4	ALTER TABLE QCM_CRISIS_SCOREDETAIL ADD PARTITION DATE2023 VALUES LESS THAN  (TO_DATE('2024-1-1','YYYY-MM-DD')) TABLESPACE EMRP52023 ;
5	ALTER TABLE DIAG_WESTERN_DIAGNOSE ADD PARTITION DATE2023 VALUES LESS THAN  (TO_DATE('2024-1-1','YYYY-MM-DD')) TABLESPACE EMRP52023 ;
6	ALTER TABLE RCD_NURSE_RECORD_DATA ADD PARTITION DATE2023 VALUES LESS THAN  (TO_DATE('2024-1-1','YYYY-MM-DD')) TABLESPACE EMRP52023 ;
7	ALTER TABLE RCD_INPATIENT_RECORD ADD PARTITION DATE2023 VALUES LESS THAN  (TO_DATE('2024-1-1','YYYY-MM-DD')) TABLESPACE EMRP52023 ;
8

 校验分区表是否成功,在窗口中执行完分区脚本,选几个表校验下是否成功。

 

Oracle OCP考试082系列第5题解析与存储管理实战 Oracle数据库存储管理是DBA核心技能之一,其分层架构包含表空间、数据文件、段等关键组件。当出现ORA-01653空间不足错误时,本质是存储体系无法满足扩展需求。通过检查表空间使用率、段分配情况可快速定位问题,解决方案包括添加数据文件、调整AUTOEXTEND参数等应急处理。长期优化需建立空间监控机制,结合OMF自动管理、分区表等技术预防问题。该场景在OCP认证考试082系列第5题中重点考察,也是生产环境高频故障点,掌握存储架构原理与实战技巧对保障数据库可用性至关重要。 阅读详情

相关推荐

Oracle表空间管理小技巧:DELETE后空间不释放?试试这5种降低HWM的方法

本文深入剖析了Oracle数据库中DELETE操作后表空间不释放的根本原因——高水位线(High Water Mark)问题,并系统性地介绍了五种降低高水位线的实用方法,包括ALTER TABLE MOVE、SHRINK SPACE、TRUNCATE与表重建、数据泵导出导入以及DEALLOCATE UNUSED,帮助DBA有效回收存储空间并提升数据库性能。

weixin_29219189的博客 117

Oracle 创建分区表及增加分区

1、创建分区表 2、增加分区 3、增加默认分区

石头札记 6186

【Oracle】Oracle给已有分区表上添加分区(含子分区)

【代码】【Oracle】Oracle给已有分区表上添加分区(含子分区)

tttzzzqqq2018的博客 3881

oracle表分区

在添加主分区时最好新增一个子分区,如果不新增子分区,oracle会自动生成一个默认的子分区;–将worker02和worker03分区中的数据合并到worker03分区中,同时删除worker02分区。当hash分区作为主分区时,oracle中看不到子分区,但是能根据子分区进行查询。3.当列表分区是子分区,hash分区是主分区时;直接添加分区会报错,因为添加的分区要比最大的分区要比最大的分区范围要大。删除主分区,会删除该分区下所有的数据;截断分区是指删除某个分区的中的数据,不会删除分区。

weixin_44672916的博客 9413

薛定谔虚拟筛选实战:如何用PDB文件快速构建受体格点(避坑指南)

本文提供了薛定谔虚拟筛选实战指南,聚焦于如何从PDB文件快速、精准地构建受体格点。文章详细解析了可变残基的理性处理策略、基于配体尺寸的盒子量化设置方法,并分享了高级约束与排除体积的实战技巧,旨在帮助用户避开常见陷阱,提升虚拟筛选的成功率与效率。

weixin_28419039的博客 252

tcllib2.0 package - csv

tcl lib 的csv库

shin 859

Oracle LOB类型的分区(?)存储

Oracle CLOB, BLOB类型字段的secure file特性及分区存储

qq_41450814的博客 802

飞腾D2000开发板实战:手把手教你为UEFI/EDK2驱动SD3077 RTC时钟芯片

本文详细介绍了在飞腾D2000开发板上为UEFI/EDK2环境驱动SD3077 RTC时钟芯片的全流程开发指南。从硬件连接到软件适配,包括引脚复用配置、电源管理优化以及UEFI驱动的深度定制,帮助开发者解决嵌入式系统中的时间同步问题,确保RTC芯片的稳定性和准确性。

weixin_30892037的博客 423

Oracle表分区的创建、新增、拆分

其中增加POHTER分区是为了防止不符合分区条件是数据插入报错,但是如果直接新增分区会报错ORA-14074: 分区界限必须调整为高于最后一个分区界限,根本原因是存在最后maxvalue分区。解决方法是拆分分区,在split partition时,根据split point原来的partition分裂成两个partition。Oracle中为了方便管理、查询数据当数据量大于500w或者2G时最好用分区表,常见的一种是使用时间作为分区。所以分区拆分的时候,必须从小的开始,否则会提示如下报错。

大宇进阶之路的博客 6958

Qt制作大数据可视化大屏展示电子看板

Qt制作大数据可视化大屏展示电子看板 解决当前最火的大数据可视化大屏展示,整个项目通过Qt开发,集成了QML/QChart/ECharts及自定义控件等模块,所有的可视化控件都可以集成到其中。可以随意增加和减少模块,各个模块可以随意拖拽,整体可以个性化布局。模块标题栏可自定义,包括标题文本信息、文本颜色、宽度/高度、背景颜色、按钮个数等功能,满足各个样式需求。 实例中主要展示了现成的一些仪表盘...

Qt自定义控件及应用开发 7707

C# : 计算并输出这一天是这一年的第几天

C#之输入某年,然后输入某月,再输入某日,计算并输出这一天是这一年的第几天的功能算法

saitoDeng的博客 970

Oracle分区表的move操作

关于分区表的move操作还是很值得深究的一个问题。如果分区表中含有lob字段,难度还会加大。对于普通的表而言,做move操作室理所当然,oracle提供的方式很直接快捷。当然了这个命令也不是高可用的范畴。但是对于数据重组还是很方便快捷的。一般来说,如果尝试对分区表进行move操作,会得到如下的错误警告。SQL> alter table charge move table...

weixin_33701294的博客 1038

chembl_webresource_client 包数据接口下载chembl数据库;ZINC数据库下载、simles获取

点击进去https://zinc.docking.org/subclasses/kinase/predictions/,然后下载sdf模式,这里可以转化simles格式,如果下载csv里面没有包含simles。参考:https://github.com/chembl/chembl_webresource_client/blob/master/demo_wrc.ipynb。参考:https://zinc.docking.org/这是网页搜索查看,16条数据。这个数据这下载特别慢。

weixin_42357472的博客 3051

定义blob类型_Oracle数据库lob大对象数据类型字段总结,值得收藏

概述今天主要对Oracle数据库lob大对象数据类型字段的详细讲解,介绍ORACLE提供的CLOB,NCLOB,BLOB,BFILE共四种LOB类型。LOB概念lob为Oracle数据库的一个大对象数据类型,可以存储超过4000bytes的字符串,二进制数据,OS文件等大对象信息.最大可存储的容量根oracle的版本和oracle 块大小有关.LOB分类分为内部LOB和外部LOB。内部LOB包括C...

weixin_39524834的博客 540

ArcGIS实验教程——实验十七:缓冲区分析(Buffer Analysis)

【实验描述】缓冲区(Buffer)是为了识别某一地理实体对周围地物的影响而在其周围建立的一定宽度多边形区域,缓冲区分析(Buffer Analysis)是用来确定不同地理要素的空间临近性或接近程度的一种分析方法。作为GIS的空间分析方法之一,缓冲区分析的应用范围特别广泛,常用于分析矢量实体对周围的影响。例如,工厂排放的废水废气所影响的空间范围等等。 一、缓冲区的基本概念 1、缓冲区 是地理空间目标的一种影响范围或服务范围。 2、缓冲区分析 指根据分析对象的点、线、面实体,自动建立它们周围一定距离的带

智慧空间实验室 1万+

【UG\NX二次开发】使用内部函数展开和折叠工序导航器

NX二次开发-群精选」专栏收录了那些曾散落在聊天对话框里的精彩的知识分享,这都是被遗落的宝贵财富。让我们一起向大佬学习,充满激情地进步,不断超越自己。底部联系方式,欢迎您加入一起交流。​下次一定。

王牌飞行员_里海的博客 820

高效实践:Oracle表空间占用深度分析与优化策略

本文深入探讨了Oracle表空间占用的深度分析与优化策略,帮助DBA有效管理数据库存储空间。通过详细的SQL查询和实战案例,介绍了表空间诊断、空间回收、预防性维护等关键技巧,特别针对临时表空间暴增和系统表空间异常等特殊场景提供解决方案。文章还强调了云环境下的空间管理注意事项,助力提升数据库性能和成本控制。

e4f5g6h7的博客 462

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

oracle move不能操作分区,Oracle分区表的move操作

对于普通的表而言,做move操作室理所当然,oracle提供的方式很直接快捷。当然了这个命令也不是高可用的范畴。但是对于数据重组还是很方便快捷的。一般来说,如果尝试对分区表进行move操作,会得到如下的错误警告。SQL> alter table charge move tablespace large_data;alter table charge move tablespace large...

weixin_42501373的博客 935

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Oracle在线重定义与分区表优化实战指南

数据库表结构变更与分区优化是提升Oracle性能的关键技术。在线重定义(Online Redefinition)通过DBMS_REDEFINITION包实现零停机表结构修改,其核心原理是创建中间表同步数据后平滑切换。分区表设计则通过RANGE、LIST、HASH等策略实现数据物理隔离,显著提升查询效率和管理便利性。在电商、金融等7×24小时业务系统中,这些技术能有效解决大表维护难题,如文中提到的3亿条记录订单表无缝转为分区表的案例。合理选择分区键和优化重定义流程,配合并行处理和空间管理技巧,可确保TB级数据

weixin_33508411的博客 251

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

从AWR数据膨胀到数据库卡顿:一个SYSAUX表空间的故障溯源日记

本文详细记录了Oracle数据库SYSAUX表空间因AWR数据膨胀导致业务卡顿的故障诊断与修复过程。通过分析空间占用元凶、验证AWR保留策略,提出三步紧急救援方案,并深入剖析分区机制失效原因,最终构建SYSAUX空间安全网的防御体系,为DBA提供实战参考。

info6的博客 563

oracle ~ table 你不知道的事

关于oracle 或者任何一款数据库,80%的人都只知道增删改查,查出来的数据以行格式呈现,然后每天做着大量重复的crud 的业务开发工作,却喊着为什么涨工资不是自己?这话是问诞生于泡沫时期—站在风口上的程序员,也是问曾经和现在的自己。我们能应付绝大部分的工作难题,就算应对不了,公司也会给足effort 学习,就算能解决问题,花费的时间和思考的深度也很难给人惊喜。程序员界总有20%的人,在暴风雨来之前,就预备好了一切,持续不断地深入思考让他们拥有洞察事物本质的能力,他们是可靠的人,也是升职加薪最快的人。

m0_37537794的博客 186

Oracle数据库存储空间优化实战:如何用ALTER TABLE MOVE命令精准降低高水位线(HWM)

本文深入探讨了Oracle数据库存储空间优化的关键技巧,重点介绍了如何使用ALTER TABLE MOVE命令有效降低高水位线(HWM)。通过实际案例演示,展示了该技术如何显著提升查询性能并回收浪费的存储空间,适用于频繁增删数据的业务场景。

http9protocoller的博客 172

Oracle数据库高水位线(HWM)原理与五种实战释放方法详解

在数据库管理与性能优化领域,空间管理和查询效率是核心议题。Oracle数据库通过高水位线(HWM)机制来管理段(如表)的空间分配,其原理类似于标记数据块使用过的最高位置。这种设计虽然简化了空间分配,但也带来了潜在的性能问题:即使数据被删除,HWM也不会自动下降,导致全表扫描时仍需读取大量空块,造成不必要的I/O开销和存储浪费,直接影响数据库性能与存储成本。为了解决这一常见的性能瓶颈,DBA和开发者需要掌握有效的HWM释放技术。本文聚焦于表重建、在线表重定义、分区表策略、段空间收缩以及CTAS与索引重建这五种

weixin_30787531的博客 407

oracle中触发器的语法,Oracle 触发器语法及实例

Oracle 触发器语法及实例Oracle触发器语法(一)一 Oracle触发器语法触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的。功能:1、 允许/限制对表的修改2、 自动生成派生列,比如自增字段3、 强制数据一致性4、 提供审计和日志记录5、 防止无效的事务处理6、 启用复杂的业务逻辑触...

weixin_30336949的博客 3937

使用movetable收缩表空间

目的:收回目前没有使用过的表空间,减小数据文件大小。 难点:插入的历史数据可能分布在不同的磁盘位置上,所以无法确定resize datafile能不能成功执行。 解决方式:通过move一个tablespace上的所有对象到一个新的临时表空间上来降低表的hwm,从而减少数据占用的实际磁盘大小。   select tablespace_name,all_bytes,use_bytes, r

欧辰的专栏 1289

Managing Tables

Objectives Storing User Data Regular tables Partitioned tables Index-organized tables Clustered tables 普通表 分区表 : 如果一个表太大了,那么就会在这个大表的基础上,在分为子表,叫做 partition. 每个 row 是存储在一起的,比如 有1000行数据,可能 前...

weixin_34381666的博客 91
上一篇: 89-Oracle SYSAUX过大-业务卡顿修复
下一篇: 91-Oracle 11g RAC RHEL 7+上手动创建ohashd
远方1609
博客等级 码龄22年 577粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值