一、使用offline數(shù)據(jù)文件的方法
10余年的奎屯網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整奎屯建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“奎屯網(wǎng)站設(shè)計(jì)”,“奎屯網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
非歸檔模式使用:alter database datafile '...' offline drop;
歸檔模式使用: alter database datafile '...' offline;
說明:
1) 以上命令只是將該數(shù)據(jù)文件OFFLINE,而不是在數(shù)據(jù)庫中刪除數(shù)據(jù)文件。該數(shù)據(jù)文件的信息在控制文件種仍存在。查詢v$datafile,仍顯示該文件。
2) 歸檔模式下offline和offline drop效果是一樣的
3) offline后,存在此datafile上的對(duì)象將不能訪問
4) noarchivelog模式下,只要online redo日志沒有被重寫,可以對(duì)這個(gè)文件recover后進(jìn)行online操作
實(shí)際使用案例:
直接刪除數(shù)據(jù)文件后無法進(jìn)入系統(tǒng)的解決方案
正常情況下,刪除表空間的正確方法為:
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;
如果沒有通過以上命令刪除而直接刪除了數(shù)據(jù)文件,將導(dǎo)致數(shù)據(jù)庫無法打開。
如果直接刪除了數(shù)據(jù)文件
普通用戶登錄時(shí),則報(bào)錯(cuò):
ORA-01033: ORACLE initialization or shutdown in progress
sys用戶可以正常登錄
但進(jìn)行操作時(shí)(SELECT count(1) FROM user_tables),則會(huì)報(bào)錯(cuò):
ORA-01219: 數(shù)據(jù)庫未打開: 僅允許在固定表/視圖中查詢
如果執(zhí)行命令alter database open以打開數(shù)據(jù)庫時(shí),又報(bào)如下錯(cuò):
ORA-01157: 無法標(biāo)識(shí)/鎖定數(shù)據(jù)文件 12 - 請(qǐng)參閱 DBWR 跟蹤文件
ORA-01110: 數(shù)據(jù)文件 12: 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TSTEST001.DBF'
說明數(shù)據(jù)庫沒找到這個(gè)數(shù)據(jù)文件
因?yàn)閿?shù)據(jù)文件在沒有被offline的情況下物理刪除了,導(dǎo)致oracle的數(shù)據(jù)不一致,因此啟動(dòng)失敗.
通過以下方法即可解決
解決方法:
sqlplus sys/orcl@orcl as sysdba;
SQL alter database datafile 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TSTEST001.DBF' offline drop;
SQL alter database open;
SQL drop tablespace CTBASEDATA;
二、Oracle 10G R2開始,可以采用:Alter tablespace tablespace_name drop datafile file_name;來刪除一個(gè)空數(shù)據(jù)文件,并且相應(yīng)的數(shù)據(jù)字典信息也會(huì)清除:
sys@ORCLselect 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@ORCLalter tablespace users add datafile
2 '/u01/app/oracle/oradata/orcl/users02.dbf' size 5M autoextend off;
Tablespace altered.
sys@ORCLselect 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@ORCLdrop table test;
Table dropped.
sys@ORCLcreate table test tablespace users
2 as
3 select * from dba_objects;
Table created.
sys@ORCLselect 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@ORCLalter table test move tablespace PERFSTAT; --把表移動(dòng)到其它表空間
Table altered.
sys@ORCLselect SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents
2 where file_id=9;
no rows selected
sys@ORCLalter tablespace users drop datafile
2 '/u01/app/oracle/oradata/orcl/users02.dbf';
Tablespace altered.
sys@ORCLselect 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
三、oracle 10g可以刪除臨時(shí)表空間的文件
alter database tempfile '/home/oracle/temp01.dbf' drop including datafiles;
其實(shí)很簡(jiǎn)單的,在軟件界面上就可以執(zhí)行的,點(diǎn)擊刪除憑證就可以了,不建議到數(shù)據(jù)庫里操作,這樣麻煩而且風(fēng)險(xiǎn)很大,憑證主表是gl_voucher,子表是gl_detail。
用Oracle自帶的卸載程序不能從根本上卸載Oracle,從而為下次的安裝留下隱患,那么怎么才能完全卸載Oracle呢?
那就是直接注冊(cè)表清除,步驟如下:
1、 開始-設(shè)置-控制面板-管理工具-服務(wù)
停止所有Oracle服務(wù)。
OracleOraDb11g_home1TNSListener:專門支持遠(yuǎn)程訪問oracle數(shù)據(jù)庫(用Java程序訪問oracle,每次啟動(dòng)此服務(wù)需要1秒鐘左右,) OracleServiceXE:“XE”是數(shù)據(jù)庫名稱。是oracle核心服務(wù),關(guān)系到oracle數(shù)據(jù)庫的整個(gè)運(yùn)行,必須保證這個(gè)服務(wù)開啟,如果停止就無法連接到oracle服務(wù)器。啟動(dòng)這個(gè)服務(wù)大概需要2分鐘,如果是自動(dòng)啟動(dòng),你會(huì)發(fā)現(xiàn)你的電腦會(huì)比之前大概慢2分鐘。
2、 (忽略)開始-程序-Oracle - OraDb11g_home1-Oracle安裝產(chǎn)品- Universal Installer
卸裝所有Oracle產(chǎn)品,但Universal Installer本身不能被刪除[如果第二步執(zhí)行失敗,跳到第三步,大部份第二步是失敗的]
3、 運(yùn)行regedit,選擇HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按del鍵刪除這個(gè)入口。
4、 運(yùn)行regedit,刪除以下這三個(gè)位置中的所有Oracle入口。
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\【下】所有Oracle刪除
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\【下】所有Oracle刪除
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\【下】所有Oracle刪除
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\【下】所有Oracle刪除
5、 運(yùn)行regedit,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\【下】所有Oracle刪除,
刪除所有Oracle入口。
6、 開始-設(shè)置-控制面板-系統(tǒng)-高級(jí)-環(huán)境變量
刪除環(huán)境變量CLASSPATH和PATH中有關(guān)Oracle的設(shè)定
7、 從桌面上、STARTUP(啟動(dòng))組、程序菜單中,刪除所有有關(guān)Oracle的組和圖標(biāo)
8、 刪除e:/oracleDB目錄
9、 【重新啟動(dòng)計(jì)算機(jī)】,重起后才能完全刪除Oracle所在目錄
10、 刪除與Oracle有關(guān)的文件,選擇Oracle所在的缺省目錄C:\Oracle,刪除這個(gè)入
口目錄及所有子目錄,并從Windows目錄(一般為C:\WINDOWS)下刪除oralce文件等等。
11、 在運(yùn)行框中輸入“win.ini”,回車。WIN.INI文件中若有[ORACLE]的標(biāo)記段,刪除該段
12、 【如有必要】,刪除所有Oracle相關(guān)的ODBC的DSN
13、 到事件查看器中,刪除Oracle相關(guān)的日志
說明:
如果有個(gè)別DLL文件無法刪除的情況,則不用理會(huì),重新啟動(dòng),開始新的安裝,
安裝時(shí),選擇一個(gè)新的目錄,則,安裝完畢并重新啟動(dòng)后,老的目錄及文件就可以刪除掉了
刪除表還是?
如果是刪除表,2種方式
delete是行級(jí)刪除,刪除行
truncate tablename是清空表
如果要?jiǎng)h除表 drop tablename