SQLPlus 啟動與關閉Oracle資料庫
SQLPlus 中啟動與關閉資料庫
啟動sqlplus,以sysdba角色登入資料庫。
以Windows 7 平臺為例,首先啟動OracleServiceSID(SID為資料庫名字)服務,否則sqlplus無法登入。登入後在sqlplus中使用命令關閉資料庫(此時OracleServiceSID服務不會停止),之後可在sqlplus中進行資料庫的開啟與關閉操作。
啟動資料庫
啟動步驟:
(1)、啟動例項。
(2)、安裝資料庫。
(3)、開啟資料庫。
在以startup命令啟動Oracle資料庫時,Oracle將在預設位置$ORACLE_HOEM/dbs(UNIX/Linux)中查詢初始化引數檔案。Oracle將以下面的順序在其中尋找合適的初始化檔案。
(1)、spfile$ORACLE_SID.ora
(2)、spfile.ora
(3)、init$ORACLE_SID.ora
不同啟動模式:
A:startup nomount
啟動例項,僅有例項執行。以這種方式開啟資料庫,將不讀取控制檔案,不開啟資料檔案。作業系統啟動Oracle後臺程序,並分配SGA。(如同一臺拖車的引擎啟動,但沒掛拖車)
後續使資料庫可用輸入如下命令:
alter database mount;
alter database open;
B:startup mount
啟動例項、安裝資料庫。在安裝步驟中,Oracle把例項與資料庫關聯。Oracle開啟並讀取控制檔案,獲取資料檔案和重做日誌檔案的名稱和位置。
啟動後使用 alter database open; 開啟資料庫。
C:startup / startup open 啟動、安裝、開啟資料庫
或
關閉資料庫
A:shutdown /shutdown normal
Oracle 將在關閉資料庫之前等待所有使用者斷開與資料庫的連線。(normal)是Oracle關閉資料庫的預設方式。
(1)、一旦釋出此命令,新的使用者連線無法再建立。
(2)、在關閉資料庫前,Oracle等待所有使用者退出連線。
(3)、重啟資料庫時不需要例項恢復,因為Oracle會在關閉資料庫以前把所有重做日誌緩衝區和資料塊緩衝區內容寫入磁碟,從而資料庫以這種方式關閉時是一致。
(4)、Oracle關閉資料檔案並終止後臺程序,Oracle的SGA被解除分配。
或:
B: shutdown transactional
Oralce 將在斷開所有使用者與資料庫的連線前等待所有活動事務完成(不能建立新的事務),然後關閉資料庫。
(1)、一旦釋出此命令,新的使用者連線無法再建立。
(2)、現有使用者不能啟動新的事務,並且將斷開連線。
(3)、如果某使用者有一個正在執行的事務,在斷開該使用者連線前,Oracle將等待直到該事務完成。
(4)、在所有現有事物完成後,Oracle關閉資料庫例項並釋放記憶體,Oracle將所有重做日誌緩衝區和資料塊緩衝區寫入磁碟。
(5)、資料庫是一致的,重啟資料庫時不需要例項恢復。
C:shutdown immediate
Oracle 不等待事務完成,回退所有活動的事務,斷開已有使用者的連線,關閉資料庫。
(1)、一旦釋出此命令,新的使用者連線無法建立。
(2)、立即斷開所有使用者連線。
(3)、終止所有當前正在執行的事務。
(4)、回退未完成的事務,資料庫保持一致。
(5)、資料庫是一致的,重啟資料庫時不需要例項恢復。
D: shutdown abort
Oracle 不等待當前事務完成,不回退事務,直接斷開使用者連線。
(1)、一旦釋出此命令,新的使用者連線無法建立。
(2)、現有會話終止,不管是否有活動的事務。
(3)、不回退終止的事務。
(4)、不將重做日誌緩衝區和資料緩衝區寫入磁碟。
(5)、終止後臺程序,立即釋放記憶體並關閉資料庫。
(6)、在重啟時,Oracle將執行自動例項恢復,因為不能保證資料庫在關閉時是一致的。
【Oracle建議在備份資料庫之前,應該用shutdown 或 shutdown immediate命令而不是shutdown abort命令】
特別注意:sqlplus 中關閉資料庫後,以Windows 7 為例,OracleServiceSID服務仍處於啟動狀態。
資料庫停頓
停頓資料庫提供了使資料庫處於單使用者方式而不必關閉資料庫的機會。
當DBA使資料庫處於停頓狀態時,有以下限制:
(1)、所有非活動會話不允許釋出任何資料庫命令直到資料庫停頓終止。
(2)、允許完成所有活動會話。
(3)、所有新登入企圖將被排隊,使用者試圖登入不會出現錯誤訊息,這些登入操作似乎被掛起一樣。
(4)、資料庫中只允許DBA的查詢、事務和PL/SQL語句。
使資料庫處於停頓狀態:SQL>alter system quiesce restricted;
終止資料庫停頓狀態:SQL>alter system unquiesce;
資料庫掛起
如果希望在某個特殊的管理性任務中掛起所有I/O操作,可以掛起資料庫。處於掛起狀態時,資料庫禁止讀寫任何資料檔案和控制檔案。例如資料表空間的緊急備份和執行分裂映象等特殊任務時可以掛起資料庫。
掛起:SQL>alter system suspend;
恢復:SQL>alter system resume;