我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle表空间收缩方法是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle表空间收缩方法是什么

Oracle表空间收缩方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

应用背景:
某些情况下,由于前期设计上没有考虑全面,导致表空间预建太大,远远超出实际使用大小。于是,就出现了收缩表空间这样的需求,即将这个表空间的占用空间进行收缩。

处理方案:
对于表空间收缩,Oracle只提供扩大的功能,而不提供收缩。所以,要实现这样的要求,就只能先创建一个中间表空间,然后将待收缩表空间中的数据迁移到这个表空间下

处理方法:
1、找出该表空间下的所有数据对象;
select segment_type, partition_name, segment_name from dba_segments;

创建目标空间(不强制创建,但是建议)。
create tablespace dbs_temp datafile 'd:\dbs_temp01.dbf' size 100m;

根据对象类型重建或转移对应数据;
对于table:
alter table xx move tablespace dbs_temp;
对于partition table:
alter table xx move partition xx1 tablespace dbs_temp;
对于index:
alter index ixx rebuild tablespace dbs_temp;
对于lob字段:
alter table xx move lob(col_name) store as (tablespace dbs_temp);

一般情况下,下面语句基本可以涵盖所有的数据对象了:
select segment_type, segment_name, partition_name,
       case segment_type
       when 'TABLE' then 'alter table ' || owner || '.' || segment_name || ' move tablespace dbs_temp;',
       when 'INDEX' then 'alter index ' || owner || '.' || segment_name || ' rebuild tablespace dbs_temp;',
       when 'INDEX PARTITION' then 'alter index ' || owner || '.' || segment_name || ' rebuild tablespace dbs_temp;',
       when 'TABLE PARTITION' then 'alter table ' || owner || '.' || segment_name || ' move partition ' || partition_name || 'tablespace dbs_temp;' sqltext
  from dba_segments
 where tablespace_name = 'FUND_TABLE'
   and segment_type not like 'LOB%';

下面是迁移lob字段的
select table_name, column_name, 'alter table ' || owner || '.' || table_name || ' move lob(' || column_name || ') store as(tablespace dbs_temp);' sqltext
  from dba_lobs
 where tablespace_name = 'FUND_TABLE';

删除清空后的表空间;
drop tablespace dbs_old including contents and datafiles;
下面步骤简单了,就不一一列举。

如果对表空间名称有要求,则使用原来的表空间名再次创建一个合适大小的表空间。

将目标表空间中的数据再迁移回新建的最终的表空间。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle表空间收缩方法是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Oracle表空间收缩方法是什么

Oracle表空间收缩方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。应用背景:某些情况下,由于前期设计上没有考虑全面,导致表空间预建太大,远远超出实际
2023-06-06

oracle怎么收缩表空间数据文件

要收缩Oracle数据库中的表空间数据文件,可以按照以下步骤操作:1. 首先,确认表空间中的数据文件是否可以收缩。可以使用以下命令查询表空间的空闲空间大小:```sqlSELECT tablespace_name, SUM(bytes) /
2023-09-16

oracle复制表空间的方法是什么

在Oracle中,可以使用数据泵工具(Data Pump)来复制表空间。具体步骤如下:在源数据库中创建一个数据库链接,用于连接到目标数据库。CREATE DATABASE LINK db_link_nameCONNECT TO targe
oracle复制表空间的方法是什么
2024-04-09

oracle清理表空间的方法是什么

Oracle清理表空间的方法有以下几种:1. 通过删除不再使用的表和索引来释放表空间空间。可以使用DROP TABLE和DROP INDEX语句删除表和索引。2. 使用TRUNCATE TABLE语句将表中的数据删除,并释放表空间空间。TR
2023-09-29

oracle表空间扩容的方法是什么

Oracle表空间扩容的方法包括以下几种:自动扩展:在创建表空间时可以设置表空间的自动扩展属性,当表空间空间不足时,系统会自动扩展表空间的大小。手动扩展:通过ALTER TABLESPACE语句手动扩展表空间的大小,例如:ALTER TA
oracle表空间扩容的方法是什么
2024-04-09

oracle表空间使用的方法是什么

Oracle数据库中的表空间是用于存储数据库对象的逻辑结构。表空间可以包含一个或多个数据文件,这些文件可以分布在一个或多个磁盘上。以下是Oracle表空间使用的方法:创建表空间:使用CREATE TABLESPACE语句可以创建新的表空间
oracle表空间使用的方法是什么
2024-04-09

oracle表空间查询的方法是什么

要查询Oracle数据库中表空间的信息,可以使用以下查询:SELECT tablespace_name, file_name, bytes/1024/1024 AS "Size (MB)", bytes/1024/1024 - (sum
oracle表空间查询的方法是什么
2024-04-09

oracle扩大表空间的方法是什么

在Oracle数据库中,可以通过以下方法来扩大表空间:增加数据文件:通过增加数据文件的方式来扩大表空间。可以使用ALTER TABLESPACE语句来增加数据文件,例如:ALTER TABLESPACE tablespace_nameAD
oracle扩大表空间的方法是什么
2024-05-11

oracle增加表空间的方法是什么

Oracle增加表空间的方法可以通过以下步骤实现:使用SQL语句创建新的数据文件或扩展现有数据文件。例如:ALTER DATABASEDATAFILE '/path/to/datafile.dbf'RESIZE 100M
oracle增加表空间的方法是什么
2024-04-09

oracle怎么缩小表空间

要缩小Oracle数据库中的表空间,可以按照以下步骤进行操作:1. 确定需要缩小的表空间:首先确定要缩小的表空间的名称。2. 查看当前表空间使用情况:使用以下SQL语句查看当前表空间的使用情况:```sqlSELECT FILE_NAME,
2023-09-16

oracle表空间是什么

Oracle表空间是用来存储数据库中表、索引、视图等对象的物理存储空间。每个Oracle数据库可以包含多个表空间,每个表空间可以包含多个数据文件,这些数据文件实际上是操作系统上的物理文件,用于存储数据库中的数据。表空间的主要作用是管理和组织
oracle表空间是什么
2024-05-11

oracle undo表空间释放的方法是什么

Oracle中释放undo表空间的方法有以下几种:使用回滚段管理器(Rollback Segment Management)进行自动管理:Oracle数据库默认使用自动管理模式来管理undo表空间。在这种模式下,Oracle会自动跟踪和管理
2023-10-26

Oracle中增加表空间的方法是什么

在Oracle中增加表空间的方法包括:使用SQL语句创建新的表空间:CREATE TABLESPACE tablespace_nameDATAFILE 'path/to/datafile.dbf' SIZE size;
Oracle中增加表空间的方法是什么
2024-03-13

Oracle undo表空间扩容的方法是什么

Oracle undo 表空间可以通过以下方法进行扩容:使用ALTER TABLESPACE命令扩大undo表空间的大小。例如,可以使用以下命令来增加undo表空间的大小:ALTER TABLESPACE undotbs1 ADD DATA
Oracle undo表空间扩容的方法是什么
2024-04-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录