Oracle數(shù)據(jù)庫關(guān)閉的方法
1.正常關(guān)閉
正常關(guān)閉數(shù)據(jù)庫所用的選項(xiàng)是normal,數(shù)據(jù)庫在關(guān)閉前將檢查所有的連接,并且發(fā)出命令后不允許再有新的用戶連接,在等待所有連接都斷開后再關(guān)閉數(shù)據(jù)庫,再次啟動數(shù)據(jù)庫不需要任何恢復(fù)過程。
聯(lián)入sys用戶
sql>shutdown normal
2.緊急關(guān)閉
該方式用在某些緊急的情況下,比如通知馬上停電,此時需要緊急關(guān)閉數(shù)據(jù)庫以應(yīng)付這些情況。這種方式用的選項(xiàng)是immediate,在這種方式下并不等待所有的用戶斷開連接再關(guān)閉,而是由系統(tǒng)斷開連接,然后關(guān)閉數(shù)據(jù)庫。
sql>shutdown immediate;
一旦執(zhí)行了這條命令,則將當(dāng)前正在處理的sql語句馬上停止,然后將所有未提交的事務(wù)回退,并且不等待當(dāng)前聯(lián)入數(shù)據(jù)庫的用戶斷開連接,而是由系統(tǒng)強(qiáng)行將各個聯(lián)接斷開。在下次啟動數(shù)據(jù)庫時要執(zhí)行恢復(fù)動作,不過是由系統(tǒng)自動執(zhí)行的,用戶不必去了解它。
3.異常關(guān)閉
異常關(guān)閉選項(xiàng)是abort,此種方式下系統(tǒng)并不做任何檢查和斷開用戶操作以及回退操作,而是直接將數(shù)據(jù)庫現(xiàn)場撤銷,這樣現(xiàn)場中的數(shù)據(jù)庫數(shù)據(jù)當(dāng)然就無效了,數(shù)據(jù)庫自然也就被關(guān)掉了。
sql>shutdown abort;
以abort方式關(guān)閉數(shù)據(jù)庫時只有一行關(guān)閉信息表示關(guān)閉了數(shù)據(jù)庫現(xiàn)場。以abort方式關(guān)閉的數(shù)據(jù)庫再次啟動時必須要進(jìn)行恢復(fù)動作,這些恢復(fù)操作同樣是系統(tǒng)自動來完成的,需要的時間較長。
? 以abort方式關(guān)閉數(shù)據(jù)庫類似于os的kill命令,是直接殺掉相關(guān)進(jìn)程,因此,這個關(guān)閉db的方式是非正常關(guān)閉db,控制文件中的last change的scn是空,從新startup db時需要進(jìn)行實(shí)力的恢復(fù)?。?!