ORA 01109 資料庫未開啟 解決

2021-09-07 14:59:26 字數 1571 閱讀 6389

本文**:

執行drop user user_name cascade;刪除使用者及使用者,然後又刪除了.dbf檔案,想重新建立使用者然後執行sql指令碼時,出現標題所示的問題,解決方法如下:

sql>

startup mount

ora-

01081: 無法啟動已在執行的 oracle -

請首先關閉它

sql>

shutdown

immediate

ora-

01109

: 資料庫未開啟

已經解除安裝資料庫。

oracle 例程已經關閉。

sql>

startup mount

oracle 例程已經啟動。

total system global area

612368384

bytes

fixed size

1250428

bytes

variable size

167775108

bytes

database buffers 436207616

bytes

redo buffers

7135232

bytes

資料庫裝載完畢。

sql>

alter

database datafile '

f:\oradb.def

'offline drop

; (忘了檔名,可以先執行下面的,會有檔名提示的)

資料庫已更改。

sql>

alter

database

open

;資料庫已更改。

sql>

drop

tablespace oradb including contents;

表空間已刪除。

另:刪除使用者對錶空間的影響

專案中發現乙個疑問。就是oracle在建立使用者的時候,如果使用者使用的是自己建立的表空間來存放資料,那麼oracle在刪除此使用者的時候對應的此表空間中資料是否也一併刪除? 但是實際測試發現使用者刪除了但是對應的表空間的資料卻沒有刪除,因為表空間檔案大小根本沒變。這是為什麼?我有一點自己的理解,但是對oracle實現原理不是很了解所以不敢妄自發表意見,請各位高手談談各自的看法。

表空間和使用者沒有直接關係,你建立或者刪除使用者都不會影響表空間。

表空間只是乙個容器,用來存放表,索引,儲存過程等。

樓上是對的。使用者和表空間沒有必然聯絡。刪除一張表,一般情況下這張表會進入所屬使用者的**站,如果是刪除使用者,資料會徹底消失,因為**站隨使用者一起不見了。

當你建立乙個表空間時,可以給對應的資料檔案指定乙個大小,系統會將磁碟空間以指定的格式初始化分配給資料檔案,這時候資料檔案中的空間並未被分配給segment(表和索引),同樣的,當段被刪除時,空間會被**,但資料檔案並不會自動收縮。也就是你說的表空間檔案大小沒變

這就有點像表中的高水位:當表中的記錄被刪除,對應的資料塊中的空間即可用來插入新的資料,但即使整個資料塊/盤區為空,也不會被釋放出該表所在的段。形成了高水位

ORA 01109 資料庫未開啟

在此之前做了這樣一操作,在plsql建立了2表空間,由於裝的是oracle精簡版所以建立表空間大小超過4g就不能建立,然後我就手動把錶空間給刪除了,站也給刪了,問題就出現了,一直都報資料庫未開啟。解決方案 造成上述問題的原因是誤把 f oradb.def 這個資料檔案刪掉了,這種刪法是不正常的,如果...

ORA 01109 資料庫未開啟 解決

本文 執行drop user user name cascade 刪除使用者及使用者,然後又刪除了.dbf檔案,想重新建立使用者然後執行sql指令碼時,出現標題所示的問題,解決方法如下 sql startup mount ora 01081 無法啟動已在執行的 oracle 請首先關閉它 sql s...

ORA 01109 資料庫未開啟 解決

sql startup mount ora 01081 無法啟動已在執行的 oracle 請首先關閉它 sql shutdown immediate ora 01109 資料庫未開啟 已經解除安裝資料庫。oracle 例程已經關閉。sql startup mount oracle 例程已經啟動。to...