快速的關(guān)閉ORACLE數(shù)據(jù)庫

1.確定干凈的關(guān)閉數(shù)據(jù)庫 多少回滾(以字節(jié)計(jì)算)
( 為測(cè)試目的,先對(duì)某表做插入,但不commit)

select sum(used_ublk)*(block size of the undo/rollback segment tablespace block size)  from v$transcation;

#其實(shí)這里是有經(jīng)驗(yàn)的,最好這個(gè)回滾量不要太大,否則重新啟動(dòng)之后,要回滾很長(zhǎng)時(shí)間的.
SQL> select sum(used_ublk) from v$transaction; 
SUM(USED_UBLK)
--------------
         1

2.Shutdown abort數(shù)據(jù)庫

#發(fā)起這個(gè)命令之后。將快速終止所有進(jìn)程(客戶端和后臺(tái)進(jìn)程)。不會(huì)產(chǎn)生任何回滾操作。
SQL> shutdown abort

3.Startup Restrict

#做這一步是為了讓數(shù)據(jù)庫回滾,SMON做回滾的時(shí)候,最好不要讓其他Session連進(jìn)來,以免其他Session執(zhí)行同樣的SQL報(bào)錯(cuò)。
SQL> startup restrict
ORACLE instance started.
Total System Global Area 1185853440 bytes
Fixed Size          2252664 bytes
Variable Size         771752072 bytes
Database Buffers      402653184 bytes
Redo Buffers            9195520 bytes
Database mounted.
Database opened.

4.觀察SMON回滾的進(jìn)度[通過下面的查詢查看回滾(塊的個(gè)數(shù))]

SQL> select sum(distinct(ktuxesiz)) from x$ktuxe where ktuxecfl = 'DEAD';

SUM(DISTINCT(KTUXESIZ))
-----------------------
              0

5.當(dāng)回滾完成后【(有 可能 啟動(dòng)后立刻就完成了) 步驟4 結(jié)果為0 】發(fā)起shutdown immediate

SQL> shutdown immediate;

6.最后 再Startup

SQL> startup;
這樣我們就完成了快速干凈的關(guān)閉掉一個(gè)數(shù)據(jù)庫.當(dāng)然在運(yùn)行Shutdown Abort的時(shí)候,也是有一定風(fēng)險(xiǎn)的,這個(gè)風(fēng)險(xiǎn)的幾率極低.我曾經(jīng)在一套8.1.7的數(shù)據(jù)庫上運(yùn)行shurdown abort后出現(xiàn)ORA-00600的錯(cuò)誤.所以我們要執(zhí)行該命令之前要關(guān)注一下I/O,如果I/O不是很大,我覺得是沒問題的。再說了既然MOS有這樣的文檔
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容