返回顶部
首页 > 资讯 > 数据库 >oracle10g如何删除数据文件/表空间
  • 345
分享到

oracle10g如何删除数据文件/表空间

2024-04-02 19:04:59 345人浏览 八月长安
摘要

小编给大家分享一下oracle10g如何删除数据文件/表空间,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

小编给大家分享一下oracle10g如何删除数据文件/表空间,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1.获取开启
select 'alter table ' || owner || '.'|| table_name || ' enable row movement; ' from dba_tables where tablespace_name='USERS';
select 'alter table ' || owner || '.'|| table_name || ' shrink space CASCADE; ' from dba_tables where tablespace_name='USERS';



oracle删除(释放)数据文件/表空间流程


生产环境:数据库里空间不足,niptest 表空间251G,只使用了17G


再alter database datafile '...../niptest1' resize 10G; 的时候说超出了范围要求 


由于表变动比较频繁,高水位值比较大


(高水位 HWM “High Water Mark “:oracle中block有没有使用的分界线,它会随着数据的insert而上升,但它并不会随数据的delete而下降,因此全表扫描的时间并不因数据的delete而减少,相反可能由于块清除反而全表扫描时间增加)


删除表空间步骤:


 


1)  批量将niptest表空间中的表move 到USERS表空间,再删除表空间niptest
首先看下此表空间内的表  move到其他表空间  防止数据丢失


select * from dba_tables where tablespace_name='NIPTEST'; 
select * from dba_extents where tablespace_name='NIPTEST';
select * from dba_segments where tablespace_name='NIPTEST';
SELECT 'alter table '||owner||'.'||table_name||' move tablespace USERS;' FROM DBA_tables WHERE TABLESPACE_NAME='NIPTEST'; 批量把表移动到其他表空间


 


******  move (降低高水位)


优点:可以移动表到其他表空间,在执行命令时不需要执行alter table table_name enable row movement


缺点:表move 会导致表中的索引失效,要rebuild;同时表会产生行级......;在此如果表中有LOB字段 时要用一下命令来实现表空间移动:alter table owner.table_name move tablespace tablespace_name lob (lob_column) store as lob segment  tablespace tablespace_name;也可以单独move lob,index要rebuild


 


******  shrink space


优点:降低高水位时索引不会失效


缺点:不能将表移动到其他表空间;高水位降低效果没有move明显;同时在执行命令前要先执行(alter table table_name enable row movement允许行移动)也会表会产生行级锁.......,shrink比move更耗费cpu,产生很多current block这样生成巨大的redo与undo 如果表中索引很少可以建议使用move降低高水位






2) 移动完表发现 主键和索引还是在源表空间


SELECT * FROM DBA_extents WHERE TABLESPACE_NAME='USERS';   -->查看原表空间的主键和索引
alter index XX rebuild tablespace ;


---> 批量执行索引重建
SELECT 'alter index  '||owner||'.'||segment_name||' rebuild tablespace USERS;' FROM DBA_extents WHERE TABLESPACE_NAME='NIPTEST';   批量将主键索引重建到其他表空间
select * from dba_segments where tablespace_name='NIPTEST';弄完上面的操作,这里还有数据,不要在意,那是回收站的,无需修改直接删表空间即清空


 


(3) 表都移动完了  之后 先把数据文件offline drop再删除数据文件


alter database datafile '/home/oracle/app/oracle/oradata/kfdb/niptest1' offline drop; 


---> 查看下数据文件状态


select status from dba_tablespaces v$datafile where tablespace_name='NIPTEST'; -----offline
--> 再删除表空间
drop tablespace niptest; --> 删除表空间,但不删除其文件 
drop tablespace niptest including contents; -->删除表空间同时删除表空间的数据对象
drop tablespace niptest including contents and datafiles; 


 --> 删除表空间时删除数据对象及其OS系统文件一起删除,,以便释放空间,前提表空间不能是数据库默认表空间 
否则会 报错:ORA-12919: Can not drop the default permanent tablespace


 


 


(4) 怎么查看下数据库的默认表空间是什么:
select * from database_properties where property_name = 'DEFAULT_PERMANENT_TABLESPACE';  


如果您删除的表空间是数据库默认表空间要用一下命令来


更换数据库默认表空间:alter database default tablespace users;
 再执行: drop tablespace niptest including contents and datafiles;  


[root@kfdb49 kfdb]# df -hl  --> 看下OS系统空间情况  --- 表空间释放


------创建表空间的语句:
create tablespace niptest datafile '/home/oracle/app/oracle/oradata/kfdb/niptest1' size 10G autoextend on next XXM maxsize XXm extent management local;


有的人会想着再创建一个niptest 为10G的表空间,避免后期imp时源表的表空间是niptest


: 其实不需要,如果库中没有niptest表空间,就算imp源表的表空间是niptest,也会导入到用户的默认表空间,有niptest表空间的话则会导入到niptest表空间(如果后续不想拥有niptest表空间 就要斩草除根的将niptest删除之后不要创建)


回收unlimited tablespace 给予额外权限niptest表空间权限会正常导入,否则报错


额外权限和用户默认表空间是一个的话可以正常导入,否则知道表结构到用户默认表空间

以上是“oracle10g如何删除数据文件/表空间”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: oracle10g如何删除数据文件/表空间

本文链接: https://lsjlt.com/news/63957.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • oracle10g如何删除数据文件/表空间
    小编给大家分享一下oracle10g如何删除数据文件/表空间,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • Oracle10g删除数据文件的命令
    这篇文章主要讲解了“Oracle10g删除数据文件的命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle10g删除数据文件的命令”吧! ...
    99+
    2024-04-02
  • oracle怎么删除表空间及数据文件
    要删除表空间及数据文件,需要执行以下步骤: 首先确认要删除的表空间及数据文件是否在使用中,可以通过以下SQL语句查询: SELE...
    99+
    2024-05-11
    oracle
  • oracle怎么删除表空间文件
    在Oracle中,要删除表空间文件,可以按照以下步骤进行操作:1. 首先,确认要删除的表空间文件不再被数据库使用。可以使用以下语句查...
    99+
    2023-08-18
    oracle
  • oracle如何删除表空间
    要删除 oracle 表空间,需执行以下步骤:1. 卸载表空间;2. 删除表空间;3. 删除临时表空间。重要提示:删除前确保断开用户连接、备份数据、删除其他对象。 如何删除 Oracl...
    99+
    2024-06-12
    oracle
  • plsql怎么删除表空间的dbf文件
    你可以使用ALTER TABLESPACE语句来删除表空间的dbf文件。 步骤如下: 首先,使用以下语句查询要删除的表空间的db...
    99+
    2023-10-24
    plsql
  • oracle怎么删除临时表空间文件
    要删除Oracle临时表空间文件,您需要执行以下步骤: 首先,确定哪个临时表空间文件要删除。您可以使用以下查询来查看临时表空间文件...
    99+
    2024-04-09
    oracle
  • oracle如何增加表空间数据文件
    要增加表空间数据文件,可以按照以下步骤操作: 首先,连接到Oracle数据库,并使用sys用户或具有DBA权限的用户登录。 ...
    99+
    2024-04-23
    oracle
  • sqlserver如何删除表释放空间
    在SQL Server中,要删除一个表并释放其占用的空间,可以使用以下步骤: 打开SQL Server Management St...
    99+
    2024-04-09
    sqlserver
  • hbase如何删除表释放空间
    在HBase中删除表并释放空间,可以通过以下步骤完成: 首先,在HBase Shell或HBase客户端中连接到HBase集群。...
    99+
    2024-04-19
    hbase
  • oracle怎么删除无用的表空间文件
    要删除无用的表空间文件,可以使用以下步骤: 首先,确认哪些表空间文件是无用的。可以通过查询数据库字典视图DBA_DATA_FIL...
    99+
    2024-04-02
  • Oracle 表空间和数据文件
    【基础】Oracle 表空间和数据文件 多个表空间的优势: 1.能够将数据字典与用户数据分离出来,避免由于字典对象和用户对象保存在同一个数据文件中而产生的I/O冲突 2.能够将回退数据与...
    99+
    2024-04-02
  • 如何编写shell脚本操作oracle删除表空间、创建表空间、删除用户
    本篇内容介绍了“如何编写shell脚本操作oracle删除表空间、创建表空间、删除用户”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!orac...
    99+
    2023-06-09
  • oracle删除数据后怎么释放表空间
    在Oracle数据库中,使用DELETE语句删除数据只会删除数据行,而不会释放表空间。如果需要释放表空间,可以使用以下方法: 使...
    99+
    2023-10-26
    oracle
  • oracle如何清除临时表空间数据
    要清除Oracle临时表空间中的数据,可以使用以下步骤: 首先,确定要清除数据的临时表空间名称。可以通过查询v$tempfile...
    99+
    2024-04-09
    oracle
  • Oracle表空间数据文件移动
    Oracle表空间数据文件移动系统:windowsoracle:10g实现把用户表空间中的数据文件从某一个路径移动到里一个路径一、针对可offline的非系统表空间本例移动oracle的案例表空间(EXAM...
    99+
    2024-04-02
  • 阿里云空间如何删除数据库记录
    本文主要介绍了如何在阿里云空间中删除数据库记录,包括删除方法和注意事项。 一、阿里云空间数据库记录删除方法登录阿里云控制台,进入数据库管理页面。在数据库列表中,找到需要删除记录的数据库。点击数据库名称,进入数据库详情页面。在数据库详情页面,...
    99+
    2023-11-05
    阿里 数据库 空间
  • mysql如何删除空的数据
    这篇文章主要介绍了mysql如何删除空的数据的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql如何删除空的数据文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2024-04-02
  • 数据库如何删除表
    这篇文章主要介绍数据库如何删除表,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在数据库中,可以使用“DROP TABLE”语句来删除一个或多个数据表,具体语法“DROP TABLE ...
    99+
    2024-04-02
  • mysql如何删除数据表
    在 MySQL 中删除数据表有两种方式: 使用 DROP TABLE 语句: DROP TABLE table_name; 其...
    99+
    2024-04-09
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作