啟動/關閉與冷備份Oracle資料庫

rattbell發表於2006-09-05

啟動/關閉Oracle與冷備份資料庫

Oracle資料庫提供了幾種不同的資料庫啟動和關閉方式,對於大多數Oracle DBA來說,啟動和關閉Oracle資料庫最常用的方式就是在命令列方式下的Server Manager。另外也可透過圖形使用者工具(GUI)的Oracle Enterprise Manager來完成系統的啟動和關閉,圖形使用者介面Instance Manager非常簡單,這裡不再詳述。

Oracle 8i以後,系統將Server Manager的所有功能都集中到了SQL*Plus中,也就是說從8i以後對於資料庫的啟動和關閉可以直接透過SQL*Plus來完成,而不再另外需要Server Manager,但系統為了保持向下相容,依舊保留了Server Manager工具。

要啟動和關閉資料庫,必須要以具有Oracle 管理員許可權的使用者登陸,通常也就是以具有SYSDBA許可權的使用者登陸。一般我們常用INTERNAL使用者來啟動和關閉資料庫(INTERNAL使用者實際上是SYS使用者以SYSDBA連線的同義詞)。新版本Oracle資料庫將逐步淘汰INTERNAL這個內部使用者,所以我們最好還是設定DBA使用者具有SYSDBA許可權

[@more@]

資料庫的啟動StartUp

啟動一個資料庫需要三個過程:

a 建立一個Oracle例項 (未裝載階段)

  b 由例項安裝資料庫 (裝載階段)

  c 開啟資料庫 (開啟階段)

Startup命令中,可以透過不同的選項來控制資料庫的不同啟動步驟。

1. STARTUP NOMOUNT

NONOUNT選項僅僅建立一個Oracle例項。讀取init.ora初始化引數檔案、啟動後臺程式、初始化系統全域性區(SGA)。Init.ora檔案定義了例項的配置,包括記憶體結構的大小和啟動後臺程式的數量和型別等。例項名根據Oracle_SID設定,不一定要與開啟的資料庫名稱相同。當例項開啟後,系統將顯示一個SGA記憶體結構和大小的列表。

2. STARTUP MOUNT

該命令建立例項並裝載資料庫,但未開啟資料庫。Oracle系統讀取控制檔案中關於資料檔案和重作日誌檔案的內容,但並不開啟該檔案。這種開啟方式常在資料庫維護操作中使用,如對資料檔案的更名、改變重作日誌以及開啟歸檔方式等。在這種開啟方式下,除了可以看到SGA系統列表以外,系統還會給出"資料庫裝載完畢"的提示。

3. STARTUP

該命令全部完成建立例項、安裝例項和開啟資料庫的三個步驟。此時資料庫使資料檔案和重作日誌檔案線上,通常還會請求一個或者是多個回滾段。這時系統除了可以看到前面Startup Mount方式下的所有提示外,還會給出一個"資料庫已經開啟"的提示。此時,資料庫系統處於正常工作狀態,可以接受使用者請求。

注: ALTER DATABASE MOUNT;

   ALTER DATABASE OPEN;

如果採用STARTUP NOMOUNT或者是STARTUP MOUNT的資料庫開啟命令方式,

要裝載資料庫、開啟資料庫必須執行ALTER DATABASE命令來操作。

4. 其他開啟方式

除了前面介紹的三種資料庫開啟方式選項外,還有另外其他的一些選項。

(1) STARTUP RESTRICT

這種方式下,資料庫將被成功開啟,但僅僅允許一些特權使用者(具有DBA角色的使用者)才可以使用資料庫。這種方式常用來對資料庫進行維護,如資料的匯入/匯出操作時不希望有其他使用者連線到資料庫運算元據。

(2) STARTUP FORCE

該命令其實是強行關閉資料庫(shutdown abort)和啟動資料庫(startup)兩條命令的一個綜合。該命令僅在關閉資料庫遇到問題不能關閉資料庫時採用。

(3) ALTER DATABASE OPEN READ ONLY;

該命令在建立例項以及安裝資料庫後,以只讀方式開啟資料庫。對於那些僅僅提供查詢功能的產品資料庫可以採用這種方式開啟。

資料庫的關閉ShutDown

對於資料庫的關閉,有四種不同的關閉選項:

1SHUTDOWN NORMAL

這是資料庫關閉SHUTDOWN命令的預設選項。

發出該命令後,任何新的連線都將再不允許連線到資料庫。在資料庫關閉之前,Oracle將等待目前連線的所有使用者都從資料庫中退出後才開始關閉資料庫。採用這種方式關閉資料庫,在下一次啟動時不需要進行任何的例項恢復。

但需要注意一點的是,採用這種方式,也許關閉一個資料庫需要幾天時間,也許更長。

2SHUTDOWN IMMEDIATE

這是較常用的一種關閉資料庫的方式,想很快地關閉資料庫,但又想讓資料庫乾淨的關閉,常採用這種方式。

當前正在被Oracle處理的SQL語句立即中斷,系統中任何沒有提交的事務全部回滾。如果系統中存在一個很長的未提交的事務,採用這種方式關閉資料庫也需要一段時間(該事務回滾時間)。系統不等待連線到資料庫的所有使用者退出系統,強行回滾當前所有的活動事務,然後斷開所有的連線使用者。

3SHUTDOWN TRANSACTIONAL

該選項僅在Oracle 8i後才可用。該命令常用來計劃關閉資料庫,它使當前連線到系統且正在活動的事務執行完畢,執行該命令後,任何新的連線和事務都是不允許的。在所有活動的事務完成後,資料庫將和SHUTDOWN IMMEDIATE同樣的方式關閉資料庫。

4SHUTDOWN ABORT

一般應謹慎採用。所有正在執行的SQL語句都將立即中止。所有未提交的事務將不回滾。Oracle也不等待目前連線到資料庫的使用者退出系統。下一次啟動資料庫時需要例項恢復,因此,下一次啟動可能比平時需要更多的時間。

當資料庫處於一種非正常工作狀態,用 shutdown normal或者shutdown immediate命令不能關閉資料庫時,或者 在啟動資料庫例項時遇到問題,可以採用此方式,

1上述四種關閉資料庫的不同方式的區別和聯絡。

Abort

Immediate

Transaction

Normal

關閉方式

×

×

×

×

允許新的連線

×

×

×

×

等待直到當前會話中止

×

×

×

等待直到當前事務中止

×

×

強制Checkpoint

×

資料庫的冷備份Offline Backup

Oracle資料庫的冷備份是作業系統級的備份,必須在資料庫關閉的情況下進行,當資料庫處於開啟狀態時,執行資料庫檔案系統備份是無效的。

冷備份發生在資料庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的資料庫。冷備份是將關鍵性檔案複製到另外位置的一種說法。對於備份Oracle資訊而言,冷備份是最快和最安全的方法。冷備份的優點是:

·是非常快速的備份方法(只需複製檔案)

·容易歸檔(簡單複製即可)

·容易恢復到某個時間點上(只需將檔案再複製回去)

·能與歸檔方法相結合,作資料庫最新狀態的恢復。

·低度維護,高度安全。

但冷備份也有如下不足:

·單獨使用時,只能提供到某一時間點上的恢復。

·在實施備份的全過程中,資料庫必須處於關閉狀態而不能作其它工作。

·若磁碟空間有限,只能複製到磁帶等其它外部儲存裝置上,速度會很慢。

·不能按表或按使用者恢復。

冷備份中必須複製的檔案包括:

·所有資料檔案(Data Files)

·所有控制檔案(Control Files)

·所有聯機日誌 (REDO LOG Files)

·Init.ora檔案(可選)

如果可能的話(主要看效率),應將資訊備份到磁碟上,然後啟動資料庫,

並將所備份的資訊複製到磁帶上(使使用者可以工作;複製的同時,資料庫也可以工作)。

下面是做冷備份的完整例子:

(1) 關閉資料庫$sqldba lmode=y

SQLDBA > connect internal;

SQLDBA > shutdown normal;

(2) 用複製命令備份全部的時間檔案、重做日誌檔案、控制檔案、初始化引數檔案

SQLDBA >! cp < file > < backup directory >

(3) 重啟Oracle資料庫

$sqldba lmode=y

SQLDBA > connect internal;

SQLDBA > startup;

備註: 如果必要,可以對要備份的檔案進行壓縮打包:

wzzip.exe BakPath%filename%.zip pathname*.*

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7830804/viewspace-863117/,如需轉載,請註明出處,否則將追究法律責任。

相關文章