程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle實例如何創建?

Oracle實例如何創建?

編輯:Oracle數據庫基礎

在知道如何創建Oracle實例之前,我們必須對實例的定義有一個了解。談到Oracle數據庫時,我們很可能指的是整個Oracle數據庫管理系統(DBMS);但是作為一個Oracle數據庫人員,我們必須認識到數據庫和實例二者之間的重大區別—一個經常使非Oracle的系統管理人員混淆的區別。

為提供Oracle客戶所期望的不同程度的服務、靈活性與性能,數據庫的許多工作由實例完成,實例是一系列復雜的內存結構和操作系統進程。除非使用並行Oracle服務器選項,否則每個Oracle數據庫都有一個實例與之相關,一個數據庫被唯一的一個實例裝載。實例結構允許RDBMS同時對來自多個用戶的不同種類事務的請求提供服務,與此同時提供一流的性能、容錯性、數據的一致性和安全性。

值得注意的是,這裡定義的術語“進程”是指在沒有用戶干預的情況下正在運行的任務。你的操作系統可能將之稱作“進程”,或者使用其他術語,例如任務、作業、線程和其他類似的術語。

在UNIX實現多任務操作系統後,實例是松散的結構方式。在一起工作的離散的進程在實現實例的目標的RDBMS中完成指定的任務。每一個進程都有各自的一個內存塊,該內存塊用於保存私有變量、地址堆棧和其他運行時的信息。進程間使用公共共享區並在公共共享區內完成它們的工作。公共共享區是能夠在同一時間內被不同程序和不同進程讀寫的一塊內存區。該內存塊稱為系統全局區(SGA)。因為SGA駐留在一個共享內存段中,所以它經常被稱作共享全局區。

你可以認為後台進程就像數據庫的手,直接處理數據庫的組件;你也可以認為SGA就像大腦,在必要時間接地調度手處理它們的信息與存儲檢索。SGA參與發生在數據庫中全部的信息和服務器的處理。單用戶的Oracle配置(例如PersonalOracleLite),不使用多進程執行數據庫的功能。相反,所有的數據庫功能由一個Oracle進程完成。由於這個原因,單用戶也稱為單進程Oracle。

了解了實例的基本定義後,我們來看看如何創建實例。打開一個Oracle數據庫包括以下三步:
1)創建一個Oracle實例(非安裝階段)。
2)由實例安裝數據庫(安裝階段)。
3)打開數據庫(打開階段)。

Oracle實例在數據庫啟動的非安裝階段創建,當數據庫經過非安裝階段,讀取init.ora參數文件,啟動後台進程,初始化系統全局區(SGA)。init.ora文件定義了實例的配置,包括內存結構的大小和啟動後台進程的數量和類型等。實例名根據環境變量OracleSID設置,它不一定要與打開的數據庫名稱相同(但是習慣上通常如此)。

下一階段稱為安裝階段。init.ora文件中的控制文件參數值決定數據庫的安裝實例。在安裝階段,讀取控制文件並使其成為可訪問的,可以對控制文件內存儲的數據進行查詢和修改。

最後的階段就是打開數據庫。在這一階段,其名字存儲在控制文件中的數據庫文件以排它使用方式被實例鎖定,使數據庫能夠被普通用戶訪問。打開是數據庫的正常操作狀態。在數據庫打開之前,只有DBA能訪問數據庫,且只能通過服務器管理器對其進行訪問。

為了改變數據庫的操作狀態,必須作為內部連接到數據庫,或擁有SYSDBA特權。當數據庫從關閉狀態到打開狀態時,你可以明確地單步調試數據庫的每一個操作狀態,但當關閉數據庫時,只能從當前運行狀態轉到完全關閉狀態。例如,可以在服務器管理器工具中執行STARTUP NOMOUNT命令,這將使數據庫處在非安裝階段,接下來可以運行ALTER DATABASE MOUNT或者運行ALTER DATABASE OPEN命令以單步調試到操作階段。無論是在何種操作狀態下,如果執行SHUTDOWN命令,將完全關閉數據庫。例如,數據庫不能從打開狀態轉到安裝狀態。

沒有安裝數據庫的實例被稱為空閒的—它使用內存,但不做任何工作。一個實例只能唯一地與一個數據庫連接,而且除非使用並行服務器,否則對一個數據庫也只分配一個實例。實例是數據管理的核心—它做所有的工作,而數據庫存儲所有的數據。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved