導航:首頁 > IDC知識 > oracle伺服器組成

oracle伺服器組成

發布時間:2020-12-11 21:10:47

1、oracle資料庫的結構是什麼?

Oracle資料庫的體系結構包括四個方面:資料庫的物理結構、邏輯結構、內存結構及進程。

1. 物理結構

物理資料庫結構是由構成資料庫的操作系統文件所決定,Oracle資料庫文件包括:

數據文件(Data File)
數據文件用來存儲資料庫中的全部數據,例如資料庫表中的數據和索引數據.通常以為*.dbf格式,例如:userCIMS.dbf 。

日誌文件(Redo Log File)
日誌文件用於記錄資料庫所做的全部變更(如增加、刪除、修改)、以便在系統發生故障時,用它對資料庫進行恢復。名字通常為Log*.dbf格式,如:Log1CIMS.dbf,Log2CIMS.dbf 。

控制文件(Control File)
每個Oracle資料庫都有相應的控制文件,它們是較小的二進制文件,用於記錄資料庫的物理結構,如:資料庫名、資料庫的數據文件和日誌文件的名字和位置等信息。用於打開、存取資料庫。名字通常為Ctrl*ctl 格式,如Ctrl1CIMS.ctl。

配置文件
配置文件記錄Oracle資料庫運行時的一些重要參數,如:數據塊的大小,內存結構的配置等。名字通常為init*.ora 格式,如:initCIMS.ora 。

2 邏輯結構

Oracle資料庫的邏輯結構描述了資料庫從邏輯上如何來存儲資料庫中的數據。邏輯結構包括表空間、段、區、數據塊和模式對象。資料庫的邏輯結構將支配一個資料庫如何使用系統的物理空間.模式對象及其之間的聯系則描述了關系資料庫之間的設計.

一個資料庫從邏輯上說是由一個或多個表空間所組成,表空間是資料庫中物理編組的數據倉庫,每一個表空間是由段(segment)組成,一個段是由一組區(extent)所組成,一個區是由一組連續的資料庫塊(database block)組成,而一個資料庫塊對應硬碟上的一個或多個物理塊。一個表空間存放一個或多個資料庫的物理文件(即數據文件).一個資料庫中的數據被邏輯地存儲在表空間上。

表空間(tablespace)
Oracle資料庫被劃分為一個或多個稱為表空間的邏輯結構,它包括兩類表空間,System表空間和非System表空間,其中,System表空間是安裝資料庫時自動建立的,它包含資料庫的全部數據字典,存儲過程、包、函數和觸發器的定義以及系統回滾段。除此之外,還能包含用戶數據。。

一個表空間包含許多段,每個段有一些可以不連續的區組成,每個區由一組連續的數據塊組成,數據塊是資料庫進行操作的最小單位。

每個表空間對應一個或多個數據文件,每個數據文件只能屬於一個表空間。

資料庫塊(database block)
資料庫塊也稱邏輯塊或ORACLE塊,它對應磁碟上一個或多個物理塊,它的大小由初始化參數db-block-size(在文件init.ora中)決定,典型的大小是2k。Pckfree 和pctused 兩個參數用來優化數據塊空間的使用。

區(extent)
區是由一組連續的數據塊所組成的資料庫存儲空間分配的邏輯單位。

段(segment)
段是一個或多個不連續的區的集合,它包括一個表空間內特定邏輯結構的所有數據,段不能跨表空間存放。Oracle資料庫包括數據段、索引段、臨時段、回滾段等。

模式對象(schema object)
Oracle資料庫的模式對象包括表、視圖、序列、同意詞、索引、觸發器、存儲.過程等,關於它們將重點在後面章節介紹。

3.Oracle Server系統進程與內存結構

當在計算機伺服器上啟動Oracle資料庫後,稱伺服器上啟動了一個Oracle實例(Instance)。ORACLE 實例(Instance)是存取和控制資料庫的軟體機制,它包含系統全局區(SGA)和ORACLE進程兩部分。SGA是系統為實例分配的一組共享內存緩沖區,用於存放資料庫實例和控制信息,以實現對資料庫中數據的治理和操作。

進程是操作系統中一個極為重要的概念。一個進程執行一組操作,完成一個特定的任務.對ORACLE資料庫治理系統來說,進程由用戶進程、伺服器進程和後台進程所組成。

當用戶運行一個應用程序時,系統就為它建立一個用戶進程。伺服器進程處理與之相連的用戶進程的請求,它與用戶進程相通訊,為相連的用戶進程的ORACLE請求服務。

為了提高系統性能,更好地實現多用戶功能,ORACLE還在系統後台啟動一些後台進程,用於資料庫數據操作。

系統進程的後台進程主要包括:
SMON 系統監控進程:(system monitor)負責完成自動實例恢復和回收分類(sort)表空間。
PMON 進程監控進程:(PRocess monitor)實現用戶進程故障恢復、清理內存區和釋放該進程所需資源等。
DBWR 資料庫寫進程:資料庫緩沖區的治理進程。
在它的治理下,資料庫緩沖區中總保持有一定數量的自由緩沖塊,以確保用戶進程總能找到供其使用的自由緩沖塊。
LGWR 日誌文件寫進程:是日誌緩沖區的治理進程,負責把日誌緩沖區中的日誌項寫入磁碟中的日誌文件上。每個實例只有一個LGWR進程。
ARCH 歸檔進程:(archiver process)把已經填滿的在線日誌文件拷貝到一個指定的存儲設備上。僅當日誌文件組開關(switch)出現時,才進行ARCH操作。ARCH不是必須的,而只有當自動歸檔可使用或者當手工歸檔請求時才發出。
RECO 恢復進程:是在具有分布式選項時使用的一個進程,主要用於解決引用分布式事務時所出現的故障。它只能在答應分布式事務的系統中出現。
LCKn 封鎖進程:用於並行伺服器系統,主要完成實例之間的封鎖。
內存結構(SGA)
SGA是Oracle為一個實例分配的一組共享內存緩沖區,它包含該實例的數據和控制信息。SGA在實例啟動時被自動分配,當實例關閉時被收回。資料庫的所有數據操作都要通過SGA來進行。

SGA中內存根據存放信息的不同,可以分為如下幾個區域:Buffer Cache:存放資料庫中資料庫塊的拷貝。它是由一組緩沖塊所組成,這些緩沖塊為所有與該實例相鏈接的用戶進程所共享。緩沖塊的數目由初始化參數DB_BLOCK_BUFFERS確定,緩沖塊的大小由初始化參數DB_BLOCK_SIZE確定。大的數據塊可提高查詢速度。它由DBWR操作。

b. 日誌緩沖區Redo Log Buffer:存放數據操作的更改信息。它們以日誌項(redo entry)的形式存放在日誌緩沖區中。當需要進行資料庫恢復時,日誌項用於重構或回滾對資料庫所做的變更。日誌緩沖區的大小由初始化參數LOG_BUFFER確定。大的日誌緩沖區可減少日誌文件I/O的次數。後台進程LGWR將日誌緩沖區中的信息寫入磁碟的日誌文件中,可啟動ARCH後台進程進行日誌信息歸檔。

c. 共享池Shared Pool:包含用來處理的SQL語句信息。它包含共享SQL區和數據字典存儲區。共享SQL區包含執行特定的SQL語句所用的信息。數據字典區用於存放數據字典,它為所有用戶進程所共享。

Cursors:一些內存指針,執行待處理的SQL語句
其他信息區:除了上述幾個信息區外,還包括一些進程之間的通訊信息(如封鎖信息);在多線索伺服器配置下,還有一些程序全局區的信息,請求隊列和響應隊列等。 本文來自: http://hi.baidu.com/ipbun/blog/item/3f75d7230a7f5ee698250a7c.html

2、Oracle資料庫伺服器的兩個主要組成部分是什麼?

兩個主要的組成部分是:資料庫和實例Oracle資料庫用於存儲和檢索信息,是數據的集合。包括邏輯結構和物理結構。

3、查看oracle伺服器中的所有資料庫名命令?

select
name
from
v$database
,直接運行就可以查看了,也可以查看tnsnames.ora
的連接,有個sid,sid就是服務名了!!!

4、oracle伺服器上一般都有幾個資料庫?

首先明確資料庫的概念:控制文件+數據文件+日誌文件
那麼,一台伺服器上的資料庫內數量沒有限制,但一容次只能啟動一個
如果說一般生產中使用,當然只有一個了,總不能創建幾個動不動切換

如果你說的資料庫指的是sqlserver中的庫概念,對應的應該是oracle的表空間,同樣沒有限制,根據業務來規劃,一般用來方便管理和平衡IO(如果數據文件放在不同的磁碟上)

5、查看oracle伺服器中的所有資料庫名命令?

Oracle伺服器由資料庫和實例組成,實例包括進程和內存結構。
你連接到一個實例專上,只屬能查到與該實例對應的資料庫。資料庫名可以這樣簡單查詢
show parameter db_name
或者樓上的語句也可以,但是都只能獲得當前的資料庫名。

6、怎麼查看oracle資料庫伺服器的名字

應該是DBMS的服務名把,因為有允許多重駐留的,有多個服務名
1.查看oracle的安裝目錄,
方法是查看注冊表:
如:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ORACLE_HOME REG_SZ E:\ORACLE\ORA92
得到了oracle的安裝目錄
一般來講,如果伺服器在安裝時採用的是默認值那麼這個值是:D:\ORACLE\ORA92

2.找到tnsnames.ora文件
在根目錄下面找到\network\ADMIN\tnsnames.ora 文件,並打開

3.仔細查看裡面的tnsnames.ora 配置
例如
# TNSNAMES.ORA Network Configuration File: d:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
WZZ=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = wzz)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = WZZ)
)
)
其中的service_name就是服務名,例如對如上面的文件 ,服務名就是WZZ

附 C#獲取oracle伺服器名 :

#region 從注冊表中讀取安裝主目錄的值
/// <summary>
/// 從注冊表中讀取安裝主目錄的值
/// </summary>
/// <param name="setupKey"></param>
/// <returns></returns>
public static string ReadHomeDirectory(string setupKey)
{
RegistryKey readKey;

try
{
readKey = Registry.LocalMachine.OpenSubKey
("Software\\ORACLE", false);

foreach (string name in readKey.GetValueNames())
{
if (name == setupKey)
{
return readKey.GetValue(name).ToString();
}
}

return null;
}
catch
{
return null;
}
}
#endregion

7、Oracle伺服器由什麼組成

Oracle資料庫伺服器 由 資料庫和實例組成

8、怎樣建立oracle資料庫伺服器

1 找台伺服器,安裝oracle伺服器端,這個是關鍵。

2 安裝成功後,建立監聽,使用本機名或者本機ip都可以。

3 可以使用安裝時的orcl資料庫的名稱,或者新建一個資料庫名稱。

4 安裝oracle客戶端,配置好後,進行測試。

9、oracle資料庫中,伺服器是什麼概念?scott是哪兒來的?

一、Oracle服務(器)端
一般ORACLE資料庫伺服器安裝在一台機器上,負責數據存儲與管理,裝資料庫伺服器的機器為伺服器端。
Oracle服務端提供oracle服務的實例,其是資料庫的核心,用於資料庫的管理,對象的管理與存儲、數據的存儲、查詢、資料庫資源的監控、監聽等一些服務。
二、scott用戶
對於熟悉Oracle或者接觸過Oracle的人,scott這個用戶大家一定相當的熟悉。從Oracle第一個商業化版本至今,oracle的默認資料庫里都少不了這個名字為scott,密碼為tiger的用戶,這個scott究竟有何來歷,怎麼在我們的oracle的版本里一直都不能少呢。
這個就要追朔到Oracle的創業階段了, 1977年6月,埃里森,Bob Miner和Ed Oates在矽谷共同創辦了一家名為軟體開發實驗室(Software Development Laboratories,SDL)的計算機公司,這個只有三個人的公司就是後來在獨領資料庫風騷的ORACLE公司的前身。 當時埃里森年界32歲,由於合同的關系還在自己原來的公司里不能出來,只是一個程序員而已。他過不來,總要有寫代碼的人,公司的第一個程序員出現了,他的名字就是scott,他的貓的名字就叫trigger,可能是為了這個第一位的程序員的緣故吧,所以也就有了scott這個用戶,而且一直沒有忘懷,留戀至今。

與oracle伺服器組成相關的知識