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
- 如何正確的刪除表空間資料檔案
- oracle刪除(釋放)資料檔案/表空間流程Oracle
- Oracle 刪除資料檔案Oracle
- oracle刪除資料檔案Oracle
- oracle 失誤刪掉資料檔案後,刪除表空間操作Oracle
- oracle 小議如何從表空間 刪除 資料檔案Oracle
- Oracle 刪除資料後釋放資料檔案所佔磁碟空間Oracle
- Linux下批量刪除空檔案或者刪除指定大小的檔案Linux
- 轉:Oracle刪除資料檔案Oracle
- oracle徹底刪除資料檔案Oracle
- gulp刪除檔案和資料夾
- 刪除表空間,資料檔案也刪除後,但作業系統層面上空閒空間不見增加。作業系統
- Linux下資料檔案刪除檔案系統空間不釋放的問題Linux
- Oracle10g刪除資料檔案Oracle
- RM 刪除資料檔案恢復操作
- 批量刪除空的資料夾
- 刪除資料庫表空間資料庫
- 刪除表空間和表空間包含的檔案
- 誤刪oracle資料庫表空間檔案Oracle資料庫
- RM刪除檔案空間釋放詳解
- Linux檔案刪除空間未釋放Linux
- hpux刪除檔案後空間不釋放UX
- [待整理]oracle10g刪除(釋放)資料檔案/表空間流程Oracle
- 1.7.8. 刪除資料庫密碼檔案資料庫密碼
- 資料檔案誤刪除(DM_單機)
- FileUtils類建立、刪除檔案及資料夾
- centos徹底刪除資料夾、檔案命令CentOS
- Oracle恢復誤刪除的資料檔案Oracle
- 恢復rm -f物理刪除資料檔案
- 恢復被rm意外刪除資料檔案
- 刪除檔案
- UNDO表空間下的資料檔案被誤刪除後的處理方法
- Linux 刪除檔案後空間不釋放Linux
- 刪除某個檔案或資料夾時,系統提示無法刪除!
- 非歸檔資料檔案誤刪除解決辦法
- hadoop 資料夾檔案的建立與刪除Hadoop