『壹』 Oracle資料庫物理組建件的類型有什麼
Oracle兩部分:實例和資料庫
實例由以下組成:SGA,Sharedpool,Databasebuffercache,Redologbuffercache。資料庫由物理文件組成,其中必須有的文件是:數據文件,控制文件,重做日誌,另外還有:參數文件,口令文件,歸檔日誌文件(這三個不是必須的)。
用戶建立連接後,啟動一個伺服器進程,用來將來代替用戶進程完成SQLCOMMAND,再通過Oracle實例實現對資料庫的相關文件進行改變(數據進行讀取或修改)。
用戶進程不可以直接操作資料庫,而必須通過建立連接後,再通過伺服器進程來完成。
OracleSERVER由兩個部分組成,
1、INSTANCE:又由內存結構和後台進程。
2、DATABASE:又由數據文件,日誌文件和控制文件組成<這三個文件是必需的>。
CONTROLFILE是用來連接實例和DATABASE:
SQL>SHUTDOWNIMMEDIATE
SQL>STARTUPNOMOUNT
SQL>ALTERDATABASEMOUNT
以上三個過程就是通過CONTROLFILE來連接實例和資料庫。
SQL>ALTERDATABASEOPEN:在OPEN的過程對DATABASE的數據文件和重做日誌文件進行一次性的驗證,驗證它們的狀態。
OracleINSTANCE:存取資料庫的一個手段。
一個DATABASE與INSTANCE之間是1:N的關系,一個INSTANCE只能操作一個DATABASE,由內存結構(共享池,
BUFFERCACHE,REDOLOGBUFFERCACHE)及相應的進程結構組成(PMON<程序監控進程>,SMON<系統監控進程>,CKPT<檢查點進程>)。
SQL>SHOWSGA---顯示DATABASE內存結構信息
SQL>SETWRAPOFF
SQL>SETLINESIZE200
以上這兩個是設置行寬。
SQL>SELECT*FROMV$BGPROCESS;
將看到在這個系統中所有可能使用到的進程,其中PADDR並不每個進程都分配到有效的地址,即並不是每個進程都是必須的。
SQL>SELECT*FROMV$BGPROCESSWHEREPADDR<>''00''
將顯示所有必需的進程。
連接到Oracle實例包括建立一個用戶連接及創建會話。
SQL>SELECT*FROMV$CONTROLFILES;--顯示現系統下由幾個控制文件組成。
SQL>SELECT*FROMV$DATAFILE;--顯示由幾個數據文件組成。
SQL>SELECT*FROMV$LOGFILE;--顯示由幾個日誌文件組成。
OracleMEMORYSTRUCTURE(內存結構)
由兩部分組成:
1、SGA是動態的,其最大值由SGA_MAX_SIZE指定,SGA的內存由SGACOMPONENTS來動態調整。
2、PGA是不共享的,即其包含的信息是不一樣的,有兩個可享的內存可以由SGA配置:
<1>LARGEPOOL
<2>JAVAPOOL
SQL>SHOWPARAMETERSHARED
SQL>SHOWPARAMETERDB_CACHE
SQL>SHOWPARAMETERLOG
以上三個命令是用於查看相關內存信息。
SQL>ALTERSYSTEMSETDB_CACHE_SIZE=20M;
所有內存大小總和不能大於SGA_MAX_SIZE的值,當提示信息出現?號或亂碼時,是由於系統的語言問題。
可以通過ALTERSESSIONSETNLS_LANGUAGE=''AMERICAN''或ALTERSESSIONSETNLS_LANGUAGE="SIMPLE
CHINESE"。
SHAREDPOOL(共享池)
<1>LIBRARYCACHE庫緩存;
<2>DATADICTIONARYCACHE數據字典緩存,有的地方又稱行CACHE,由SHARED_POOL_SIZE指定大小。
SQL>ALTERSYSTEMSETSHARED_POOL_SIZE=64M;
LIBRARYCACHE主要為提高代碼的共享,存儲的是最近使用的SQL和PL/SQL代碼。
<1>用最近最少使用(LRU)演算法;
<2>包括兩個結構1:共享SQL代碼2:共享PL/SQL代碼;
<3>不可直接定義,而由SHAREDPOOLSIZE決定。
DATADICTONARYCACHE。
如:SQL>SELECT*FROMAUTHORS;
執行此命令的過程是:首先確認是否存在AUTHORS,,然後確認欄位存不存在,再檢查語法,最後驗證許可權,而這些信息就屬於DATADICTIONARYCACHE的內容。其包含的信息有:DATABASEFILES,表,索引,欄位,用戶,許可權和其他資料庫對象。
<1>主要用來改變系統的感應時間和性能。
<2>通過改變SHAREDPOOL大小來設置,DATADICTIONARYCACHE不能單獨設置大小
『貳』 1資料庫的物理結構有哪幾種文件組成
Microsoft® SQL Server™ 2000
使用一組操作系統文件映射資料庫。資料庫中的所有數據和對象(如表、存儲過程、觸發器和視圖)都存儲在下列操作系統文件中:
主要
該文件包含資料庫的啟動信息,並用於存儲數據。每個資料庫都有一個主要數據文件。
次要
這些文件含有不能置於主要數據文件中的所有數據。如果主文件可以包含資料庫中的所有數據,那麼資料庫就不需要次要數據文件。有些資料庫可能足夠大故需要多個次要數據文件,或使用位於不同磁碟驅動器上的輔助文件將數據擴展到多個磁碟。
事務日誌
這些文件包含用於恢復資料庫的日誌信息。每個資料庫都必須至少有一個日誌文件。
例如,創建簡單的資料庫 sales
時,可以只使用一個包含所有數據和對象的主文件和一個包含事務日誌信息的日誌文件。另一種情況是,創建更復雜的資料庫 orders
時,可以使用一個主文件和五個輔助文件,資料庫內的數據和對象擴展到所有的六個文件中,另外有四個日誌文件包含事務日誌信息。
文件組允許對文件進行分組,以便於管理和數據的分配/放置。例如,可以分別在三個硬碟驅動器上創建三個文件(Data1.ndf、Data2.ndf
和 Data3.ndf),並將這三個文件指派到文件組 fgroup1 中。然後,可以明確地在文件組 fgroup1
上創建一個表。對表中數據的查詢將分散到三個磁碟上,因而性能得以提高。在
RAID(獨立磁碟冗餘陣列)條帶集上創建單個文件也可以獲得相同的性能改善。然而,文件和文件組使您得以在新磁碟上輕易地添加新文件。另外,如果資料庫超過單個
Microsoft Windows NT® 文件的最大大小,則可以使用次要數據文件允許資料庫繼續增長。
文件和文件組的設計規則
文件和文件組的設計規則包括:
文件或文件組不能由一個以上的資料庫使用。例如,文件 sales.mdf 和 sales.ndf 包含 sales
資料庫中的數據和對象,任何其它資料庫都不能使用這兩個文件。
文件只能是一個文件組的成員。
數據和事務日誌信息不能屬於同一文件或文件組。
事務日誌文件不能屬於任何文件組。
『叄』 資料庫表的物理結構是什麼
Log File物理結構
log block結構分為日誌頭段、日誌記錄、日誌尾部
Block Header,佔用12位元組
Data部分
Block tailer,佔用4位元組
Block Header
這個部分是每個Block的頭部,主要記錄的塊的信息
Block Number,表示這是第幾個block,佔用4位元組,是通過LSN計算得來的,佔用4位元組
Block data len,表示該block中有多少位元組已經被使用了,佔用2位元組
First Rec offet,表示該block中作為第一個新的mtr開始的偏移量,佔用2位元組
Checkpoint number,表示該log block最後被寫入時的檢查點的值,佔用4位元組
『肆』 SQL Server資料庫的物理文件有哪些
在microsoft
sql
server
2005中,用於數據存儲的實用工具是資料庫。資料庫的物理表現是操作系統文件,即在物理上,一個資料庫由一個或多個磁碟上的文件組成。這種物理表現只對資料庫管理員是可見的,而對用戶是透明的。邏輯上,一個資料庫由若干個用戶可視的組件構成,如表、視圖、角色等,這些組件稱為資料庫對象。用戶利用這些邏輯資料庫的資料庫對象存儲或讀取資料庫中的數據,也直接或間接地利用這些對象在不同應用程序中完成存儲、操作和檢索等工作。邏輯資料庫的資料庫對象可以從企業管理器中查看.
每個sql
server
2005資料庫(無論是系統資料庫還是用戶資料庫)在物理上都由至少一個數據文件和至少一個日誌文件組成。出於分配和管理目的,可以將資料庫文件分成不同的文件組。
數據文件:分為主要數據文件和次要數據文件兩種形式。每個資料庫都有且只有一個主要數據文件。主要數據文件的默認文件擴展名是.mdf。它將數據存儲在表和索引中,包含資料庫的啟動信息,還包含一些系統表,這些表記載資料庫對象及其他文件的位置信息。次要數據文件包含除主要數據文件外的所有數據文件。有些資料庫可能沒有次要數據文件,而有些資料庫則有多個次要數據文件。次要數據文件的默認文件擴展名是.ndf。
日誌文件:sql
server具有事務功能,以保證資料庫操作的一致性和完整性。所謂事務就是一個單元的工作,該單元的工作要麼全部完成,要麼全部不完成。日誌文件用來記錄資料庫中已發生的所有修改和執行每次修改的事務。sql
server是遵守先寫日誌再執行資料庫修改的資料庫系統,因此如果出現資料庫系統崩潰,資料庫管理員(dba)可以通過日誌文件完成資料庫的修復與重建。每個資料庫必須至少有一個日誌文件,但可以
不止一個。日誌文件的默認文件擴展名是.1df。建立資料庫時,sqi。server會自動建立資料庫的日誌文件。
文件組:一些系統可以通過控制在特定磁碟驅動器上放置的數據和索引來提高自身的性能。文件組可以對此進程提供幫助。系統管理員可以為每個磁碟驅動器創建文件組,然後將特定的表、索引、或表中的text、ntext或image數據指派給特定的文件組。
sqi.server有兩種類型的文件組:主文件組和用戶定義文件組。主文件組包含主要數據文件和任何沒有明確指派給其他文件組的文件,系統表的所有頁均分配在主文件組中;用戶定義文件組是在cr
e_ate
data_base或ai,ter
data.base語句中,使用fii,egroup關鍵字指定的文件組。sqt.server
2005在沒有文件組時也能有效地工作,因此許多系統不需要指定用戶定義文件組。在這種情況下,所有文件都包含在主文件組中,而且sqi。server
2005可以在資料庫內的任何位置分配數據。
每個資料庫中都有一個文件組作為默認文件組運行。當sqi。server給創建時沒有為其指定文件組的表或索引分配頁時,將從默認文件組中進行分配。一次只能有一個文件組作為默認文件組。如果沒有指定默認的文件組,主文件組則成為默認的文件組。
『伍』 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是系統為實例分配的一組共享內存緩沖區,用於存放資料庫實例和控制信息,以實現對資料庫中數據的治理和操作。