Oracle之表空间迁移

问题背景:一个数据表随着时间的累积,导致所在表空间占用很高,里面历史数据可以清除,保留近2个月数据即可

首先通过delete删除了2个月以前的数据。

按网上的教程进行空间压缩,以下sql在表所在用户执行:

-- 允许表重新分配未使用的空间
ALTER TABLE your_table_name DEALLOCATE UNUSED;
 
-- 允许行移动,以便压缩表
ALTER TABLE your_table_name ENABLE ROW MOVEMENT;
 
-- 压缩表的空间
ALTER TABLE your_table_name SHRINK SPACE;
-- 或者(这个会报错,不知道什么原因)
ALTER TABLE your_table_name SHRINK STORAGE;

执行后依然不能降低表空间大小:

SELECT a.tablespace_name "表空间名",
       (total - free) "表占用空间大小",
       ROUND((total - free) / total * 100, 2) || '%' "已使用空间百分比"
  FROM (SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total
          FROM dba_data_files
         GROUP BY tablespace_name) a,
       (SELECT tablespace_name, SUM(bytes) / 1024 / 1024 free
          FROM dba_free_space
         GROUP BY tablespace_name) b
 WHERE a.tablespace_name = b.tablespace_name
 ORDER BY (total - free) DESC;

(1)创建新的表空间(sys用户下)

CREATE TABLESPACE new_tablespace DATAFILE 'path_to_datafile.dbf' SIZE 4096M AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED;

new_tablespace:是新的表空间名称

path_to_datafile.dbf:表空间文件存储路径(绝对路径)

4096M:表空间初始空间大小

AUTOEXTEND ON NEXT 500M:表示空间不够时自动扩充,扩充空间位500M

MAXSIZE UNLIMITED:表示最大空间大小不设限制

(2)将表迁移到新的表空间(表所在用户)

alter table TABLE_NAME move tablespace new_tablespace;

TABLE_NAME:迁移的表名称

new_tablespace:迁移的新表空间

如果有索引的话,还需重建索引:

alter index index_name rebuild tablespace new_tablespace;

index_name:索引名

如果表中有lob字段,上面sql并不能把lob字段一起迁移到新表,因为clob字段会另外单独存储。应该使用:

ALTER TABLE my_table MOVE TABLESPACE new_tablespace INCLUDE LOB;

上面这个sql没试过,因为我先执行了上一条sql语句(不带lob字段)的迁移,结果删除表空间的时候提示还有字段在表空间,才发现clob没有迁移。

SELECT 
    SEGMENT_NAME, 
    SEGMENT_TYPE,
    TABLESPACE_NAME
FROM 
    DBA_SEGMENTS
WHERE 
    OWNER = 'SCOTT' AND (SEGMENT_TYPE like 'LOB%');

可以使用这个sql,查看lob字段所在的表空间。

如果你也先执行了第一条sql迁移表空间数据,那么可以使用下面这条sql,额外把lob字段迁移到新表空间

ALTER TABLE table_name MOVE TABLESPACE new_tablespace LOB(clob_column) STORE AS (TABLESPACE new_tablespace);

table_name:是表名,

new_tablespace:新表空间

clob_column:CLOB字段名(不需要单引号括起来直接写字段名)

(3)删除旧表空间(sys用户下)

DROP TABLESPACE CLOBS INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;

此sql可能会比较耗时,请耐心等待。另外这只是在oracle中把表空间删除了,但物理文件还在,需要手动把物理文件删除
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/934007.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在UI自动化测试中创建稳定的定位器?

如何在UI自动化测试中创建稳定的定位器? 前言1. 避免使用绝对路径2. 避免在定位器中使用索引3. 避免多个类名的定位器4. 避免动态和自动生成的ID5. 确保定位器唯一6. 处理隐藏元素的策略7. 谨慎使用基于文本的定位器8. 使用AI创建稳定的定位器 总结 前言 在自动化测…

从一条慢sql优化,深入探讨mysql的优化器优化机制

在某环境发现一个前端请求报错,经查为一条复杂的sql耗时约70s,最终导致前端响应超时。下面叙述下本次问题排查及根因分析过程,供其他同学参考。 本文中使用到的数据库是mariadb,对于mysql也是基本适用。 一,连接算法…

SpringBoot+OSS文件(图片))上传

SpringBoot整合OSS实现文件上传 以前,文件上传到本地(服务器,磁盘),文件多,大,会影响服务器性能 如何解决? 使用文件服务器单独存储这些文件,例如商业版–>七牛云存储,阿里云OSS,腾讯云cos等等 也可以自己搭建文件服务器(FastDFS,minio) 0 过程中需要实名认证 … 1 开…

Linux其三,yum源配置,定时任务,免密登录和查找命令

目录 一、Linux的两种软件安装方式 1、Yum源配置 2、linux中软件安装的另一种方式 rpm 3、安装mysql8.0 二、对虚拟机进行克隆 1、先关机 2、最新的状态,整个快照 3、开始克隆 4、修改克隆的服务器的硬件设置 5、修改克隆机的IP地址(因为跟第一…

linux环境GitLab服务部署安装及使用

一、GitLab介绍 GitLab是利用Ruby onRails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 二、GitLab安装 1、先安装相关依赖 yum -y install policycoreutils openssh-server openssh-clients postf…

/usr/local/go/bin/go: cannot execute binary file: Exec format error

现象:ubuntu中安装go软件环境,报上述错误 原因:系统与软件不适配 解决:查看本系统的版本 找到x86-64对应的go版本即可

技术 + 舞蹈,探秘 SpringBoot 硬核广场舞团

3 系统分析 3.1 系统可行性分析 3.1.1 经济可行性 由于本系统是作为毕业设计系统,且系统本身存在一些技术层面的缺陷,并不能直接用于商业用途,只想要通过该系统的开发提高自身学术水平,不需要特定服务器等额外花费。所有创造及工作…

MySQL Workbench基本使用

MySQL Workbench 是一款由 MySQL官方开发和提供的统一可视化工具,专为数据库管理员、开发者和数据架构师设计。它提供了数据建模、SQL 开发和数据库管理的全面功能,支持 Windows、Linux 和 macOS 操作系统。 MySQL Workbench 是一个强大的工具&#xff…

fedora下Jetbrains系列IDE窗口中文乱码解决方法

可以看到窗口右部分的中文内容为小方块。 进入 Settings - Appearance & Behavior - Appearance - Use custom font : Note Sans Mono CJK SC ,设置后如下图:

厦门凯酷全科技有限公司抖音电商服务的卓越典范

在短视频和直播带货迅速崛起的时代,厦门凯酷全科技有限公司(以下简称“凯酷全科技”)以其专业的服务、创新的精神以及对市场的深刻理解,在抖音电商领域中脱颖而出,成为众多品牌商家信赖的选择。本文将深入探讨凯酷全科…

Android显示系统(05)- OpenGL ES - Shader绘制三角形(使用glsl文件)

Android显示系统(02)- OpenGL ES - 概述 Android显示系统(03)- OpenGL ES - GLSurfaceView的使用 Android显示系统(04)- OpenGL ES - Shader绘制三角形 Android显示系统(05)- OpenGL…

Ubuntu中配置交叉编译工具的三条命令的详细研究

关于该把下面的三条交叉编译配置语句加到哪里,详情见 https://blog.csdn.net/wenhao_ir/article/details/144326545 的第2点。 现在试解释下面三条交叉编译配置语句: export ARCHarm export CROSS_COMPILEarm-buildroot-linux-gnueabihf- export PATH$…

【环境搭建】WordPress本地部署搭建及历史版本插件安装(windows系统)

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍收藏💗支持一下哦 【环境搭建】WordPress本地部署搭建及历史版本插件安装(windows系统) WordPress搭建环境部署(…

【开源免费】基于SpringBoot+Vue.JS大创管理系统(JAVA毕业设计)

博主说明:本文项目编号 T 081 ,文末自助获取源码 \color{red}{T081,文末自助获取源码} T081,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

47 基于单片机的书库环境监测

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,采用DHT11湿度传感器检测湿度,DS18B20温度传感器检测温度, 采用滑动变阻器连接数模转换器模拟二氧化碳和氧气浓度检测,各项数值通过lc…

outlook软件配置邮箱提示“到邮件服务器的加密连接不可用”

outlook软件配置邮箱提示“到邮件服务器的加密连接不可用” 问题描述: outlook软件里邮箱提示“已断开”或配置邮箱时提示“到邮件服务器的加密连接不可用”。 解决方案: 一、更改注册表(可先导出备份) winr,输入re…

Jmeter进阶篇(30)深入探索 JMeter 监听器

前言 在性能测试领域里,Apache JMeter 是一款经典而强大的工具,而其中的监听器(Listeners)组件更是发挥着不可或缺的关键作用。 监听器就像敏锐的观察者,默默记录测试执行过程中的各种数据,作为系统性能分析的数据依据。 本文将带你全方位走进 JMeter 监听器的奇妙世界,…

微调 Llama 3.2:让 AI 更好地读取医学图像

您是否想知道人工智能模型如何学习理解医学图像?今天,我将带您完成一个令人兴奋的项目:微调 Meta 的 Llama 3.2 Vision 模型来分析放射线图像。如果您不是技术专家,也不要担心 - 我会用简单的术语来解释。 它是如何运作的&#x…

(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验二----网络分析(超超超详细!!!)

相信实验一大家已经完成了,对Arcgis已进一步熟悉了,现在开启第二个实验 ArcMap实验--网络分析 目录 ArcMap实验--网络分析 1.1 网络分析介绍 1.2 实验内容及目的 1.2.1 实验内容 1.2.2 实验目的 2.2 实验方案 2.3 实验流程 2.3.1 实验准备 2.3.2 空间校正…

【Spring项目】表白墙,留言板项目的实现

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:项目实现准备 1:需求 2:准备工作 (1)…