1. alter database datafile 'file_name' offline drop 该命令不会删除数据文件,只是将数据文件的状态更改为recover。 offline drop命令相当于把一个数据文件至于离线状态,并且需要恢复,并非删除数据文件。 数据文件的相关信息还会存在数据字典和控制文件中。 1.1 对于归档模式: alter database datafile 'file_name' offline 和 offline drop 没有什么区别。 因为offline 之后多需要进行recover 才可以online。 如: SQL>ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' ONLINE; SQL>ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' OFFLINE; 1.2 对于非归档模式: 如果是非归档模式,只能是offline drop. 因为非归档模式没有归档文件来进行recover操作,当然,如果offline 之后,速度足够块,online redo里的数据还没有被覆盖掉,那么这种情况下,还是可以进行recover的。 oracle 11g: SQL>ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/users03.dbf' OFFLINE FOR DROP; 2. alter tablesapce tablespace_name drop datafile 'datafile_name' 该语句会删除控制文件和磁盘上的文件,删除之后的原数据文件序列号可以重用。 注意,该语句 只能是datafile online的时候 才可以使用。如果说对应的数据文件已经是offline for drop,那么仅针对 dictionary managed tablespaces 可用。 3. 示例 SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod PL/SQL Release 10.2.0.1.0 - Production CORE 10.2.0.1.0 Production TNS for Linux: Version 10.2.0.1.0 - Production NLSRTL Version 10.2.0.1.0 - Production SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- +DATA/rac/datafile/system.256.746634087 +DATA/rac/datafile/undotbs1.258.746634089 +DATA/rac/datafile/sysaux.257.746634087 +DATA/rac/datafile/users.259.746634089 +DATA/rac/datafile/undotbs2.264.746634255 SQL> create tablespace dave datafile '+DATA/rac/datafile/dave01.dbf' size 10M; Tablespace created. SQL> alter tablespace dave add datafile '+DATA/rac/datafile/dave02.dbf' size 10M; Tablespace altered. SQL> select file#,status,name from v$datafile; FILE# STATUS NAME ---------- ------- ------------------------------------------------------------- 1 SYSTEM +DATA/rac/datafile/system.256.746634087 2 ONLINE +DATA/rac/datafile/undotbs1.258.746634089 3 ONLINE +DATA/rac/datafile/sysaux.257.746634087 4 ONLINE +DATA/rac/datafile/users.259.746634089 5 ONLINE +DATA/rac/datafile/undotbs2.264.746634255 6 ONLINE +DATA/rac/datafile/dave01.dbf 7 ONLINE +DATA/rac/datafile/dave02.dbf SQL> alter database datafile '+DATA/rac/datafile/dave01.dbf' offline; Database altered. SQL> set wrap off; SQL> select file#,status,name from v$datafile; FILE# STATUS NAME ---------- ------- ------------------------------------------------------------- 1 SYSTEM +DATA/rac/datafile/system.256.746634087 2 ONLINE +DATA/rac/datafile/undotbs1.258.746634089 3 ONLINE +DATA/rac/datafile/sysaux.257.746634087 4 ONLINE +DATA/rac/datafile/users.259.746634089 5 ONLINE +DATA/rac/datafile/undotbs2.264.746634255 6 RECOVER +DATA/rac/datafile/dave01.dbf 7 ONLINE +DATA/rac/datafile/dave02.dbf 7 rows selected. SQL> alter tablespace dave drop datafile 6; alter tablespace dave drop datafile 6 * ERROR at line 1: ORA-03263: cannot drop the first file of tablespace DAVE 这里报错了,只有online 的才能删除。 我们删除dave02.dbf 看看 SQL> alter tablespace dave drop datafile 7; Tablespace altered. -- 删除成功。 SQL> select file#,status,name from v$datafile; FILE# STATUS NAME ---------- ------- ------------------------------------------------------------- 1 SYSTEM +DATA/rac/datafile/system.256.746634087 2 ONLINE +DATA/rac/datafile/undotbs1.258.746634089 3 ONLINE +DATA/rac/datafile/sysaux.257.746634087 4 ONLINE +DATA/rac/datafile/users.259.746634089 5 ONLINE +DATA/rac/datafile/undotbs2.264.746634255 6 RECOVER +DATA/rac/datafile/dave01.dbf 6 rows selected. --去ASM 里看下物理文件是否删除掉了: [oracle@rac1 ~]$ export ORACLE_SID=+ASM1 [oracle@rac1 ~]$ asmcmd ASMCMD> ls DATA/ FRA/ ASMCMD> cd DATA ASMCMD> ls DAVE/ DB_UNKNOWN/ RAC/ ASMCMD> cd RAC ASMCMD> ls CONTROLFILE/ DATAFILE/ TEMPFILE/ spfiledave.ora spfilerac.ora ASMCMD> cd DATAFILE ASMCMD> ls SYSAUX.257.746634087 SYSTEM.256.746634087 UNDOTBS1.258.746634089 UNDOTBS2.264.746634255 USERS.259.746634089 dave01.dbf --对应的物理文件dave02.dbf 已经被删除了 我们将datafile 6 online 看看: SQL> alter database datafile 6 online; alter database datafile 6 online * ERROR at line 1: ORA-01113: file 6 needs media recovery ORA-01110: data file 6: '+DATA/rac/datafile/dave01.dbf' --提示需要recover。 这也就是需要归档文件的原因。 SQL> recover datafile 6; Media recovery complete. SQL> alter database datafile 6 online; Database altered. SQL> select file#,status,name from v$datafile; FILE# STATUS NAME ---------- ------- ------------------------------------------------------------- 1 SYSTEM +DATA/rac/datafile/system.256.746634087 2 ONLINE +DATA/rac/datafile/undotbs1.258.746634089 3 ONLINE +DATA/rac/datafile/sysaux.257.746634087 4 ONLINE +DATA/rac/datafile/users.259.746634089 5 ONLINE +DATA/rac/datafile/undotbs2.264.746634255 6 ONLINE +DATA/rac/datafile/dave01.dbf 6 rows selected. 最后把整个表空间dave drop 掉: SQL> drop tablespace dave including contents and datafiles; Tablespace dropped. SQL> select file#,status,name from v$datafile; FILE# STATUS NAME ---------- ------- ------------------------------------------------------------- 1 SYSTEM +DATA/rac/datafile/system.256.746634087 2 ONLINE +DATA/rac/datafile/undotbs1.258.746634089 3 ONLINE +DATA/rac/datafile/sysaux.257.746634087 4 ONLINE +DATA/rac/datafile/users.259.746634089 5 ONLINE +DATA/rac/datafile/undotbs2.264.746634255 去ASM里看一下: ASMCMD> ls SYSAUX.257.746634087 SYSTEM.256.746634087 UNDOTBS1.258.746634089 UNDOTBS2.264.746634255 USERS.259.746634089 对应的物理文件没有了。 alter tablespace test drop datafile 8; 命令不能drop 非空的数据文件, 如果要drop 某个数据文件,需要先把对象移除走,等drop 完成后,在移回来。 SELECT owner ownr, segment_name name, segment_type TYPE, extent_id exid, file_id fiid, block_id blid, blocks blks FROM dba_extents WHERE file_id = 8 ORDER BY block_id; alter table temp move tablespace test; https://blog.csdn.net/tianlesoftware/article/details/6305600
alter database datafile offline drop 与 alter tablespace drop datafile 区别
来源:这里教程网
时间:2026-03-03 12:10:29
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- oracle权限
oracle权限
26-03-03 - word图片文字如何设置
word图片文字如何设置
26-03-03 - linux vdo验证 oracle asm diskgroup sector_size 4096 udev asmlib
- 《魔兽世界:至暗之夜》DLC 上线,微星发布联名限量 RTX 5070 显卡
- 西山居 3D 射击游戏《尘白禁区》发布停机维护公告,开服时间暂未公布
西山居 3D 射击游戏《尘白禁区》发布停机维护公告,开服时间暂未公布
26-03-03 - oraclePL/SQL与存储过程,函数
oraclePL/SQL与存储过程,函数
26-03-03 - oracle角色
oracle角色
26-03-03 - oracle索引,同义词
oracle索引,同义词
26-03-03 - 炮轰微软 Office 功能区界面,LibreOffice 称自家 UI 设计更优秀
- Word如何让表格首行以标题行形式重复出现实现图解教程
Word如何让表格首行以标题行形式重复出现实现图解教程
26-03-03
