Oracle數據庫的幾種啟動和關閉方式
有以下幾種啟動方式:
1、startup nomount
非安裝啟動,這種方式啟動下可執行:重建控制文件、重建數據庫
讀取init.ora文件,啟動instance,即啟動SGA和后台進程,這種啟動只需要init.ora文件。
2、startup mount dbname
安裝啟動,這種方式啟動下可執行:
數據庫日志歸檔、
數據庫介質恢復、
使數據文件聯機或脫機,
重新定位數據文件、重做日志文件。
執行“nomount”,然后打開控制文件,確認數據文件和聯機日志文件的位置,
但此時不對數據文件和日志文件進行校驗檢查。
3、startup open dbname
先執行“nomount”,然后執行“mount”,再打開包括Redo log文件在內的所有數據庫文件,
這種方式下可訪問數據庫中的數據。
4、startup,等於以下三個命令
startup nomount
alter database mount
alter database open
5、startup restrict
約束方式啟動
這種方式能夠啟動數據庫,但只允許具有一定特權的用戶訪問
非特權用戶訪問時,會出現以下提示:
ERROR:
ORA-01035: ORACLE 只允許具有 RESTRICTED SESSION 權限的用戶使用
6、startup force
強制啟動方式
當不能關閉數據庫時,可以用startup force來完成數據庫的關閉
先關閉數據庫,再執行正常啟動數據庫命令
7、startup pfile=參數文件名
帶初始化參數文件的啟動方式
先讀取參數文件,再按參數文件中的設置啟動數據庫
例:startup pfile=E:\Oracle\admin\oradb\pfile\init.ora
8、startup EXCLUSIVE
有三種關閉方式:
1、shutdown normal
正常方式關閉數據庫。
2、shutdown immediate
立即方式關閉數據庫。
在SVRMGRL中執行shutdown immediate,數據庫並不立即關閉,
而是在Oracle執行某些清除工作后才關閉(終止會話、釋放會話資源),
當使用shutdown不能關閉數據庫時,shutdown immediate可以完成數據庫關閉的操作。
3、shutdown abort
直接關閉數據庫,正在訪問數據庫的會話會被突然終止,
如果數據庫中有大量操作正在執行,這時執行shutdown abort后,重新啟動數據庫需要很長時間。
Oracle數據庫提供了幾種不同的數據庫啟動和關閉方式,本文將具體介紹這些啟動和關閉方式之間的區別以及它們各自不同的功能。
一、啟動和關閉Oracle數據庫
對於大多數Oracle DBA來說,啟動和關閉Oracle數據庫最常用的方式就是在命令行方式下的Server Manager。從Oracle 8i以后,系統將Server Manager的所有功能都集中到了
SQL*Plus中,也就是說從8i以后對於數據庫的啟動和關閉可以直接通過SQL*Plus來完成,而不再另外需要Server Manager,但系統為了保持向下兼容,依舊保留了Server Manager
工具。另外也可通過圖形用戶工具(GUI)的Oracle Enterprise Manager來完成系統的啟動和關閉,圖形用戶界面Instance Manager非常簡單,這里不再詳述。
要啟動和關閉數據庫,必須要以具有Oracle 治理員權限的用戶登陸,通常也就是以具有SYSDBA權限的用戶登陸。一般我們常用INTERNAL用戶來啟動和關閉數據庫(INTERNAL用
戶實際上是SYS用戶以SYSDBA連接的同義詞)。Oracle數據庫的新版本將逐步淘汰INTERNAL這個內部用戶,所以我們最好還是設置DBA用戶具有SYSDBA權限。
二、數據庫的啟動(STARTUP)
啟動一個數據庫需要三個步驟:
1、 創建一個Oracle實例(非安裝階段)
2、 由實例安裝數據庫(安裝階段)
3、 打開數據庫(打開階段)
在Startup命令中,可以通過不同的選項來控制數據庫的不同啟動步驟。
1、STARTUP NOMOUNT
NONOUNT選項僅僅創建一個Oracle實例。讀取init.ora初始化參數文件、啟動后台進程、初始化系統全局區(SGA)。Init.ora 文件定義了實例的配置,包括內存結構的大小和
啟動后台進程的數量和類型等。實例名根據Oracle_SID設置,不一定要與打開的數據庫名稱相同。當實例打開后,系統將顯示一個SGA內存結構和大小的列表,如下所示:
SQL> startup nomount
ORACLE 例程已經啟動。
Total System Global Area 35431692 bytes
Fixed Size 70924 bytes
Variable Size 18505728 bytes
Database Buffers 16777216 bytes
Redo Buffers 77824 bytes
2、STARTUP MOUNT
該命令創建實例並且安裝數據庫,但沒有打開數據庫。Oracle系統讀取控制文件中關於數據文件和重作日志文件的內容,但並不打開該文件。這種打開方式常在數據庫維護操
作中使用,如對數據文件的更名、改變重作日志以及打開歸檔方式等。在這種打開方式下,除了可以看到SGA系統列表以外,系統還會給出\"數據庫裝載完畢\"的提示。
3、STARTUP
該命令完成創建實例、安裝實例和打開數據庫的所有三個步驟。此時數據庫使數據文件和重作日志文件在線,通常還會請求一個或者是多個回滾段。這時系統除了可以看到前
面Startup Mount方式下的所有提示外,還會給出一個\"數據庫已經打開\"的提示。此時,數據庫系統處於正常工作狀態,可以接受用戶請求。
假如采用STARTUP NOMOUNT或者是STARTUP MOUNT的數據庫打開命令方式,必須采用ALTER DATABASE命令來執行打開數據庫的操作。例如,假如你以STARTUP NOMOUNT方式打開數
據庫,也就是說實例已經創建,但是數據庫沒有安裝和打開。這是必須運行下面的兩條命令,數據庫才能正確啟動。
ALTER DATABASE MOUNT;
ALTER DATABASE OPEN;
而假如以STARTUP MOUNT方式啟動數據庫,只需要運行下面一條命令即可以打開數據庫:
ALTER DATABASE OPEN.
4、其他打開方式
除了前面介紹的三種數據庫打開方式選項外,還有另外其他的一些選項。
(1) STARTUP RESTRICT
這種方式下,數據庫將被成功打開,但僅僅答應一些特權用戶(具有DBA角色的用戶)才可以使用數據庫。這種方式常用來對數據庫進行維護,如數據的導入/導出操作時不希
望有其他用戶連接到數據庫操作數據。
(2) STARTUP FORCE
該命令其實是強行關閉數據庫(shutdown abort)和啟動數據庫(startup)兩條命令的一個綜合。該命令僅在關閉數據庫碰到問題不能關閉數據庫時采用。
STARTUP FORCE選項: 如果在用正常方式啟動數據庫時遇到了困難,可以使用STARTUP FORCE選項。STARTUP FORCE選項首先異常關閉數據庫,然后重新啟動它。
(3) ALTER DATABASE OPEN READ ONLY;
該命令在創建實例以及安裝數據庫后,以只讀方式打開數據庫。對於那些僅僅提供查詢功能的產品數據庫可以采用這種方式打開。
_____________________________________________
RMAN> startup nomount
已連接到目標數據庫 (未啟動)
Oracle 例程已啟動
系統全局區域總計 135338868 字節
Fixed Size 453492 字節
Variable Size 109051904 字節
Database Buffers 25165824 字節
Redo Buffers 667648 字節
RMAN> startup mount
已連接到目標數據庫 (未啟動)
Oracle 例程已啟動
數據庫已加載
系統全局區域總計 135338868 字節
Fixed Size 453492 字節
Variable Size 109051904 字節
Database Buffers 25165824 字節
Redo Buffers 667648 字節
RMAN> startup
已連接到目標數據庫 (未啟動)
Oracle 例程已啟動
數據庫已加載
數據庫已打開
系統全局區域總計 135338868 字節
Fixed Size 453492 字節
Variable Size 109051904 字節
Database Buffers 25165824 字節
Redo Buffers 667648 字節
上面是三種類型的截圖,startup nomount只是啟動了實例而沒有啟動數據庫,startup mount啟動了實例,並加載了數據庫,但是數據庫沒有打開,startup是最全的,實例,數據庫加載,數據庫打開都完成。
例如下:
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>cd\
C:\>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 9月 21 15:21:50 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect / @dwj as sysdba
已連接。
SQL> startup nomount
ORA-01081: 無法啟動已在運行的 ORACLE --- 請首先關閉
SQL> shutdown abort
ORACLE 例程已經關閉。
SQL> startup nomount
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
SQL>