10G刪除空資料檔案
sys@ORCL>alter tablespace users drop datafile
2 '/u01/app/oracle/oradata/orcl/users02.dbf';
對於DataGuard,不能使用這個命令,否則redo會壞掉使得備庫要重做。到10204還需打上Genernal Bundle。
[@more@]作者 :【轉載時請務必以超連結形式標明文章原始出處和作者資訊】
連結:
Oracle 9I、10G都可以採用:Alter database datafile file_name offline drop;來刪除資料檔案,但當資料檔案為非空時,存放在該資料檔案上的資料就無法讀據了:
SYS@sky> alter database datafile 2 'E:USERS03.DBF' offline drop; 資料庫已更改。 SYS@sky> select count(*) from test01; select count(*) from test01 * ERROR 位於第 1 行: ORA-00376: 此時無法讀取檔案 6 ORA-01110: 資料檔案 6: 'E:USERS03.DBF' |
採用該命令來刪除資料檔案,相關資料字典資訊是無法清除的:
SYS@sky> select FILE#,TS#,name,status from v$datafile 2 where ts#=4; FILE# TS# NAME STATUS ----- ---- --------------------------------- ------- 2 4 E:USERS02.DBF ONLINE 4 4 E:USERS01.DBF ONLINE 6 4 E:USERS03.DBF RECOVER |
不過這條命令在恢復時還是很挺有用的,比如只恢復某個表空間的資料時,其它表空間的資料檔案就可以offline drop了。
從Oracle 10G R2開始,可以採用:Alter tablespace tablespace_name drop datafile file_name;來刪除一個空資料檔案,並且相應的資料字典資訊也會清除:
sys@ORCL>select file_id,file_name,tablespace_name from dba_data_files 2 where tablespace_name='USERS'; FILE_ID FILE_NAME TABLESPACE_NAME ------- -------------------------------------------- ------------------ 4 /u01/app/oracle/oradata/orcl/users01.dbf USERS sys@ORCL>alter tablespace users add datafile 2 '/u01/app/oracle/oradata/orcl/users02.dbf' size 5M autoextend off; Tablespace altered. sys@ORCL>select file_id,file_name,tablespace_name from dba_data_files 2 where tablespace_name='USERS'; FILE_ID FILE_NAME TABLESPACE_NAME ------- -------------------------------------------- ------------------- 4 /u01/app/oracle/oradata/orcl/users01.dbf USERS 9 /u01/app/oracle/oradata/orcl/users02.dbf USERS sys@ORCL>drop table test; Table dropped. sys@ORCL>create table test tablespace users 2 as 3 select * from dba_objects; Table created. sys@ORCL>select SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents 2 where file_id=9; SEGMENT_NAME FILE_ID BLOCKS ------------------------------ ---------- ---------- TEST 9 8 TEST 9 8 TEST 9 8 TEST 9 8 TEST 9 8 TEST 9 8 TEST 9 8 TEST 9 8 TEST 9 8 TEST 9 8 TEST 9 8 TEST 9 8 TEST 9 8 TEST 9 8 TEST 9 8 TEST 9 128 TEST 9 128 17 rows selected. sys@ORCL>alter table test move tablespace PERFSTAT; Table altered. sys@ORCL>select SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents 2 where file_id=9; no rows selected sys@ORCL>alter tablespace users drop datafile 2 '/u01/app/oracle/oradata/orcl/users02.dbf'; Tablespace altered. sys@ORCL>select file_id,file_name,tablespace_name from dba_data_files 2 where tablespace_name='USERS'; FILE_ID FILE_NAME TABLESPACE_NAME ------- -------------------------------------------- --------------------- 4 /u01/app/oracle/oradata/orcl/users01.dbf USERS sys@ORCL> |
當然如果資料檔案是非空的,drop時就有提示了:
sys@ORCL>alter tablespace users drop datafile 2 '/u01/app/oracle/oradata/orcl/users02.dbf'; alter tablespace users drop datafile * ERROR at line 1: ORA-03262: the file is non-empty |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/668365/viewspace-1022666/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle徹底刪除資料檔案Oracle
- Linux檔案刪除空間未釋放Linux
- Oracle10g刪除資料檔案Oracle
- RM刪除檔案空間釋放詳解
- [待整理]oracle10g刪除(釋放)資料檔案/表空間流程Oracle
- 資料檔案誤刪除(DM_單機)
- 1.7.8. 刪除資料庫密碼檔案資料庫密碼
- hadoop 資料夾檔案的建立與刪除Hadoop
- FileUtils類建立、刪除檔案及資料夾
- 【Linux】linux下刪除/清空資料夾/檔案命令Linux
- Git——刪除檔案Git
- SVN !檔案刪除
- rm 刪除檔案
- Oracle 刪除使用者、表空間、資料檔案、使用者下的所有表Oracle
- Oracle 10g大檔案表空間(轉)Oracle 10g
- Python如何遞迴刪除空資料夾Python遞迴
- Ubuntu 強制刪除資料夾(非空)Ubuntu
- 雲伺服器:Linux資料夾檔案建立、刪除伺服器Linux
- linux下恢復誤刪除oracle的資料檔案LinuxOracle
- MySQL---資料刪除之後表檔案不變MySql
- Linux檔案刪除但空間不釋放問題篇Linux
- dll檔案刪除不了
- Linux刪除檔案命令Linux
- Git刪除指定檔案Git
- Linux批量刪除檔案Linux
- python 如何刪除資料夾下的所有檔案和子資料夾?Python
- Linux學習筆記:rm刪除檔案和資料夾Linux筆記
- linux|批量建立檔案、資料夾或刪除——萬用字元Linux字元
- win10休眠檔案有必要刪除嗎 刪除休眠檔案的方法Win10
- 達夢資料庫DM8之刪除歸檔日誌檔案資料庫
- u盤裡的檔案無法刪除 如何刪除u盤裡刪不掉的檔案
- linux刪除資料夾命令是什麼 linux刪除檔案和目錄命令大全介紹Linux
- 刪除vmvare的大檔案
- 批量刪除大量小檔案
- [20201112]tmpwatch 刪除檔案.txt
- linux 模糊批量刪除檔案Linux
- MySQL socket檔案被刪除MySql
- Inno Step 打包檔案成.exe時候刪除指定資料夾
- 【Git/Github】刪除遠端倉庫中的檔案/資料夾Github