ORA-01109:資料庫未開啟(解決)

來源:互聯網
上載者:User

標籤:預存程序   關係   釋放   nbsp   variable   過程   csdn   指定   glob   

本文轉自:http://www.cnblogs.com/sprinng/p/4616399.html

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

SQL> startup mountORA-01081: 無法啟動已在啟動並執行 ORACLE - 請首先關閉它SQL> shutdown immediateORA-01109: 資料庫未開啟已經卸載資料庫。ORACLE 常式已經關閉。SQL> startup mountORACLE 常式已經啟動。Total System Global Area 612368384 bytesFixed Size 1250428 bytesVariable Size 167775108 bytesDatabase Buffers 436207616 bytesRedo Buffers 7135232 bytes資料庫裝載完畢。SQL> alter database datafile ‘F:\ORADB.DEF‘offline drop;  (忘了檔案名稱,可以先執行下面的,會有檔案名稱提示的)資料庫已更改。SQL> alter database open;資料庫已更改。SQL> drop tablespace oradb including contents;資料表空間已刪除。

另:刪除使用者對錶空間的影響http://bbs.csdn.net/topics/390805356

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

資料表空間和使用者沒有直接關係,你建立或者刪除使用者都不會影響資料表空間。
資料表空間只是一個容器,用來存放表,索引,預存程序等。

樓上是對的。使用者和資料表空間沒有必然聯絡。刪除一張表,一般情況下這張表會進入所屬使用者的資源回收筒,如果是刪除使用者,資料會徹底消失,因為資源回收筒隨使用者一起不見了。
當你建立一個資料表空間時,可以給對應的資料檔案指定一個大小,系統會將磁碟空間以指定的格式初始化分配給資料檔案,這時候資料檔案中的空間並未被分配給segment(表和索引),同樣的,當段被刪除時,空間會被回收,但資料檔案並不會自動收縮。也就是你說的資料表空間檔案大小沒變
這就有點像表中的高水位:當表中的記錄被刪除,對應的資料區塊中的空間即可用來插入新的資料,但即使整個資料區塊/盤區為空白,也不會被釋放出該表所在的段。形成了高水位

 

ORA-01109:資料庫未開啟(解決)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.