一、數(shù)據(jù)庫(kù)的關(guān)閉
?
??? 要關(guān)閉數(shù)據(jù)庫(kù)和實(shí)例,必須以SYSDBA或SYSOPER連接,且不能是通過(guò)共享服務(wù)器進(jìn)程連接到數(shù)據(jù)庫(kù)的
?
??? 1、SHUTDOWN NORMAL:正常模式關(guān)閉
?
????? --執(zhí)行之后不允許再建立新的連接
????? --等待所有當(dāng)前連接解除后關(guān)閉數(shù)據(jù)庫(kù)
?
??? 2、SHUTDOWN IMMEDIATE:立即關(guān)閉
?
????? --執(zhí)行之后不允許再建立新連接,也不允許啟動(dòng)新事務(wù)
????? --沒(méi)有提交的事務(wù)都會(huì)回滾(時(shí)間很長(zhǎng)也回滾)
????? --解除所有當(dāng)前連接后直接關(guān)閉
?
??? 3、SHUTDOWN TRANSACTIONAL:事務(wù)關(guān)閉
?
????? --執(zhí)行之后不允許建立新的連接,也不允許啟動(dòng)新的事務(wù)
????? --在所有當(dāng)前連接的事務(wù)完成之后即斷開連接
??????--之后關(guān)閉
?
??? 4、SHUTDOWN ABORT:終止關(guān)閉
?
????? --立即終止Oracle正在處理的SQL語(yǔ)句
????? --不回滾未提交事務(wù)
????? --不等待用戶結(jié)束連接,直接斷開
?
?
二、禁止操作數(shù)據(jù)庫(kù)
?
??? 在某些時(shí)候需要只有DBA才能執(zhí)行的事務(wù)、查詢、讀取等,此時(shí)稱為靜止?fàn)顟B(tài)。
?
??? 理論上來(lái)說(shuō),這個(gè)模式和啟動(dòng)時(shí)的受限模式是類似的,但是這個(gè)不用關(guān)閉數(shù)據(jù)庫(kù),而且限制也要少得多。
?
??? 在禁止操作數(shù)據(jù)庫(kù)中,DBA被定義為SYS或SYSTEM,其他用戶即使有SYSDBA權(quán)限也不能操作。
?
?
??? 1、將數(shù)據(jù)庫(kù)置于靜止?fàn)顟B(tài)
?
??? ALTER SYSTEM QUIESCE RESTRICTED;
?
??? 注1:在執(zhí)行該命令之后,禁止所有非活動(dòng)會(huì)話變成活動(dòng)的,等待活動(dòng)的會(huì)話終止;所有非DBA登錄將被排隊(duì)
??? 注2:在RAC中,QUIESCE RESTRICTED將對(duì)所有實(shí)例有效
??? 注3:若終止請(qǐng)求,則將撤銷所有產(chǎn)生的效果
??? 注4:連續(xù)多個(gè)OCI讀取執(zhí)行查詢,那么只會(huì)等待當(dāng)前的讀取結(jié)束
??? 注5:在靜止?fàn)顟B(tài)不能進(jìn)行冷備份,要熱備份時(shí)也需要ALTER TABLESPACE name BEGIN BACKUP;
?
??? 2、還原為Normal狀態(tài)
?
??? ALTER SYSTEM UNQUIESCE;
?
??? 注1:RAC中不需要在同一個(gè)實(shí)例中進(jìn)行還原,任意都可以
??? 注2:當(dāng)UNQUIESCE異常終止時(shí),會(huì)確保非靜止操作的結(jié)束
?
??? 3、查詢狀態(tài)
?
??? select active_state from v$instance;
?
??? NORMAL:非禁止?fàn)顟B(tài)
??? QUIESCING:禁止?fàn)顟B(tài),但仍激活非DBA會(huì)話運(yùn)行
??? QUIESCED:禁止?fàn)顟B(tài),不激活任何非DBA會(huì)話
?
?
三、暫停、繼續(xù)數(shù)據(jù)庫(kù)
?
??? 1、暫停
?
??? ALTER SYSTEM SUSPEND;
?
??? 注1:實(shí)際上是中斷了所有數(shù)據(jù)文件和控制文件的輸入和輸出;
??? 注2:可使數(shù)據(jù)庫(kù)在沒(méi)有任何輸入輸出的情況下進(jìn)行備份
??? 注3:執(zhí)行之后會(huì)允許完成所有當(dāng)前存在的I/O操作,并將新的訪問(wèn)置于靜止?fàn)顟B(tài)
??? 注4:RAC中也是針對(duì)所有實(shí)例生效
?
??? 2、繼續(xù)
?
??? ALTER SYSTEM RESUME;
?
??? 注:不能用SUSPEND來(lái)替代將表空間置于熱備份模式!!
?
??? 3、查詢狀態(tài)
?
??? select database_status from v$instance;
?
??? ACTIVE: 活動(dòng)狀態(tài)
??? SUSPEND:暫停狀態(tài)
?
?
?
?