資源描述:
《oracle刪除數(shù)據(jù)文件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、Oracle刪除數(shù)據(jù)文件在我們?cè)敿?xì)介紹之前,我們必須說清楚一點(diǎn):Oracle不提供如刪除表、視圖一樣刪除數(shù)據(jù)文件的方法,數(shù)據(jù)文件是表空間的一部分,所以不能“移走”表空間。一、使用offline數(shù)據(jù)文件的方法非歸檔模式使用:alterdatabasedatafile'...'offlinedrop;歸檔模式使用:alterdatabasedatafile'...'offline;說明:1)以上命令只是將該數(shù)據(jù)文件OFFLINE,而不是在數(shù)據(jù)庫中刪除數(shù)據(jù)文件。該數(shù)據(jù)文件的信息在控制文件種仍存在。查詢v$datafile,仍顯示該文件。2)歸檔模式下offline和of
2、flinedrop效果是一樣的3)offline后,存在此datafile上的對(duì)象將不能訪問4)noarchivelog模式下,只要onlineredo日志沒有被重寫,可以對(duì)這個(gè)文件recover后進(jìn)行online操作實(shí)際使用案例:直接刪除數(shù)據(jù)文件后無法進(jìn)入系統(tǒng)的解決方案正常情況下,刪除表空間的正確方法為:DROPTABLESPACEtablespace_nameINCLUDINGCONTENTSANDDATAFILES;如果沒有通過以上命令刪除而直接刪除了數(shù)據(jù)文件,將導(dǎo)致數(shù)據(jù)庫無法打開。如果直接刪除了數(shù)據(jù)文件普通用戶登錄時(shí),則報(bào)錯(cuò):ORA-01033:ORACL
3、Einitializationorshutdowninprogresssys用戶可以正常登錄但進(jìn)行操作時(shí)(SELECTcount(1)FROMuser_tables),則會(huì)報(bào)錯(cuò):ORA-01219:數(shù)據(jù)庫未打開:僅允許在固定表/視圖中查詢?nèi)绻麍?zhí)行命令alterdatabaseopen以打開數(shù)據(jù)庫時(shí),又報(bào)如下錯(cuò):ORA-01157:無法標(biāo)識(shí)/鎖定數(shù)據(jù)文件12-請(qǐng)參閱DBWR跟蹤文件ORA-01110:數(shù)據(jù)文件12:'E:ORACLEPRODUCT10.2.0ORADATAORCLTSTEST001.DBF'說明數(shù)據(jù)庫沒找到這個(gè)數(shù)據(jù)文件因?yàn)閿?shù)據(jù)文件在沒有被
4、offline的情況下物理刪除了,導(dǎo)致oracle的數(shù)據(jù)不一致,因此啟動(dòng)失敗.通過以下方法即可解決解決方法:sqlplussys/orcl@orclassysdba;SQL>alterdatabasedatafile'E:ORACLEPRODUCT10.2.0ORADATAORCLTSTEST001.DBF'offlinedrop;SQL>alterdatabaseopen;SQL>droptablespaceCTBASEDATA;二、Oracle10GR2開始,可以采用:Altertablespacetablespace_namedropdatafi
5、lefile_name;來刪除一個(gè)空數(shù)據(jù)文件,并且相應(yīng)的數(shù)據(jù)字典信息也會(huì)清除:sys@ORCL>selectfile_id,file_name,tablespace_namefromdba_data_files2wheretablespace_name='USERS';FILE_IDFILE_NAMETABLESPACE_NAME---------------------------------------------------------------------4/u01/app/oracle/oradata/orcl/users01.dbfUSERSsys@
6、ORCL>altertablespaceusersadddatafile2'/u01/app/oracle/oradata/orcl/users02.dbf'size5Mautoextendoff;Tablespacealtered.sys@ORCL>selectfile_id,file_name,tablespace_namefromdba_data_files2wheretablespace_name='USERS';FILE_IDFILE_NAMETABLESPACE_NAME-----------------------------------------
7、-----------------------------4/u01/app/oracle/oradata/orcl/users01.dbfUSERS9/u01/app/oracle/oradata/orcl/users02.dbfUSERSsys@ORCL>droptabletest;Tabledropped.sys@ORCL>createtabletesttablespaceusers2as3select*fromdba_objects;Tablecreated.sys@ORCL>selectSEGMENT_NAME,FILE_ID,BLOCKSfromdba
8、_exte