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