㈠ 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)兩條命令的一個綜合。該命令僅在關閉資料庫遇到問題不能關閉資料庫時採用。
(3) ALTER DATABASE OPEN READ ONLY;
該命令在創建實例以及安裝資料庫後,以只讀方式打開資料庫。對於那些僅僅提供查詢功能的產品資料庫可以採用這種方式打開。
三、資料庫的關閉(SHUTDOWN)
對於資料庫的關閉,有四種不同的關閉選項,下面對其進行一一介紹。
1、SHUTDOWN NORMAL
這是資料庫關閉SHUTDOWN命令的確省選項。也就是說如果你發出SHUTDOWN這樣的命令,也即是SHUTDOWN NORNAL的意思。
發出該命令後,任何新的連接都將再不允許連接到資料庫。在資料庫關閉之前,Oracle將等待目前連接的所有用戶都從資料庫中退出後才開始關閉資料庫。採用這種方式關閉資料庫,在下一次啟動時不需要進行任何的實例恢復。但需要注意一點的是,採用這種方式,也許關閉一個資料庫需要幾天時間,也許更長。
2、SHUTDOWN IMMEDIATE
這是我們常用的一種關閉資料庫的方式,想很快地關閉資料庫,但又想讓資料庫干凈的關閉,常採用這種方式。
當前正在被Oracle處理的SQL語句立即中斷,系統中任何沒有提交的事務全部回滾。如果系統中存在一個很長的未提交的事務,採用這種方式關閉資料庫也需要一段時間(該事務回滾時間)。系統不等待連接到資料庫的所有用戶退出系統,強行回滾當前所有的活動事務,然後斷開所有的連接用戶。
3、SHUTDOWN TRANSACTIONAL
該選項僅在Oracle 8i後才可以使用。該命令常用來計劃關閉資料庫,它使當前連接到系統且正在活動的事務執行完畢,運行該命令後,任何新的連接和事務都是不允許的。在所有活動的事務完成後,資料庫將和SHUTDOWN IMMEDIATE同樣的方式關閉資料庫。
4、SHUTDOWN ABORT
這是關閉資料庫的最後一招,也是在沒有任何辦法關閉資料庫的情況下才不得不採用的方式,一般不要採用。如果下列情況出現時可以考慮採用這種方式關閉資料庫。
1、 資料庫處於一種非正常工作狀態,不能用shutdown normal或者shutdown immediate這樣的命令關閉資料庫;
2、 需要立即關閉資料庫;
3、 在啟動資料庫實例時遇到問題;
所有正在運行的SQL語句都將立即中止。所有未提交的事務將不回滾。Oracle也不等待目前連接到資料庫的用戶退出系統。下一次啟動資料庫時需要實例恢復,因此,下一次啟動可能比平時需要更多的時間。
表1可以清楚地看到上述四種不同關閉資料庫的區別和聯系。
關閉方式 A I T N
允許新的連接 × × × ×
等待直到當前會話中止 × × × √
等待直到當前事務中止 × × √ √
強制CheckPoint,關閉所有文件 × √ √ √
其中:A-Abort I-Immediate T-Transaction N-Nornal
㈡ ORACLE資料庫啟動與關閉的步驟
oracle的啟動和關閉
一、sql*plus方式:
用sql*plus來連接到Oracle
Sqlplus /nolog 是以不連接資料庫的方式啟動sql*plus
Connect /as sysdba 是以DBA身份連接到oracle
or35.gif
. 啟動
or36.gif
Startup就可以啟動了。
不過oracle啟動模式有3種:
l Startup nomount (nomount模式)啟動實例不載入資料庫。
l Startup mount (mount模式)啟動實例載入資料庫但不打開資料庫
l Startup (open 模式)啟動實例載入並打開資料庫,就是我們上面所用的命令
Nomount模式中oracle僅為實例創建各種內存結構和服務進程,不會打開任何資料庫文件,
所以說:
1) 創建新資料庫
2) 重建控制文件
這2種操作都必須在這個模式下進行。
Mount模式中oracle只裝載資料庫但不打開資料庫,所以說:
1) 重命名數據文件
2) 添加、刪除和重命名重做日子文件
3) 執行資料庫完全恢復操作
4) 改變資料庫的歸檔模式
這4種操作都必須在這個模式下進行
Open模式(就是我們上面的startup不帶任何參數的)正常啟動。
當然這3種模式之間可以轉換:
Alter database mount(nomount模式)—〉alter database open(mount 模式)—〉(open模式)
當然還有其它一些情況,在我們open模式下可以將資料庫設置為非受限狀態和受限狀態
在受限狀態下,只有DBA才能訪問資料庫,所以說:
1) 執行數據導入導出
2) 使用sql*loader提取外部數據
3) 需要暫時拒絕普通用戶訪問資料庫
4) 進行資料庫移植或者升級操作
這4種操作都必須在這個狀態下進行
在打開資料庫時使用startup restrict命令即進入受限狀態。
or37.gif
使用alter system disable restricted session命令即可以將受限狀態改變為非受限狀態。
or38.gif
使用alter system enable restricted session命令可以將非受限狀態變為受限狀態
or39.gif
使用alter database open read only可以使資料庫進入只讀狀態。
使用alter database open read write 可以使資料庫進入讀寫狀態。
當然在某些情況下可能是用上述各種啟動方式都無法成功啟動資料庫,這個時候就要使用startup force命令來強行啟動資料庫。當然誰都不想碰到這種情況:)
or40.gif
c.關閉資料庫
1)正常關閉 shutdown
2) 立即關閉 shutdown immediate
3) 關閉事務 shutdown transactional
4) 強行關閉 shutdown abort,當然誰都不想碰到這種情況。
二、OEM為例
Oracle Enterprise Management(OEM),
跟第一小節講的Sqlplus /nolog ,Connect /as sysdba 這2個命令差不多的操作如圖:
or29.gif
or30.gif
or31.gif
按照上面的一步步操作就能夠連接到資料庫。
下面是如何啟動和關閉資料庫:
or32.gif
點擊我們前幾章創建的ORADB01這個資料庫樹中的配置選項,這個裡面的:
1)已啟動 對應 Nomount模式
2)已轉載 對應 mount模式
3)打開 對應 open模式
當你點擊應有按鈕之後就會進入如下對話框
or33.gif
1)正常 對應 正常關閉 shutdown
2) 立即 對應 立即關閉 shutdown immediate
3) 事務處理 對應 關閉事務 shutdown transactional
4) 中止 對應 強行關閉 shutdown abort
確定之後出現如下對話框
or34.gif
限制對資料庫訪問 對應 alter system disable restricted session
alter system enable restricted session
只讀模式 對應 alter database open read only
alter database open read write
簡單吧,sql*plus的一大堆命令到OEM中變成了幾個按鈕罷了。
3.windows控制台
or41.gif
這個熟悉吧:
oracle ************Agent 用於OEM管理結構
oracle************HTTPSERVER oracle Web伺服器
oracle ************ManagementServer 用於OEM管理結構
oracle ************ TNSListener oracle網路結構的伺服器端進程
oracle ************OEMREP 資料檔案庫文件
oracle ************ORADB001 用戶創建的資料庫
我一般都把所有的服務全部選成手動啟動,如果全開,內存要用掉700M.............
㈢ Oracle 資料庫啟動順序和在各個階段需要什麼文件
資料庫啟動時,首先通過ORACLE_SID ,來找到的伺服器參數文件(如spfileorcl11g.ora),並可以啟動到nomount狀態,此時實例啟動;
通過伺服器參數文件(包含控制文件的路徑) 可以找到控制文件的位置(所有的控制文件要都可用且一致),然後就可以啟動到mount狀態,此時資料庫被裝載;
跟據控制文件里的scn號和數據文件頭部的scn對比,一致,即可以啟動到open狀態,此時資料庫打開。