oracle 數(shù)據(jù)庫啟動與關閉_第1頁
oracle 數(shù)據(jù)庫啟動與關閉_第2頁
oracle 數(shù)據(jù)庫啟動與關閉_第3頁
oracle 數(shù)據(jù)庫啟動與關閉_第4頁
oracle 數(shù)據(jù)庫啟動與關閉_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第二章 Oracle數(shù)據(jù)庫實例啟動與關機楊進學習目標在Oracle 數(shù)據(jù)庫創(chuàng)建以后,最常見也是最基本的操作就是配置初始化參數(shù)文件,啟動和關閉Oracle 數(shù)據(jù)庫實例。本章內容圍繞啟動和關閉數(shù)據(jù)庫,講解Oracle 數(shù)據(jù)庫實例管理的一些基本知識。【本章要點】 啟動和關閉啟動和關閉Oracle 數(shù)據(jù)庫實例數(shù)據(jù)庫實例 創(chuàng)建和管理創(chuàng)建和管理Oracle 數(shù)據(jù)庫初始化參數(shù)文件數(shù)據(jù)庫初始化參數(shù)文件 了解了解Oracle 數(shù)據(jù)庫的數(shù)據(jù)庫的3 類診斷文件類診斷文件12.1 實例的啟動和關閉12.1.1 數(shù)據(jù)庫啟動階段數(shù)據(jù)庫啟動階段Oracle 數(shù)據(jù)庫的啟動分為3 個階段,首先首先是啟動實例,然后然后是裝載數(shù)據(jù)

2、庫,最后最后是打開數(shù)據(jù)庫。如果沒有啟動Oracle 實例,當使用SQL*Plus 以普通用戶身份連接時,會顯示錯誤信息:訪問Oracle 數(shù)據(jù)庫首先要啟動數(shù)據(jù)庫,管理員連接到空閑實例,然后才能發(fā)出啟動實例或數(shù)據(jù)庫的命令。啟動Oracle 服務器包括三個階段中,每個階段會打開不同的文件并且會完成不同的管理任務。啟動的三個階段如圖所示,啟動的每個階段的特點描述如下:1)啟動實例階段在兩種情況下需要啟動數(shù)據(jù)庫到該階段: 創(chuàng)建數(shù)據(jù)庫 創(chuàng)建控制文件。在該階段打開的文件有: 初始化參數(shù)文件初始化參數(shù)文件 警告日志文件。警告日志文件。 當啟動實例時,系統(tǒng)首先要讀取初始化參數(shù)文件,如前圖所示。然后根據(jù)初始化參

3、數(shù)文件的設置分配系統(tǒng)全局區(qū)(SGA),并啟動Oracle 后臺進程。 另外,操作系統(tǒng)還會打開“警告日志”, 并且將啟動信息存放到“ 警告日志” 中。警告日志存放在初始化參數(shù)background_dump_dest 所對應的目錄中,其文件名格式為alert.log。有關初始化參數(shù)文件將在本章后一部分詳述2)裝載數(shù)據(jù)庫階段進入該階段的目的是執(zhí)行特定的數(shù)據(jù)庫維護操作。有如下三個典型的維護操作: 修改數(shù)據(jù)文件名。修改數(shù)據(jù)文件名。 執(zhí)行數(shù)據(jù)庫完全恢復。執(zhí)行數(shù)據(jù)庫完全恢復。 日志文件的聯(lián)機日志文件的聯(lián)機/脫機,修改歸檔方式。脫機,修改歸檔方式。在該階段打開的文件是: 控制文件??刂莆募?。裝載數(shù)據(jù)庫時,系統(tǒng)

4、會按照初始化參數(shù)control_files 的設置查找并打開控制文件。Oracle是通過控制文件在實例和數(shù)據(jù)庫之間建立關聯(lián)的,通過控制文件可以取得數(shù)據(jù)文件和重做日志的名稱和所處狀態(tài)。但對數(shù)據(jù)文件和日志文件是否存在不作檢查。3)打開數(shù)據(jù)庫階段只有在打開數(shù)據(jù)庫之后,客戶才能夠訪問Oracle 服務器,并執(zhí)行各種數(shù)據(jù)訪問操作。在該階段,打開的文件有: 聯(lián)機的數(shù)據(jù)文件。聯(lián)機的數(shù)據(jù)文件。 聯(lián)機的重做日志文件。聯(lián)機的重做日志文件。如果在嘗試打開數(shù)據(jù)庫時有任何數(shù)據(jù)文件或聯(lián)機重做日志文件不存在,Oracle 服務器將返回錯誤消息。后臺進程SMON 要檢查控制文件、數(shù)據(jù)文件以及重做日志,并確定它們是否處于同步狀

5、態(tài)。如果處于同步狀態(tài),則Oracle 會直接打開所有數(shù)據(jù)文件和重做日志;如果不處于同步狀態(tài),并且可以進行實例恢復,那么SMON 將自動進行實例恢復,然后打開數(shù)據(jù)庫;如果不處于同步狀態(tài),并且不能進行實例恢復,那么SMON 會提示數(shù)據(jù)庫管理員進行介質恢復。數(shù)據(jù)庫啟動個階段打開文件示意圖12.1 實例的啟動和關閉12.1.2 啟動數(shù)據(jù)庫操作啟動數(shù)據(jù)庫操作數(shù)據(jù)庫的啟動命令是STARTUP,在使用STARTUP 命令啟動數(shù)據(jù)庫的時候首先需要使用初始化參數(shù),并可以將數(shù)據(jù)庫以不同的方式打開。1啟動命令啟動命令執(zhí)行命令STARTUP,要求用戶必須具有SYSDBA 或SYSOPER 系統(tǒng)權限,另外,如果要建立數(shù)

6、據(jù)庫,則必須以SYSDBA 身份登錄。該命令具體格式如下:要使數(shù)據(jù)庫由NOMOUNT 進入MOUNT 階段或由MOUNT 進入OPEN 階段,需要使用ALTER DATABASE 命令:ALTER DATABASE MOUNT | OPEN 要顯示數(shù)據(jù)庫的當前處于的啟動狀態(tài),可以使用如下查詢:SELECT status FROM v$instance;用戶可以在數(shù)據(jù)庫關閉狀態(tài)下直接執(zhí)行STARTUP 或STARTUP OPEN 打開數(shù)據(jù)庫,以下實例分別進入不同的階段,最后打開數(shù)據(jù)庫2只讀狀態(tài)打開數(shù)據(jù)庫只讀狀態(tài)打開數(shù)據(jù)庫在正常啟動狀態(tài)下,默認數(shù)據(jù)庫進入讀寫狀態(tài)(ReadWrite)。在必要時可以

7、將數(shù)據(jù)庫設置為只讀狀態(tài)(ReadOnly)。在只讀狀態(tài)下,用戶只能查詢數(shù)據(jù)庫,但不能以任何方式對數(shù)據(jù)庫對象進行修改。但要注意,在只讀狀態(tài)下,數(shù)據(jù)庫還可以進行數(shù)據(jù)庫的恢復或者不產生重做日志數(shù)據(jù)的操作,比如:數(shù)據(jù)文件仍然可以聯(lián)機和脫機,已脫機的數(shù)據(jù)文件或表空間可以進行恢復。 對其他文件如控制文件、跟蹤文件、審計文件、警告文件等仍然可以繼續(xù)寫入。使用如下命令,使數(shù)據(jù)庫進入只讀狀態(tài)或進入讀寫狀態(tài)。使用如下命令,使數(shù)據(jù)庫進入只讀狀態(tài)或進入讀寫狀態(tài)。1)STARTUP OPEN READ WRITE| READ ONLY2)ALTER DATABASE OPEN READ WRITE| READ ONLY

8、其中:READ WRITE:進入讀寫狀態(tài)READ ONLY:進入讀寫狀態(tài)3使用限制模式使用限制模式限制模式只允許具有RESTRICTED SESSION 權限的用戶正常使用數(shù)據(jù)庫,其他用戶被限制使用數(shù)據(jù)庫。RESTRICTED SESSION 權限可以根據(jù)需要授予用戶,DBA 用戶默認有授予RESTRICTED SESSION 權限給其他用戶的權限, DBA 用戶本身具有RESTRICTEDSESSION 權限,所以限制模式下DBA 用戶可以繼續(xù)使用數(shù)據(jù)庫進行特定的維護工作。當只允許特定用戶使用數(shù)據(jù)庫時,可以考慮使用限制模式。使用如下命令,使數(shù)據(jù)庫進入限制模式:使用如下命令,使數(shù)據(jù)庫進入限制模

9、式:1)ALTER SYSTEM ENABLE|DISABLE RESTRICTED SESSION 2)STARTUP RESTRICT其中:ENABLE:啟用限制模式。DISABLE: 取消限制模式。注意, 當數(shù)據(jù)庫切換到RESTRICTED SESSION 狀態(tài)時, 先前登錄的不具有RESTRICTED SESSION 權限的用戶仍然可以正常工作。12.1.3 關閉數(shù)據(jù)庫操作關閉數(shù)據(jù)庫操作當DBA 要執(zhí)行完全數(shù)據(jù)庫備份、修改初始化參數(shù)以及其他系統(tǒng)維護操作時,需要停止Oracle 服務器。1)數(shù)據(jù)庫關閉方式)數(shù)據(jù)庫關閉方式Oracle 數(shù)據(jù)庫共有4 種關閉方式,根據(jù)不同的情況,管理員可采用

10、不同的方式關閉數(shù)據(jù)庫。 NORMAL:正常關閉方式。:正常關閉方式。 TRANSACTIONAL:事務關閉方式。:事務關閉方式。 IMMEDIATE:立即關閉方式。:立即關閉方式。 ABORT:強制終止關閉方式:強制終止關閉方式。2.5.1 表空間表空間用于組織數(shù)據(jù)庫的數(shù)據(jù),數(shù)據(jù)庫邏輯上表空間用于組織數(shù)據(jù)庫的數(shù)據(jù),數(shù)據(jù)庫邏輯上由一個或多個表空間組成,而表空間物理由一個或多個表空間組成,而表空間物理上是由一個或多個數(shù)據(jù)文件組成的。上是由一個或多個數(shù)據(jù)文件組成的。通過使用多個表空間,數(shù)據(jù)庫的數(shù)據(jù)對象被分門別類存放在不同的表空間中。這樣數(shù)據(jù)庫的管理員可以有效的控制數(shù)據(jù)庫的磁盤空間,并控制用戶的空間使

11、用配額。通過使用不同類型的表空間,還可以提高數(shù)據(jù)訪問的性能。NORMAL、TRANSACTIONAL、IMMEDIATE 三種關閉方式,屬于一致性數(shù)據(jù)庫(或稱干凈數(shù)據(jù)庫)關閉。特點是無需進行數(shù)據(jù)庫恢復,關閉和啟動過程如圖ABORT 關閉方式,屬于非一致性數(shù)據(jù)庫(或稱臟數(shù)據(jù)庫)關閉。使用ABORT 關閉、或數(shù)據(jù)庫發(fā)生實例故障(比如斷電)、或使用STARTUP FORCE 強制重新啟動數(shù)據(jù)庫,都需要進行實例恢復。關閉和啟動過程如圖四種關閉方式詳細描述如下:四種關閉方式詳細描述如下:1)SHUTDOWN NORMALNORMAL 是默認選項。這種方式是被動的等待方式,在所有用戶主動退出后,才實施關閉

12、。該選項按照以下條件進行: 不能連接新的用戶。不能連接新的用戶。 Oracle 服務器等待所有用戶斷開已存在連接,然后完成關閉。服務器等待所有用戶斷開已存在連接,然后完成關閉。 數(shù)據(jù)庫和重做日志緩存寫入磁盤。數(shù)據(jù)庫和重做日志緩存寫入磁盤。 結束后臺進程,在內存中釋放結束后臺進程,在內存中釋放SGA。 下次啟動無需進行實例恢復。下次啟動無需進行實例恢復。該方式在關閉數(shù)據(jù)文件、重做日志和控制文件之前,系統(tǒng)首先要發(fā)出檢查點,同步所有數(shù)據(jù)文件、控制文件和重做日志,使得這三種文件處于同步狀態(tài)。2)SHUTDOWN TRANSACTIONAL這種方式將等待所有用戶的事務結束,在避免用戶修改丟失的前提下,盡

13、快關閉數(shù)據(jù)庫。該選項按照以下條件進行: 在此實例上,客戶端不能開始新的事務在此實例上,客戶端不能開始新的事務 一旦客戶端的當前事務結束,客戶即被斷開一旦客戶端的當前事務結束,客戶即被斷開 當所有的事務結束,立即進行數(shù)據(jù)庫關閉當所有的事務結束,立即進行數(shù)據(jù)庫關閉 下次啟動無需進行實例恢復。下次啟動無需進行實例恢復。 假定有一個用戶正在執(zhí)行事務操作(INSERT、UPDATE 等),那么當執(zhí)行SHUTDOWN TRANSACTIONAL 時系統(tǒng)會處于等待狀態(tài)。而當該用戶執(zhí)行COMMIT 或ROLLBACK 終止事務之后,系統(tǒng)會自動斷開其連接,然后停止Oracle 服務器。 另外另外,在執(zhí)行該命令關

14、閉數(shù)據(jù)庫之前,與SHUTDOWN NORMAL 類似,系統(tǒng)也會首先發(fā)出檢查點,然后才會關閉數(shù)據(jù)文件、控制文件和重做日志。3)SHUTDOWN IMMEDIATE 這種方式無需等待用戶的情況下,進行立即關閉。已經提交的事務不會丟失,未提交的事務被撤銷。該選項按照以下條件進行: 當前執(zhí)行的當前執(zhí)行的SQL 語句被取消語句被取消 Oracle server 不等待當前連接的用戶斷開不等待當前連接的用戶斷開 Oracle 回退活動事務,并斷開所有連接的用戶回退活動事務,并斷開所有連接的用戶 Oracle 關閉實例前關閉和卸載數(shù)據(jù)庫關閉實例前關閉和卸載數(shù)據(jù)庫 下次啟動無需進行實例恢復。下次啟動無需進行實

15、例恢復。假定有一個用戶正在執(zhí)行事務操作(INSERT、UPDATE 等),那么當執(zhí)行SHUTDOWNIMMEDIATE 時系統(tǒng)會自動回退該事務操作,然后斷開用戶連接,最后停止Oracle 服務器。另外,在執(zhí)行該命令關閉數(shù)據(jù)庫之前,與SHUTDOWN NORMAL 類似,系統(tǒng)也會首先發(fā)出檢查點,然后才會關閉數(shù)據(jù)文件、控制文件和重做日志。4)SHUTDOWN ABORT SHUTDOWN ABORT 命令用于快速停止Oracle 服務器,屬于異常終止數(shù)據(jù)庫,例如實例出現(xiàn)故障或使用其他三種方式無法停止Oracle 服務器,可以考慮采用這種方式。該選項按照以下條件進行: 當前執(zhí)行的當前執(zhí)行的SQL 語

16、句被取消語句被取消 Oracle server 不等待當前連接的用戶定斷開不等待當前連接的用戶定斷開 數(shù)據(jù)庫和重做日志緩存不寫入磁盤。數(shù)據(jù)庫和重做日志緩存不寫入磁盤。 沒有提交的事務不回滾沒有提交的事務不回滾 在不關閉文件的情況下結束實例在不關閉文件的情況下結束實例 數(shù)據(jù)庫不關閉和卸載數(shù)據(jù)庫不關閉和卸載 下次啟動需要進行實例恢復,恢復自動發(fā)生。下次啟動需要進行實例恢復,恢復自動發(fā)生。因為采用這種方式不會發(fā)出檢查點,從而使得數(shù)據(jù)文件、控制文件和重做日志處于不一致的狀態(tài),所以將來在啟動Oracle 服務器時,后臺進程SMON 會自動進行實例恢復,最終將數(shù)據(jù)文件、控制文件和重做日志恢復到一致狀態(tài)。大

17、家在使用Oracle 服務器時,盡可能不要使用SHUTDOWN ABORT 命令停止Oracle 服務器。如果系統(tǒng)并發(fā)事務很多,而又執(zhí)行了SHUTDOWN ABORT 命令停止Oracle 服務器,那么因為需要進行實例恢復,所以可能會導致Oracle 服務器啟動時間很長。注意:在數(shù)據(jù)庫不一致的狀態(tài)下不能進行數(shù)據(jù)庫的備份注意:在數(shù)據(jù)庫不一致的狀態(tài)下不能進行數(shù)據(jù)庫的備份四種關閉方式的特點總結如下表(四種關閉方式的特點總結如下表(是,是,否):否):2)數(shù)據(jù)庫關閉操作數(shù)據(jù)庫關閉操作停止Oracle 服務器是使用命令SHUTDOWN 來完成的,執(zhí)行該命令要求用戶必須具有SYSDBA 或SYSOPER

18、特權。其命令格式如下:SHUTDOWN NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT NORMAL:正常關閉方式。:正常關閉方式。 TRANSACTIONAL:事務關閉方式。:事務關閉方式。 IMMEDIATE:立即關閉方式。:立即關閉方式。 ABORT:強制終止關閉方式。:強制終止關閉方式。默認的關閉模式是NORMAL。當執(zhí)行了不帶選項的SHUTDOWN 命令之后,即使Oracle 服務器仍然沒有關閉,新的客戶也不能夠連接到Oracle 服務器。此時如果客戶要連接到Oracle 服務器時,則會顯示錯誤信息:ORA-01090:shutdown in p

19、rogress connection is not permitted?!緦嵗?2-5】驗證NORMAL 關閉方式1)以SYS 帳戶和SCOTT 帳戶連接創(chuàng)建兩個會話2)在第一個會話中發(fā)出SHUTDOWN 命令,觀察現(xiàn)象,關閉命令處于等待狀態(tài),如圖3)在第二個會話中發(fā)出EXIT 命令結束會話,如圖4)觀察第一個會話窗口,出現(xiàn)關閉信息SQL SHUTDOWN數(shù)據(jù)庫已經關閉。已經卸載數(shù)據(jù)庫。ORACLE 例程已經關閉。除了使用命令行方式,用戶也可以使用控制臺來實施數(shù)據(jù)庫的啟動和關閉,但是這種方法不建議專業(yè)DBA 采用,該方法雖然直觀,但是不夠靈活,并會占用大量系統(tǒng)資源,同學們自己去了解。,同學們自

20、己去了解。12.2 Oracle 數(shù)據(jù)庫初始化參數(shù)文件數(shù)據(jù)庫初始化參數(shù)文件 啟動數(shù)據(jù)庫實例首先需要打開初始化參數(shù)文件,通過修改初始化參數(shù)文件初始化參數(shù)文件的參數(shù)設置,可以對Oracle 數(shù)據(jù)庫進行初始設置。12.2.1 初始化參數(shù)文件初始化參數(shù)文件1)參數(shù)文件簡介)參數(shù)文件簡介通過學習Oracle 數(shù)據(jù)庫的組成結構,我們知道實實例是一組例是一組Oracle 后臺進程和內存結構的集合后臺進程和內存結構的集合,那么實例到底要占用多大內存空間,并且在啟動實例時是否要啟動某些特定的后臺進程呢?這都需要通過配置參數(shù)文件來完成。通過設置初始化參數(shù),不僅可以定義實例特征(SGA 尺寸、后臺進程),而且還可以

21、定義許多其他特征和限制。 例如,例如,通過設置初始化參數(shù)設置數(shù)據(jù)庫名稱,定義用戶和進程限制,定義控制文件、跟蹤文件和警告日志的位置等。 當以SYSDBA 身份發(fā)出STARTUP 命令,Oracle 服務器就會讀取初始化參數(shù)文件,根據(jù)參數(shù)文件來配置實例。啟動實例時必須有相應的初始化參數(shù)文件存在。 Oracle9i 提供了200 多個初始化參數(shù),并且每個初始化參數(shù)都有默認值(Default Value)。 如果在參數(shù)文件中沒有出現(xiàn)參數(shù)的定義,就會采用Oracle 服務器的默認參數(shù)值。在使用Oracle 服務器時,你只需要根據(jù)特定需求設置相應參數(shù)即可,而大多數(shù)參數(shù)都可以保留默認設置。2)主要的初始化

22、參數(shù))主要的初始化參數(shù)因為Oracle 提供了大量的初始化參數(shù),所以在這里只介紹主要的初始化參數(shù),關于其他參數(shù),在用到時會詳細介紹。具體說明如下: db_name:該參數(shù)用于指定數(shù)據(jù)庫名稱。 instance_name:該參數(shù)用于指定實例名,應該與db_name 保持一致。 control_files:該參數(shù)用于指定控制文件的路徑和名稱,Oracle 使用該參數(shù)在實例和數(shù)據(jù)庫之間建立關聯(lián)。 db_block_size:該參數(shù)用于指定標準數(shù)據(jù)塊的尺寸,SYSTEM 表空間的數(shù)據(jù)塊會自動按照該參數(shù)進行設置,其參數(shù)值可以設置為2K、4K、8K、16K 或32K。在建立了數(shù)據(jù)庫之后,該參數(shù)的值不能修改

23、。 db_cache_size:該參數(shù)用于定義標準數(shù)據(jù)塊所對應的數(shù)據(jù)高速緩存尺寸,該初始化參數(shù)是Oracle9i 新增加的參數(shù)。另外,在oracle9i 中仍然保留了初始化參數(shù)db_block_buffers,但將來版本會棄用該參數(shù)。2)主要的初始化參數(shù))主要的初始化參數(shù) log_buffer:該參數(shù)用于指定重做日志緩沖區(qū)的尺寸。 shared_pool_size:該參數(shù)用于指定共享池的尺寸。 background_dump_dest:該參數(shù)用于指定后臺進程跟蹤文件所在目錄。 user_dump_dest:該參數(shù)用于指定用戶進程跟蹤文件所在目錄。 remote_login_passwordfi

24、le:該參數(shù)用于指定特權用戶的認證方式。 undo_management:該參數(shù)用于指定管理UNDO 數(shù)據(jù)的方式,該參數(shù)是Oracle9i新增加的參數(shù)。如果設置該參數(shù)為MANUAL,則管理UNDO 數(shù)據(jù)仍然使用回滾段;如果設置為AUTO,則使用UNDO 表空間自動管理UNDO 數(shù)據(jù)2)主要的初始化參數(shù))主要的初始化參數(shù) undo_tablespace:該參數(shù)用于指定默認的UNDO 表空間,該參數(shù)也是Oracle9i 新增加的參數(shù)。如果參數(shù)undo_management 被設置為AUTO,則管理UNDO 數(shù)據(jù)會使用該參數(shù)所對應的表空間;如果參數(shù)undo_management 被設置為MANUAL

25、,則該參數(shù)不起任何作用。注意:如果參數(shù)undo_management 被設置為AUTO,那么undo_tablespace 所對應的UNDO 表空間必須存在,否則會導致Oracle 服務器無法啟動。3兩種初始化參數(shù)文件對于一個實例來講,可以同時存在多個初始化參數(shù)文件,根據(jù)不同的性能需求,可以選擇其中某個初始化參數(shù)文件來啟動實例。有兩種不同類別的初始化參數(shù)文件: 服務器端永久初始化參數(shù)文件(服務器端永久初始化參數(shù)文件(SPFILE),一般名為),一般名為spfile.ora 靜態(tài)初始化參數(shù)文件(靜態(tài)初始化參數(shù)文件(PFILE),一般名為),一般名為init.ora。服務器端永久初始化參數(shù)文件位于

26、數(shù)據(jù)庫服務器;而靜態(tài)初始化參數(shù)文件既可以位于服務器,也可以位于客戶端。4查詢初始化參數(shù)查詢初始化參數(shù) 為了提高Oracle 服務器運行性能,你可能需要通過修改初始化參數(shù)來改變SGA 尺寸;另外,為了在運行Oracle 服務器時啟動其他后臺進程,可能需要修改某些初始化參數(shù)自動啟動這些后臺進程。當然,初始化參數(shù)還有其他許多作用,那么如何監(jiān)視初始化參數(shù)的設置呢?在實例運行階段,通過執(zhí)行命令執(zhí)行命令SHOW PARAMETER 可以顯示初始化參數(shù)的值,另外也可以查詢動態(tài)性能視圖動態(tài)性能視圖v$parameter 獲得其更詳細的信息【實例12-7】查詢初始化參數(shù)文件在此階段,如果查詢語句中有綁定變量,語

27、句就要獲得綁定的變量值。3)執(zhí)行經過語句解析,Oracle 最終生成了執(zhí)行計劃,并將該執(zhí)行計劃裝載到了庫高速緩存。在執(zhí)行階段,服務器進程將按照執(zhí)行計劃中所安排的步驟來執(zhí)行SELECT 語句。首先,服務器進程要確定被選擇行所在數(shù)據(jù)塊是否已經被讀取到數(shù)據(jù)高速緩存,如果該數(shù)據(jù)塊內容已經被讀取到數(shù)據(jù)高速緩存,則轉入“提取數(shù)據(jù)”階段; 如果該數(shù)據(jù)塊沒有被讀取到數(shù)據(jù)高速緩存,那么服務進程會將數(shù)據(jù)塊內容復制到數(shù)據(jù)高速緩存的緩沖區(qū)中4)提取數(shù)據(jù)(fetch)12.2.2 靜態(tài)初始化參數(shù)文件靜態(tài)初始化參數(shù)文件PFILE1)靜態(tài)初始化參數(shù)文件特點靜態(tài)初始化參數(shù)文件特點靜態(tài)初始化參數(shù)文件通常稱為PFILE。在構造O

28、racle 服務器之前,首先需要完成的任務就是建立參數(shù)文件, 并配置相應參數(shù)。靜態(tài)初始化參數(shù)文件的默認位置是$Oracle_Homedatabase 目錄。靜態(tài)初始化參數(shù)文件默認的名稱為Init.ora,其中SID是實例標識符。靜態(tài)初始化參數(shù)文件還有如下的一些特點: 參數(shù)文件僅在實例啟動時打開 內容是文本文件,可以使用操作系統(tǒng)的文本編輯器比如Notepad 來編輯修改。 對靜態(tài)初始化參數(shù)文件的修改只有在重新啟動數(shù)據(jù)庫后才能生效。 可以使用本地(服務器)或客戶端靜態(tài)初始化參數(shù)文件啟動數(shù)據(jù)庫實例,在客戶端啟動數(shù)據(jù)庫實例時,在STARTUP 命令的參數(shù)中指明即可。如果要修改參數(shù),還要注意以下要點:如

29、果要修改參數(shù),還要注意以下要點: 參數(shù)設置形式是:參數(shù)=值。 在修改或增加初始化參數(shù)之前,首先檢查該初始化參數(shù)是否存在,若存在則直接修改;若不存在,則在文件尾部增加一行。 每行只能設置一個參數(shù),參數(shù)的出現(xiàn)順序無關。 #是注釋標記是注釋標記,可以屏蔽掉不需要的行。 字符型參數(shù)需要用雙引號引起來字符型參數(shù)需要用雙引號引起來,但數(shù)字型參數(shù)則不能用引號。 如果一個初始化參數(shù)有多個值要用括號引起,值之間用逗號分隔。 使用IFILE 參數(shù)可以在當前參數(shù)文件中包含其它的參數(shù)文件在修改或增加初始化參數(shù)時,必須要遵從特定的規(guī)則。如果違反了參數(shù)設置原則,在啟動實例時可能會顯示錯誤信息,或者會導致配置不起任何作用。

30、以下是靜態(tài)初始化參數(shù)文件的一個樣本,#是注釋行起始標記,該行不起作用。# Initialization Parameter File: initmydb.ora#共享服務參數(shù)dispatchers=(PROTOCOL=TCP) (SERVICE=mydbXDB)#實例名instance_name=mydb#版本aq_tm_processes=1compatible=9.2.0.0.0#驗證方式none shareremote_login_passwordfile=EXCLUSIVE#PGA 參數(shù),排序區(qū)pga_aggregate_target=25165824sort_area_size=52

31、4288#數(shù)據(jù)庫標識db_domain=db_name=mydb#控制文件control_files=(D:oracleoradatamydbCONTROL01.CTL,D:oracleoradatamydbCONTROL02.CTL, D:oracleoradatamydbCONTROL03.CTL)#緩沖區(qū)java_pool_size=33554432large_pool_size=8388608shared_pool_size=50331648#打開光標open_cursors=300#回滾段管理undo_management=AUTOundo_retention=10800undo_t

32、ablespace=UNDOTBS1#跟蹤文件background_dump_dest=D:oracleadminmydbbdumpcore_dump_dest=D:oracleadminmydbcdumptimed_statistics=TRUEuser_dump_dest=D:oracleadminmydbudump#進程數(shù),最小為6,一般為50processes=150#數(shù)據(jù)塊db_block_size=8192db_cache_size=25165824db_file_multiblock_read_count=162)使用靜態(tài)初始化參數(shù)文件啟動實例使用靜態(tài)初始化參數(shù)文件啟動實例以下實

33、例使用靜態(tài)初始化參數(shù)來啟動實例?!緦嵗龑嵗?2-8】復制初始化參數(shù)文件并啟動數(shù)據(jù)庫復制初始化參數(shù)文件并啟動數(shù)據(jù)庫1)復制參數(shù)文件)復制參數(shù)文件在創(chuàng)建在創(chuàng)建Oracle 數(shù)據(jù)庫的同時,已經在數(shù)據(jù)庫的同時,已經在database 目錄下建立了默認的靜態(tài)初始化參數(shù)文件,目錄下建立了默認的靜態(tài)初始化參數(shù)文件,使用操作系統(tǒng)文件復制功能將使用操作系統(tǒng)文件復制功能將database 目錄目錄下的初始化參數(shù)文件下的初始化參數(shù)文件initdb01.ora 復制到磁盤復制到磁盤的其他位置的其他位置,如如/usr盤根目錄。盤根目錄。2)使用)使用Notepad 編輯初始化參數(shù)編輯初始化參數(shù)有些初始化參數(shù)如有些初始化

34、參數(shù)如DB_NAME、CONTROL_FILES、DB_BLOCK_SIZE 已經正確設已經正確設置,不能進行修改。在這里我們試修改初始置,不能進行修改。在這里我們試修改初始化參數(shù)化參數(shù)db_cache_size 的值,如下:的值,如下:db_cache_size=20M3)使用新的參數(shù)文件啟動實例依次執(zhí)行以下命令,先關閉實例,然后使用新的參數(shù)文件啟動實例4)查詢結果)查詢結果使用練習使用練習12-7 的方法查看新設置的初始化參的方法查看新設置的初始化參數(shù)(結果略)數(shù)(結果略)12.2.3 服務器端初始化參數(shù)文件服務器端初始化參數(shù)文件SPFILE服務器端永久初始化參數(shù)文件通常稱為SPFILE,

35、是Oracle 9i 的新功能。服務器端初始化參數(shù)文件的默認位置是$Oracle_Homedatabase 目錄。服務器端初始化參數(shù)文件默認的名稱為spfile.ora,其中SID 是實例標識符。該文件不能手動修改,如果進行手動修改,SPFILE 將變?yōu)闊o效1)服務器端初始化參數(shù)文件的特點服務器端初始化參數(shù)文件的特點服務器端初始化參數(shù)文件SPFILE 還有如下的一些特點: 服務器端初始化參數(shù)文件是二進制文件形式。 由Oracle 服務器來進行維護。 總是駐留在服務器端。 在實例關閉和啟動狀態(tài)下都能進行參數(shù)的修改。 可進行參數(shù)值的自動調解。 可以使用Recovery Manager(一種備份工具

36、)來備份初始化參數(shù)。2)修改服務器端參數(shù)文件修改服務器端參數(shù)文件SPFILE 的內容是二進制,不能直接查看和修改??梢詫⑵滢D換成文本格式,作為一種備份服務器端初始化參數(shù)文件的方式。我們可以查看或修改服務器端初始化參數(shù)文件對應的靜態(tài)初始化參數(shù)文件,然后再轉換成SPFILE。通過V$SPPARAMETER 性能視圖,可以查看SPFILE 的內容。在實例啟動以后,可以動態(tài)修改初始化參數(shù)文件。但并不是所有的初始化參數(shù)都可以動態(tài)修改的,這一點要引起注意。動態(tài)修改初始化參數(shù)的命令如下:ALTER SYSTEM SET 參數(shù)名參數(shù)名= 參數(shù)值參數(shù)值SCOPE = MEMORY|SPFILE|BOTHSID=

37、 sid|*其中:參數(shù)名:要修改的參數(shù)名稱參數(shù)值:新的參數(shù)值SCOPE:確定修改內存中的參數(shù)、或修改SPFILE 中的參數(shù)、或同時進行修改MEMORY:修改當前運行實例的參數(shù)值(內存中)SPFILE:只修改SPFILE 中的參數(shù)值BOTH:同時修改當前運行實例和SPFILE 中的參數(shù)值,這是一個默認值。SID:指明正在使用的SPFILE 的SIDsid:在修改SPFILE 時說明使用的SID*:使用默認的SPFILE【實例實例12-9】修改服務器端初始化參數(shù)文件中修改服務器端初始化參數(shù)文件中undo_suppress_errors 的值。的值。2)顯示undo_suppress_errors

38、的值說明:由于在參數(shù)中使用了BOTH,將同時修改內存和SPFILE 中的值。ALTER SYSTEM RESET 命令用來恢復參數(shù)的默認值,格式如下:ALTER SYSTEM RESET 參數(shù)名參數(shù)名SCOPE = MEMORY|SPFILE|BOTH SID= sid|*12.2.4 參數(shù)文件其他問題參數(shù)文件其他問題以下部分說明了參數(shù)文件的互建方法和使用順序。1)互建參數(shù)文件互建參數(shù)文件靜態(tài)初始化參數(shù)文件和服務器端永久初始化參數(shù)文件可以互建。使用命令:CREATE SPFILE =SPFILE-NAMEFROM PFILE=PFILE-NAME;可以由靜態(tài)初始化參數(shù)文件創(chuàng)建服務器端初始化參數(shù)

39、文件。 12.2.4 參數(shù)文件其他問題參數(shù)文件其他問題使用命令:CREATE PFILE =PFILE-NAMEFROM SPFILE=SPFILE-NAME;可以由服務器端初始化參數(shù)文件創(chuàng)建靜態(tài)初始化參數(shù)文件。其中:PFILE-NAME 是靜態(tài)初始化參數(shù)文件的路徑和名稱。SPFILE-NAME 代表服務器端初始化參數(shù)文件的路徑和名稱。12.2.4 參數(shù)文件其他問題參數(shù)文件其他問題在實例關閉和啟動狀態(tài)下以上命令均可執(zhí)行,但需要SYSDBA 權限。如果沒有指明初始化參數(shù)文件的名稱,將采用默認的路徑和名字,即路徑為$Oracle_Home/database。靜態(tài)初始化參數(shù)文件默認的名稱為init.

40、ora , 服務器端初始化參數(shù)文件默認的名稱為spfile.ora,其中SID 是實例標識符。例如,使用如下命令:CREATE SPFILE FROM PFILE;將在$Oracle_Homedatabase 下由init.ora 創(chuàng)建spfile.ora?!緦嵗龑嵗?-10】由服務器端初始化參數(shù)由服務器端初始化參數(shù)文件創(chuàng)建靜態(tài)初始化參數(shù)文件文件創(chuàng)建靜態(tài)初始化參數(shù)文件12.2.4 參數(shù)文件其他問題參數(shù)文件其他問題2)參數(shù)文件的使用順序參數(shù)文件的使用順序 如果同時存在多個初始化參數(shù)文件,當使用STARTUP 命令啟動數(shù)據(jù)庫時,會在默認目錄下($Oracle_Homedatabase)尋找初始化參

41、數(shù)文件,使用的優(yōu)先順序是: 使用不帶參數(shù)的STARTUP 命令,先查看是否存在服務器端初始化參數(shù)文件spfile.ora,如果存在則它啟動實例。 如果不存在服務器端初始化參數(shù)文件spfile .ora,則使用默認的SPFILE.ora 來啟動數(shù)據(jù)庫。 如果默認的SPFILE.ora 不存在,則使用靜態(tài)初始化參數(shù)文件init.ora 來啟動數(shù)據(jù)庫。12.2.4 參數(shù)文件其他問題參數(shù)文件其他問題2)參數(shù)文件的使用順序參數(shù)文件的使用順序 如果在STARTUP 命令中使用了參數(shù)PFILE 指明特定的靜態(tài)初始化參數(shù)文件,那么指明的初始化參數(shù)優(yōu)先。比如: STARTUP PFILE = $ORACLE_H

42、OME/database/initDB01.ora注意:在PFILE 文件中可以包含參數(shù)SPFILE 來指明使用特定非默認位置的SPFILE。 比如在PFILE 中包含以下的內容,將使用指定的服務器端初始化參數(shù)文件:SPFILE = /database/startup/spfileDB01.ora12.2.4 參數(shù)文件其他問題參數(shù)文件其他問題2)參數(shù)文件的使用順序參數(shù)文件的使用順序 如果在STARTUP 命令中使用了參數(shù)PFILE 指明特定的靜態(tài)初始化參數(shù)文件,那么指明的初始化參數(shù)優(yōu)先。比如: STARTUP PFILE = $ORACLE_HOME/database/initDB01.ora

43、注意:在PFILE 文件中可以包含參數(shù)SPFILE 來指明使用特定非默認位置的SPFILE。 比如在PFILE 中包含以下的內容,將使用指定的服務器端初始化參數(shù)文件:SPFILE = /database/startup/spfileDB01.ora12.2.5 顯示實例和數(shù)據(jù)庫信息顯示實例和數(shù)據(jù)庫信息1)顯示顯示SGA 尺寸尺寸SGA 越大,Oracle 服務器性能越好。但SGA 尺寸不要超過實際內存的12,否則不僅不能提高運行性能,反而會降低Oracle 服務器運行性能。那么如何監(jiān)視SGA 尺寸呢?一方面你可以通過SHOW SGA 命令取得SGA 尺寸,另外也可以查詢動態(tài)性能視圖v$sga,

44、如下所示:SQL SELECT * FROM v$sga;NAME VALUE- -Fixed Size 453492Variable Size 109051904Database Buffers 25165824Redo Buffers 66764812.2.5 顯示實例和數(shù)據(jù)庫信息顯示實例和數(shù)據(jù)庫信息2)顯示當前正在運行的后臺進程顯示當前正在運行的后臺進程不同后臺進程擔負著不同管理任務,在Oracle 服務器中后臺進程DBWR、LGWR、SMON、PMON、CKPT 一直處于運行狀態(tài),而其他后臺進程則是根據(jù)特定需要由數(shù)據(jù)庫管理員來確定是否需要啟動。例如,如果數(shù)據(jù)庫處于ARCHIVELOG

45、模式,則必須啟動后臺進程ARCH ;而如果要進行高級復制,則必須啟動后臺進程SNP。通過查詢動態(tài)性能視圖v$bgprocess 可以顯示Oracle 服務器可包含的所有后臺進程,另外也可以確定當前處于運行狀態(tài)的后臺進程,如下所示:12.2.5 顯示實例和數(shù)據(jù)庫信息顯示實例和數(shù)據(jù)庫信息3)顯示顯示Oracle 服務器所有進程服務器所有進程經過前面內容的學習,大家應該清楚,Oracle 進程包括后臺進程和服務器進程兩種類型,并且所允許的最大進程個數(shù)是由初始化參數(shù)processes 來確定的。為了確保Oracle 服務器有足夠的進程可用,在數(shù)據(jù)庫運行的高峰階段可能需要監(jiān)視當前正在運行的進程個數(shù)。那么

46、如何監(jiān)視Oracle 進程呢?通過查詢動態(tài)性能視圖v$process 可以監(jiān)視所有Oracle 進程信息,如下所示:SQL SELECT program,background FROM v$process;PROGRAM-PSEUDOORACLE.EXEORACLE.EXEORACLE.EXEORACLE.EXE12.2.5 顯示實例和數(shù)據(jù)庫信息顯示實例和數(shù)據(jù)庫信息4)顯示顯示Oracle 服務器狀態(tài)服務器狀態(tài)當建立數(shù)據(jù)庫或控制文件時,要求Oracle 服務器必須處于NOMOUNT 狀態(tài);而當執(zhí)行數(shù)據(jù)庫各種維護操作時,要求Oracle 服務器必須處于MOUNT 狀態(tài);而如果客戶應用要訪問Ora

47、cle 服務器,則要求Oracle 服務器必須處于OPEN 狀態(tài)。那么如何監(jiān)視Oracle 服務器的狀態(tài)呢?通過查詢動態(tài)性能視圖v$instance,可以獲得Oracle 服務器所處狀態(tài),如下所示:SQL SELECT status FROM v$instance;STATUS-OPEN12.2.5 顯示實例和數(shù)據(jù)庫信息顯示實例和數(shù)據(jù)庫信息5)顯示數(shù)據(jù)庫物理文件)顯示數(shù)據(jù)庫物理文件Oracle 數(shù)據(jù)庫由數(shù)據(jù)文件、控制文件以及重做日志三種文件組成。在進行完全數(shù)據(jù)庫備份時,需要確定這些文件的位置及名稱;另外,如果要改變這些文件的位置,也必須首先確定它們的位置。通過查詢動態(tài)性能視圖v$datafil

48、e,可以獲得數(shù)據(jù)文件信息;通過查詢動態(tài)性能視圖v$controlfile,可以獲得控制文件信息;通過查詢動態(tài)性能視圖v$logfile,可以取得重做日志的信息,如下所示:顯示控制文件信息:SQL SELECT * FROM v$controlfile;NAME-D:ORACLEORADATADB01CONTROL01.CTLD:ORACLEORADATADB01CONTROL02.CTLD:ORACLEORADATADB01CONTROL03.CTL顯示數(shù)據(jù)文件信息的查詢命令:SELECT name FROM v$datafile;顯示日志文件信息的查詢命令:SELECT member FROM v$logfi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論