資料庫程式,一般都要使用計算機的記憶體和持久儲存裝置(例如磁碟)進行操作。磁碟提供了持久儲存和儲存大量資訊的空間。但是,從磁碟中獲得資訊要比從記憶體中獲取資訊的速度慢很多,因此,很多資料庫引擎利用記憶體來快取資訊,從而加快資料的訪問速度。
資訊如何儲存和從什麼地方獲取對於終端查詢使用者來說是透明的,但是,如果你打算管理oracle,你就需要熟悉oracle的處理方式。本文討論兩個基礎但是很重要和記憶體和磁碟相關的概念:資料庫和例項。
資料庫
在oracle中,資料庫用於描述用來儲存資訊的物理檔案的集合。主要有三種型別的物理檔案:
無論使用多少檔案,它們都是資料庫的一部分。
例項
如果沒用記憶體結構和後台程序運算元據庫,那麼這些資料庫檔案本身將毫無意義,oralce用術語例項定義用於訪問資料庫的一組後台程序和記憶體結構。
乙個例項主要使用兩種記憶體結構:
sga包括用於儲存從資料檔案中讀取的資訊的資料庫快取,用於儲存元資料資訊的資料字典快取和用於儲存最近使用的sql和pl/sql語句的庫快取。pga用於為每個特定的程序需要的資訊分配記憶體,包括排序空間、陣列、游標等。例項還包括相互協作的一組後台程序,他們用於實現不同的功能。例如資料庫寫入器程序,負責儲存所有對資料庫的修改;程序監視器,負責清除失敗的使用者程序。
啟動oracle伺服器:從啟動oracle的不同步驟中可以看出資料庫和例項之間的區別。第一步是例項自身的啟動,不同的後台程序被啟動並且分配了相應的記憶體區。第二步是例項裝載資料庫。最後是開啟資料庫。
儘管通常情況下在啟動oracle的時候這些步驟一起完成,但是有時你需要讓oracle停留在某個階段。我們看下相關的語法,可以使用sql*plus登入oracle嘗試這些命令。
startup或者startup open告訴oracle一次完成三步操作。如果你只想啟動oracle例項,可以使用命令startup nomount,oracle將只啟動例項但是不會裝載資料庫,即啟動乙個空例項。
為什麼需要這麼做呢?有時你可能需要建立新的控制檔案或者新的資料庫,而這些操作必須在訪問資料庫之前完成。你也可以輸入startup mount(或者你之前輸入了startup nomount你可以輸入alter database mount)告訴oracle裝載資料庫檔案。在這種情況下,例項將會訪問和資料庫有關的所有資訊。但是這時使用者還不能訪問資料庫。乙個必須進行的操作的例子是重新命名有system表空間使用的檔案。當完成了所有的修改後,你可以輸入alter database open命令使所有的使用者都可以訪問資料庫。
oracle資料庫和資料庫例項
oracle中的資料庫和資料庫例項 oracle的體系結構簡單來分的話,分成2部分 資料庫 database 和資料庫例項 database instance 這是個容易搞糊塗的概念,在sql server裡面,你在你的機器上安裝一次sql server,那麼你就等於安裝了一次資料庫例項,在這個例項...
資料庫和資料庫例項的概念
很多人都把這兩個概念弄混淆,認為mysql是資料庫,也是資料庫例項。這樣的理解在應用到oracle和sql server的時候可能是正確的,但是再mysql的體系結構中確是不適用的。那麼從概念上理解,該如何區分資料庫和資料庫例項呢?資料庫 資料庫是檔案的集合,是依照某種資料模型組織起來並存放於二級儲...
oracle例項和資料庫的區別
剛接觸oracle的人肯定會對例項和 資料庫感到困惑,例項到底代表些什麼?為什麼會有這個概念的出現?oracle例項 程序 程序所使用的記憶體 sga 例項是乙個臨時性的東西,你也可以認為它 代表了資料庫某一時刻的狀態!資料庫 重做檔案 控制檔案 資料檔案 臨時檔案 資料庫是永久的,是乙個檔案的集合...