A. Oracle資料庫的物理結構和邏輯結構分別是怎麼樣的
1.Oracle資料庫的物理結構Oracle物理結構包含了數據文件、重做日誌文件、控制文件、參數文件、密碼文件、歸檔日誌文件、備份文件、告警日誌文件、跟蹤文件等等;其中數據文件、控制文件、重做日誌文件和參數文件是必須的,其他文件可選。
2.Oracle資料庫的邏輯結構
Oracle資料庫的邏輯結構是一種層次結構,主要由表空間、段、區和數據塊等概念組成。邏輯結構是面向用戶的,用戶使用Oracle開發應用程序使
用的就是邏輯結構。資料庫存儲層次結構及其構成關系,結構對象也從數據塊到表空間形成了不同層次的粒度關系。
B. 什麼叫資料庫結構
資料庫結構是指在計算機的存儲設備上合理存放的相關聯的有結構的數據集合的結構。一個資料庫結構含有各種成分,包括資料庫、數據表、欄位等。
資料庫(Database)
Visual Basic中使用的資料庫是關系型資料庫(Relational Database)。一個資料庫由一個或一組數據表組成。每個資料庫都以文件的形式存放在磁碟上,即對應於一個物理文件。不同的資料庫,與物理文件對應的方式也不一樣。對於dBASE,FoxPro和Paradox格式的資料庫來說,一個數據表就是一個單獨的資料庫文件,而對於Microsoft Access、Btrieve格式的資料庫來說,一個資料庫文件可以含有多個數據表。
1、數據表(Table)
簡稱表,由一組數據記錄組成,資料庫中的數據是以表為單位進行組織的。一個表是一組相關的按行排列的數據;每個表中都含有相同類型的信息。
表實際上是一個二維表格,例如,一個班所有學生的考試成績,可以存放在一個表中,表中的每一行對應一個學生,這一行包括學生的學號,姓名及各門課程成績。
2、記錄(Record)
表中的每一行稱為一個記錄,它由若干個欄位組成。
3、欄位(Field)
也稱域。表中的每一列稱為一個欄位。每個欄位都有相應的描述信息,如數據類型、數據寬度等。
(2)資料庫的物理結構是什麼擴展閱讀:
資料庫結構的其他組成結構:
1、索引(Index)
為了提高訪問資料庫的效率,可以對資料庫使用索引。當資料庫較大時,為了查找指定的記錄,則使用索引和不使用索引的效率有很大差別。
索引實際上是一種特殊類型的表,其中含有關鍵欄位的值(由用戶定義)和指向實際記錄位置的指針,這些值和指針按照特定的順序(也由用戶定義)存儲,從而可以以較快的速度查找到所需要的數據記錄。
2、查詢(Query)
一條SQL(結構化查詢語言)命令,用來從一個或多個表中獲取一組指定的記錄,或者對某個表執行指定的操作。當從資料庫中讀取數據時,往往希望讀出的數據符合某些條件,並且能按某個欄位排序。使用SQL,可以使這一操作容易實現而且更加有效。
SQL是非過程化語言(有人稱為第四代語言),在用它查找指定的記錄時,只需指出做什麼,不必說明如何做。每個語句可以看作是一個查詢(query),根據這個查詢,可以得到需要的查詢結果。
3、過濾器(Filter)
過濾器是資料庫的一個組成部分,它把索引和排序結合起來,用來設置條件,然後根據給定的條件輸出所需要的數據。
4、視圖(view)
數據的視圖指的是查找到(或者處理)的記錄數和顯示(或者進行處理)這些記錄的順序。在一般情況下,視圖由過濾器和索引控制。
C. 請問Oracle的資料庫體系的物理結構是怎樣的
物理結構,即Oracle資料庫使用的操作系統文件結構。
對於資料庫物理結構文件,不同的oracle版本,不同的操作系統平台上有不同的存儲目錄結構.
資料庫的物理結構文件按其作用可以分為三類:
數據文件
日誌文件
控制文件
一、數據文件
數據文件用來存儲資料庫的數據,如表、索引等。讀取數據時,系統首先從資料庫文件中讀取數據,並存儲到SGA的數據緩沖區中。
二、重做日誌文件
重做日誌文件記錄對資料庫的所有修改信息。它瞎耐是虛神旦三類文件中最復雜的一類文件,也是保證資料庫安全與資料庫備份與恢復有直接關系的文件。
三、控制文件
控制文件是一個二進制文件,用來描述資料庫的物理結構,一個資料庫只需要一個控制文件,控制文件的內容包括:
資料庫差擾名及資料庫唯一標識
數據文件和日誌文件標識
資料庫恢復所需的同步信息,即檢查點號
.
Oracle資料庫的體系結構包括四個方面:資料庫的物理結構、邏輯結構、內存結構及進程。
D. 數據的物理結構包括哪兩種表示
數據結構在計算機中的表示稱為數據的物理結構。它包括數據元素的表示和關系的表示。
資料庫的物理結構文件按其作用可以分為三類:數據文件、日誌文件、控制文件。重做日誌文件記錄對資料庫的所有修改信息。它是三類文件中最復雜的一類文件,也是保證資料庫安全與資料庫備份與恢復有直接關系的文件。
E. 資料庫的物理結構設計指的是什麼
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位元組
F. 資料庫邏輯結構和物理結構的區別
邏輯結構反應資料庫中各數據之間的邏輯關系;物理結構,是數據的存儲方式,能不能快速訪問、所需數據,與此有關。
G. 輕松掌握什麼是數據的物理(存儲)結構
數據結構在計算機中的表示(映像)稱為數據的物理(存儲)結構 它包括數據元素的表示和關系的表示
物理結構 即oracle資料庫使用的操作系統文件結構 對於資料庫物理結構文件 不同的oracle版本 不同的操作系統平台上有不同的存儲目錄結構
winnt| d:oracleproct oradataDB_NAME * *(oracle g);d:orantdatabase* *(oracle oracle ) Unix | /home/app/oracle/proct/ /oradata/DB_NAME/* * ( g);/home/app/oradata/db_name/* *( i i)
資料庫的物理結構文件按其作用可以分為三類
數據文件
日誌文件
控制文件
一 數據文件
數據文件用來存儲資料庫的數據 如表 索引等 讀取數據時 系統首先從資料庫文件中讀取數據 並存儲到SGA的數據緩沖區中 這是為了減少I/O 如果讀取數據時 緩沖區中已經有要讀取的數據 就不需要再從磁碟中讀取了 存儲數據時也是一樣 事務提交時改變的數據先存儲到內存緩沖區中 再由oracle後台進程DBWR決定如何將其寫入到數據文件中
查詢數據文件的信息
sql>select * from dba_data_files或 sql>select * from v$datafile (此數據字典包含文件的動態信息)
一個數據文件只與一個資料庫相聯系 數據文件的大小是可以改變的 可以通過以下語句查詢表空間的空間空閑量
sql>select * from dba_free_space
修改數據文件的大小
sql>alter database datafile "d: df dbf" resize m
資料庫文件的自動擴展特性 請看下面的例子:
sql>alter tablespace tbs add datafile "d: df dbf" size m autoextend on next m maxsize m sql>alter database mydb datafile "d: df dbf" "d: df dbf" autoexetend off sql>alter database mydb datafile "d: df dbf" "d: df dbf" autoexetend on next m maxsize unlimited
二 重做日誌文件
重做日誌文件記錄對資料庫的所有修改信息 它是三類文件中最復雜的一類文件 也是保證資料庫安全與資料庫備份與恢復有直接關系的文件
日誌文件組與日誌成員
在每一個oracle資料庫中 至少有兩個重做日誌文件組 每組有一個個或多個重做日誌文件 即日誌成員 同一組中的成員是鏡像關系 它們存儲的內容是一模一樣的 Oracle在寫日誌時 以一個日誌組為邏輯單位寫入 只在將日誌都寫入日誌組中的每個成員文件中後 寫日誌才完成
日誌工作原理
Oracle有多個日誌文件組 當一個日誌文件組中所有的成員所有的成員同時被寫滿數據時 系統自動轉換到下一個日誌文件組 這個轉換過程稱為日誌切換
當日誌切換後 會給前一個日誌組編一個號 用於歸檔日誌的編號 這個編號稱為日誌序列號 此編號由 開始 每切換一次 序列號自動加 最大值受參數MAXLOGHISTORY限制 該參數的最大值為
當oracle把最後一個日誌組寫滿了以後 自動轉向第一個日誌組 這時 再向第一個日誌組寫日誌的時候 如果資料庫運行在非歸檔模式下 這個日誌組中的原有日誌信息就會被覆蓋
使用以下語句查詢日誌文件信息
sql>select * from v$log
相關欄位說明如下
GROUP#:日誌文件組號
THREAD#:日誌文件線程號 一般為 雙機容時為
SEQUENCE#:日誌序列號
BYTES:日誌文件大小
MEMBERS:該組的日誌成員個數
ARC:該組日誌信息是否已經完成歸檔
STATUS:該組狀態(CURRENT:表示當前正在使用的組 NACTIVE:表示非活動組 ACTIVE:表示歸檔未完成)
FIRST_CHANGE#:系統改變號SCN 也叫檢查點號
FIRST_TIME:系統改變時間
DBA可以使用下列命令進行強制日誌切換
sql>alter system switch logfile
NOARCHIVELOG/ARCHIVELOG
NOARCHIVELOG是非歸檔模式 如果資料庫運行在這種模式下 當日誌切換時 新切換到的日誌組中的日誌信息會被覆蓋 ARCHIVELOG:歸檔模式 如果資料庫運行在這種模式下 日誌會被歸檔存儲 產生歸檔日誌 且在未歸檔之前 日誌不允許被覆蓋寫入
要確認資料庫的歸檔方式 可以查詢數據字典v$database:
sql>select log_mode from v$database
要了解歸檔日誌的信息 可以查詢數據字典v$archived_log
要將資料庫改為歸檔模式
a alter database archivelog
b 設置初始化參數LOG_ARCHIVE_START=TRUE
c 設置歸檔文件目標存儲路徑 LOG_ARCHIVE_DEST=C:ORAARCHIVE
d 設置歸檔文件命名格式參數 LOG_ARCHIVE_FORMAT="ORCK%T%S ARC" 這個格式中的%S表示日誌序列號 自動左邊補零 %s表示日誌序列號 自動左邊不補零 %T表示日誌線程號 左邊補零 %t表示日誌線程號不補零
e 重新啟動資料庫
CKPT進程(檢查點進程)
CKPT進程保證有修改過的資料庫緩沖區中的數據都被寫入到數據文件 日誌文件 數據文件 資料庫頭和控制文件中都有寫入檢查點標記 資料庫在恢復時 只需提供自上一個檢查以來所做的修改 檢查點完成時系統將更新資料庫資料庫頭和控制文件
參數LOG_CHECKPOINT_TIMEOUT決定一個檢查點發生的時間間隔 LOG_CHECKPOINT_INTERVAL決定一個檢查需要填充的日誌文件塊的數量 檢查點號 也稱系統改變號(SCN) 它標識一個檢查點 可以通過v$log查詢日誌文件的檢查點信息 通過v$datafile查詢數據文件的檢查點信息 通過v$database查詢資料庫頭的檢查點信息 三個地方的檢查點號相同 如果不同 說明發明資料庫不同步 此時資料庫肯定無法正常啟動
增加與刪除日誌文件組 日誌成員(詳細語法請參考oracle文檔)
alter database [database] add logfile [group integer] filespec[ [group alter database [database] add logfile ( ) alter database [database] drop logfile [grout integer] alter database[database] add logfile member "filespec" [reuse] to group integer alter database [database] drop logfile member "filename" "filename" alter database [database] rename file "filename" to "filename
"
清除日誌文件數據
alter database [database] clear [unarchived] logfile group integer|filespec
三 控制文件
控制文件是一個二進制文件 用來描述資料庫的物理結構 一個資料庫只需要一個控制文件 控制文件的內容包括
資料庫名及資料庫唯一標識
數據文件和日誌文件標識
資料庫恢復所需的同步信息 即檢查點號
控制文件由參數control_files指定 格式如下
control_files=("home/app/ /control ctl" "home/app/ /control ctl")
參數中各個文件是鏡像關系 也就是說 幾個文件中只要有一個文件完好 資料庫就可以正常運行
以下語句查詢控制文件的信息
sql>select * from v$controlfile
如果控制文件損壞或丟失 資料庫將終止並且無法啟動 所以 要對控制文件進行鏡象 手工鏡像步驟如下
a 關閉資料庫
b 復制控制文件
c 修改參數文件 加入新增的控制文件位置描述
d 重新啟動資料庫
另外注意 控制文件中還包含幾個伺服器參數的設置 如果修改這些參數的值 剛需要重新創建控制文件 這些參數是
MAXLOGFILES:最大日誌文件個數
MAXLOGMEMBERS:最大日誌成員個數
MAXLOGHISTORY:最大歷史日誌個數
MAXDATAFILES:最大數據文件個數
MAXINSTANCES:最大實例文件個數
所有修改資料庫結構的命令都會引起控制文件的改變 同時出會記錄在oracle跟蹤文件中 跟蹤文件的名稱為alter_SID log 路徑如下
d:oracleproct adminDB_NAMEmpSIDALRT log(unix是alter_SID ora)
也可以在參數文件中指定跟蹤文件的存儲路徑 後台進程跟蹤文件目錄由參數background_mp_dest指定 用戶跟蹤文件位置由參數user_bmp_dest指定 如
lishixin/Article/program/SQL/201405/30847
H. 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是系統為實例分配的一組共享內存緩沖區,用於存放資料庫實例和控制信息,以實現對資料庫中數據的治理和操作。