小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

第十二章 數(shù)據(jù)庫和實例啟動和關(guān)閉

 月影斜 2010-05-08

 Oracle 概念(Oracle 10.2) 第十二章 數(shù)據(jù)庫和實例啟動和關(guān)閉

12、數(shù)據(jù)庫和實例啟動和關(guān)閉

這一章解釋了啟動和關(guān)閉Oracle實例和數(shù)據(jù)庫的過程。

這一章包含下列主題:

Oracle實例介紹

實例和數(shù)據(jù)庫啟動概述

數(shù)據(jù)庫和實例管理概述

Oracle實例介紹

每個運行著的Oracle數(shù)據(jù)庫和一個Oracle實例關(guān)聯(lián)。當(dāng)一個數(shù)據(jù)庫在數(shù)據(jù)庫服務(wù)器(不論計算機類型如何)上啟動時,Oracle分配一個叫系統(tǒng)全局區(qū)(SGA)的內(nèi)存區(qū)域和啟動一個或多個Oracle進(jìn)程。SGA和Oracle進(jìn)程的合集叫做一個Oracle實例。實例的內(nèi)存和進(jìn)程高效的管理相關(guān)的數(shù)據(jù)庫數(shù)據(jù),為數(shù)據(jù)庫的一個或多個用戶服務(wù)。

圖12-1顯示一個Oracle實例

圖12-1 一個Oracle實例


實例和數(shù)據(jù)庫

啟動一個實例之后,Oracle將一個實例和特定數(shù)據(jù)庫關(guān)聯(lián)。這是一個掛接(mounted)數(shù)據(jù)庫。數(shù)據(jù)庫然后準(zhǔn)備被打開,這樣就可以允許認(rèn)證客戶訪問。

多個實例可以同時運行在一臺機器上,每個訪問它們自己的物理數(shù)據(jù)庫。在大規(guī)模的集群系統(tǒng)中,真正應(yīng)用集群(RAC)可以讓多個實例訪問單個數(shù)據(jù)庫。

只有數(shù)據(jù)庫管理員可以啟動一個實例和打開數(shù)據(jù)庫。如果數(shù)據(jù)是開放狀態(tài),那么數(shù)據(jù)庫管理員可以關(guān)閉數(shù)據(jù)庫,所以數(shù)據(jù)庫就處于關(guān)閉狀態(tài)。當(dāng)一個數(shù)據(jù)庫被關(guān)閉,用戶不能訪問它包含的任何信息。

使用管理員權(quán)限連接Oracle能啟動和關(guān)閉數(shù)據(jù)庫。通常用戶不能控制當(dāng)前數(shù)據(jù)庫的狀態(tài)。

使用管理員權(quán)限連接

數(shù)據(jù)庫啟動和關(guān)閉是權(quán)力很大的管理員選項,只能由使用管理權(quán)限連接Oracle的用戶操作。依賴于操作系統(tǒng)的不同,一個用戶可以在下列情況之一構(gòu)建管理員權(quán)限:

用戶的操作系統(tǒng)權(quán)限允許他或者她使用管理權(quán)限連接(操作系統(tǒng)驗證)

被賦予SYSDBA或者SYSOPER權(quán)限的用戶和數(shù)據(jù)庫密碼文件確認(rèn)擁有數(shù)據(jù)庫管理員權(quán)限的用戶

當(dāng)你以SYSDBA權(quán)限連接,你處于SYS用戶的模式下。當(dāng)你以SYSOPER權(quán)限連接,你處于公共模式下。SYSOPER權(quán)限是SYSDBA權(quán)限的子集。

初始化參數(shù)文件和服務(wù)器參數(shù)文件

想要啟動一個實例,Oracle必須讀取初始化參數(shù)文件或者服務(wù)器參數(shù)文件。這些文件包含實例和數(shù)據(jù)庫的配置信息列表。傳統(tǒng)上Oracle在一個文本初始化參數(shù)文件保存初始化參數(shù)。你可以選擇在二進(jìn)制服務(wù)器參數(shù)文件(SPFILE)維護初始化參數(shù)。

服務(wù)器參數(shù)文件中保存的初始化參數(shù)是持久的,這樣實例運行時參數(shù)的任何改變都可以在實例關(guān)閉、重啟時保持。

初始化參數(shù)分為兩類:基本和高級。在大多數(shù)情況下,只需要設(shè)置和調(diào)整基本參數(shù)就可以獲得合理的性能。在少數(shù)情況下,必須調(diào)整高級參數(shù)來獲得更好的性能。

大部分初始化參數(shù)屬于下列情況之一:

給事物命名的參數(shù),比如文件

設(shè)置限制的參數(shù),比如最大值

影響容量的參數(shù),比如SGA的大小,這些叫做可變參數(shù)。

其他的初始化參數(shù)告訴Oracle:

啟動實例的數(shù)據(jù)庫的名字

SGA內(nèi)存結(jié)構(gòu)使用的內(nèi)存多少

充滿的重做日志文件如何處理

數(shù)據(jù)庫控制文件的名字和位置

數(shù)據(jù)庫中undo表空間的名字

參數(shù)值如何改變

數(shù)據(jù)庫管理員可以調(diào)整可變參數(shù)來提高數(shù)據(jù)庫系統(tǒng)的性能。參數(shù)如何精確的影響一個系統(tǒng)依賴于大量的數(shù)據(jù)庫特性變量。

某些參數(shù)在實例運行時可以通過ALTER SESSION或ALTER SYSTEM來動態(tài)修改。除非你使用服務(wù)器參數(shù)文件(SPFILE),使用ALTER SYSTEM語句產(chǎn)生的改變只在當(dāng)前實例起作用(重啟后消失)。你必須手工修改文本初始化參數(shù)文件,這樣下次實例啟動時可以知道參數(shù)改變了。當(dāng)你使用SPFILE,你可以在磁盤上更新參數(shù)文件,所以修改在數(shù)據(jù)庫重啟和關(guān)閉之后都不會消失。

Oracle在你的數(shù)據(jù)庫軟件中提供初始的初始化參數(shù)文件,或者由數(shù)據(jù)庫配置助手創(chuàng)建。你可以根據(jù)你的配置、選項和你調(diào)整數(shù)據(jù)庫的計劃來編輯這些Oracle支持的初始化參數(shù)和增加其他參數(shù)。對于沒有在初始化參數(shù)文件中明確指定的相關(guān)初始化參數(shù),Oracle使用默認(rèn)值。如果你第一次創(chuàng)建一個Oracle數(shù)據(jù)庫,建議你盡量少修改初始化參數(shù)值。

實例和數(shù)據(jù)庫啟動概述

啟動一個數(shù)據(jù)庫并對系統(tǒng)范圍的用戶可用需要3個步驟:

1、啟動實例

2、掛接數(shù)據(jù)庫

3、打開數(shù)據(jù)庫

數(shù)據(jù)庫管理員可以在SQL *Plus中使用STARTUP命令或者企業(yè)管理器來執(zhí)行這些步驟。

實例如何啟動

當(dāng)Oracle啟動一個實例時,它讀取服務(wù)器參數(shù)文件(SPFILE)或者初始化參數(shù)文件來確定初始化參數(shù)的值。然后,它分配SGA(數(shù)據(jù)庫信息使用的共享內(nèi)存區(qū)域)和創(chuàng)建后臺進(jìn)程。在這時候,沒有數(shù)據(jù)庫與這些內(nèi)存結(jié)構(gòu)和進(jìn)程關(guān)聯(lián)。

實例啟動的限制模式

你可以以限制模式啟動一個實例(或者以后將一個現(xiàn)存實例修改為限制模式)。這個會限制擁有RESTRICTED SESSION的系統(tǒng)權(quán)限的用戶才能連接數(shù)據(jù)庫。

異常情況的強制啟動

在特殊情況下,前一個實例可能沒有完全關(guān)閉。例如,實例的一個進(jìn)程可能沒有正常結(jié)束。在這種情況下,在通常的實例啟動中數(shù)據(jù)庫會返回一個錯誤。為解決這個問題,你必須在啟動新實例之前結(jié)束前個實例的所有剩余的進(jìn)程。

數(shù)據(jù)庫如何掛接(Mount)

實例掛接一個數(shù)據(jù)庫來將數(shù)據(jù)庫和這個實例聯(lián)系起來。為掛接數(shù)據(jù)庫,實例需要找到數(shù)據(jù)庫的控制文件并打開它們。控制文件在用來啟動實例的參數(shù)文件中的CONTROL_FILE初始化參數(shù)指定。Oracle然后讀取控制文件來獲得數(shù)據(jù)庫數(shù)據(jù)文件和重做日志文件的名字。

這時候,數(shù)據(jù)仍然是關(guān)閉的,只能由數(shù)據(jù)庫管理員訪問。數(shù)據(jù)庫管理可以在數(shù)據(jù)庫關(guān)閉時完成特定的維護操作。但是,數(shù)據(jù)庫還不能由普通用戶訪問。

真正應(yīng)用集群時如何掛接數(shù)據(jù)庫

如果Oracle允許多個實例同時掛接同一個數(shù)據(jù)庫,那么數(shù)據(jù)庫管理員可以使用初始化參數(shù)CLUSTER_DATABASE來使得數(shù)據(jù)庫對多個實例可用。CLUSTER_DATABASE參數(shù)的默認(rèn)值為false。不支持真正應(yīng)用集群的Oracle版本只允許CLUSTER_DATABASE值為false。

如果掛接數(shù)據(jù)庫的第一個實例的CLUSTER_DATABASE為false,那么只有這個實例可以掛接這個數(shù)據(jù)庫。如果第一個實例的CLUSTER_DATABASE參數(shù)為true,那么其他參數(shù)CLUSTER_DATABASE值為true的實例也可以掛接這個數(shù)據(jù)庫??梢話旖訑?shù)據(jù)庫的實例數(shù)量是有一個預(yù)先定義的最大值,是在你創(chuàng)建數(shù)據(jù)庫時指定的。

如果掛接一個Standby數(shù)據(jù)庫

一個standby數(shù)據(jù)庫維護了你的主數(shù)據(jù)庫的復(fù)本,在災(zāi)難情況下提供持續(xù)的可用性。

Standby數(shù)據(jù)庫時常處于恢復(fù)模式。為維護你的standby數(shù)據(jù)庫,你必須使用ALTER DATABASE語句來以standby模式掛接,并且應(yīng)用主數(shù)據(jù)庫的歸檔重做日志。

你可以以只讀模式打開一個standby數(shù)據(jù)庫,把它作為一個臨時報表數(shù)據(jù)庫。你不能以讀/寫模式打開一個standby數(shù)據(jù)庫。

如何掛接一個克隆數(shù)據(jù)庫

克隆數(shù)據(jù)庫是一個數(shù)據(jù)庫的專業(yè)拷貝,可以用來對表空間時間點恢復(fù)。當(dāng)你執(zhí)行表空間時間點恢復(fù)時,你掛接一個克隆數(shù)據(jù)庫,將表空間恢復(fù)到特定時間點,然后從克隆數(shù)據(jù)庫導(dǎo)出元數(shù)據(jù)到主數(shù)據(jù)庫和從恢復(fù)表空間拷貝數(shù)據(jù)文件。

當(dāng)你打開數(shù)據(jù)庫時發(fā)生了什么

打開一個掛接數(shù)據(jù)庫使得它可以執(zhí)行通常的數(shù)據(jù)庫操作。任何有效用戶可以連接這個打開的數(shù)據(jù)庫并訪問它自己的信息。通常有一個數(shù)據(jù)庫管理員可以打開一個數(shù)據(jù)庫來對通常操作可用。

當(dāng)你打開一個數(shù)據(jù)庫,Oracle打開在線數(shù)據(jù)文件和重做日志文件。如果數(shù)據(jù)庫前次關(guān)閉時一個表空間離線,當(dāng)你重新打開數(shù)據(jù)庫時,表空間和對應(yīng)的數(shù)據(jù)文件仍然離線。

如果任何數(shù)據(jù)文件和重做日志文件不存在,在你試圖打開數(shù)據(jù)庫時,Oracle會返回一個錯誤。你必須在打開數(shù)據(jù)庫之前從一個備份恢復(fù)任何損壞的或丟失的文件。

實例恢復(fù)

如果數(shù)據(jù)庫上次不正常的關(guān)閉,可能是數(shù)據(jù)庫管理員結(jié)束了這個實例,也可能是斷電,那么數(shù)據(jù)庫重新打開時自動執(zhí)行恢復(fù)。

Undo表空間獲得和管理

當(dāng)你打開一個數(shù)據(jù)庫時,實例試圖獲得一個或多個undo表空間。你在實例啟動時使用初始化參數(shù)UNDO_MANAGEMENT來確定在自動undo管理模式還是在手動undo管理模式下工作。支持的參數(shù)值為AUTO或者M(jìn)ANUAL,如果是AUTO,實例在自動undo管理模式下啟動。默認(rèn)值為MANUAL。

如果你使用undo表空間方式,你使用自動undo管理模式,這是推薦方式。

如果你使用回滾段方式管理undo空間,那么你使用手動undo管理模式。

解決存疑分布式事務(wù)

偶爾數(shù)據(jù)庫異常關(guān)閉會導(dǎo)致一個或多個分布式事務(wù)處于存疑狀態(tài)(既不是提交也不是回滾狀態(tài))。當(dāng)你重新打開數(shù)據(jù)庫并且完成恢復(fù)后,RECO后臺進(jìn)程自動立刻一致性的解決存疑分布式進(jìn)程。

以只讀模式打開數(shù)據(jù)庫

你可以以只讀模式打開任何數(shù)據(jù)庫,以阻止用戶進(jìn)程修改數(shù)據(jù)。只讀模式限制數(shù)據(jù)庫訪問只能為只讀事務(wù),不能寫入數(shù)據(jù)文件或重做日志文件。

在只讀模式下,其他文件(如控制文件、操作系統(tǒng)審計跟蹤、跟蹤文件和警告日志)的磁盤寫入可以持續(xù)。臨時表空間的排序操作也不受影響。但是你不能將持久表空間離線,也不能使用任務(wù)隊列。

只讀模式并不限制數(shù)據(jù)庫恢復(fù)或不修改數(shù)據(jù)庫狀態(tài)、不產(chǎn)生重做數(shù)據(jù)的操作。例如,在只讀模式下:

數(shù)據(jù)文件保持離線和在線

離線文件和表空間可以恢復(fù)

控制文件對修改數(shù)據(jù)庫狀態(tài)的更新可用

一個很有用的只讀模式的應(yīng)用程序是standby數(shù)據(jù)庫可以作為臨時報表數(shù)據(jù)庫使用。

數(shù)據(jù)庫和實例的關(guān)閉概述

數(shù)據(jù)庫和相關(guān)實例關(guān)閉的三個步驟:

1、關(guān)閉數(shù)據(jù)庫

2、卸載數(shù)據(jù)庫

3、關(guān)閉實例

數(shù)據(jù)庫管理員可以使用企業(yè)管理器執(zhí)行這些步驟。Oracle在實例關(guān)閉時自動執(zhí)行這3個步驟。

關(guān)閉蘇據(jù)庫

當(dāng)你關(guān)閉一個數(shù)據(jù)庫,Oracle各自將SGA中的所有數(shù)據(jù)庫數(shù)據(jù)和恢復(fù)數(shù)據(jù)寫入數(shù)據(jù)文件和重做日志文件。下一步,Oracle關(guān)閉所有在線數(shù)據(jù)文件和重做日志文件。(任何離線表空間的離線數(shù)據(jù)文件都已經(jīng)關(guān)閉。如果你以后重新打開數(shù)據(jù)庫,任何離線狀態(tài)的表空間和數(shù)據(jù)文件各自保持離線和關(guān)閉。)在這時候,數(shù)據(jù)庫關(guān)閉,并對通常操作不可用??刂莆募跀?shù)據(jù)庫關(guān)閉但仍然掛接時仍然打開。

通過結(jié)束一個實例來關(guān)閉數(shù)據(jù)庫

在少數(shù)緊急情況下,你可以結(jié)束一個打開數(shù)據(jù)庫的實例采取即刻完全關(guān)閉數(shù)據(jù)庫。這個過程非???,因為跳過了將SGA中的緩存中的所有數(shù)據(jù)寫入數(shù)據(jù)文件和重做日志文件這個動作。隨后重新打開數(shù)據(jù)庫需要恢復(fù),Oracle自動執(zhí)行這個過程。

注意:如果當(dāng)數(shù)據(jù)庫打開時發(fā)生系統(tǒng)錯誤或斷電錯誤,然后實例實際上結(jié)束,當(dāng)數(shù)據(jù)庫重新打開時會執(zhí)行恢復(fù)。

卸載數(shù)據(jù)庫

數(shù)據(jù)庫關(guān)閉之后,Oracle卸載數(shù)據(jù)庫并將它和實例分離。這時,實例還在你的計算機上保持內(nèi)存。

數(shù)據(jù)庫卸載之后,Oracle關(guān)閉數(shù)據(jù)庫的控制文件。

關(guān)閉實例

數(shù)據(jù)庫關(guān)閉的最后步驟是關(guān)閉實例。當(dāng)你關(guān)閉一個實例時,SGA從內(nèi)存中移除,后臺進(jìn)程被結(jié)束。

異常實例關(guān)閉

在少數(shù)情況下,實例可能沒有完全關(guān)閉;內(nèi)存中的所有內(nèi)存結(jié)構(gòu)可能沒有移除或者一個后臺進(jìn)程沒有結(jié)束。當(dāng)前一個實例還剩余一部分,后續(xù)的實例啟動大部分情況下會失敗。在這種情況下,數(shù)據(jù)庫管理員可以強制啟動新的實例,即首先清除上個實例的剩余部分,然后啟動新的實例,或者在SQL *Plus中或使用企業(yè)管理器發(fā)布SHUTDOWN ABORT語句。

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多