1. Chunks
1)Chunks用于存儲數據的連續磁盤空間;
2)一個chunk可以是一個裸設備(raw device)、一個裸設備中的一部分、一個UNIX文件(cooked file);
3)一個chunk最大可以是4TB;
4)最多可以有32767個chunk。
2. Dbspaces
1)Dbspace是一個或多個chunk的邏輯集合;
2)一個dbspace可以有1到32767個chunk;
3)最多可以有2047個dbspace;
4)表格創建于dbspaces之上;
5)表格空間成長時,即加新chunk與dbspaces中成長dbspaces空間即可,表格schema無需變動。
3. Blobspaces
1)Blobspace用于存儲簡單大對象(simple large object,TEXT或BYTE類型的對象)的專門dbspace;
2)blobspace中的基本存儲單元為blobpage;
3)blobpage的大小可被配置為數據庫服務器的數據頁(page)的大小的整數倍;
4)對于blogspace里的數據,數據庫服務器將它們寫回磁盤時不使用緩沖區(buffer)。
4. Sbspaces
1)Sbspace用于存儲只能打對象(smart large object,BLOB或CLOB類型的對象)的專門dbspace;
2)Sbspace的基本存儲單元是sbpage;
3)Sbpage的大小與數據庫服務器的數據頁大小一樣,不是可配置的;
4)sbspace中分配存儲空間時基本單元是extent。
5. 讀取和緩存數據
1)數據庫服務器進程通過共享內存池達到共享數據的目的;
2)當用戶發出一個查詢請求時,數據被從磁盤讀入共享內存池緩沖區(buffer pool)中,I/O的單位是數據頁(page);
3)緊接著對該數據的讀取操作將從讀取緩沖區中得到該數據而不用再從磁盤中讀入。共享數據是多使用者數據庫的基本原理。
4)使用者線程對該數據的修改對所有的數據庫進程都是可見的。
6. 物理日志和邏輯日志
1)數據事物(transaction)
i)使用COMMIT WORK語句提交從事務開始時對數據庫所作的全部修改;
ii)使用ROLLBACK WORK語句取消某個事務,并撤銷該事物開始以來所有發生的更改;
iii)物理日志與邏輯日志是數據事務提交或取消事務的機制與手段。
2)物理日志(Physical logging)
i)如果一個數據被更改了,物理日志將存儲該數據頁被更改前的數據;
ii)物理日志由磁盤上連續的數據頁組成;
iii)用于系統失敗時的恢復。
3)邏輯日志(Logical logging)
i)記錄了事務的細節;
ii)事務的記錄被保存在邏輯日志中;
iii)邏輯日志由邏輯日志文件組成。每個文件由磁盤上連續的數據頁組成,用于事務回滾和系統失敗時系統失敗時的恢復。
7. 檢查點(Checkpoints)和恢復(Recovery)
1)數據庫完整性
如何保障數據庫完整性?
系統失敗后如何恢復到系統失敗之前的最后一個狀態。
2)檢查點
i) 檢查點事件是周期性的系統事件。檢查點事件發生時,所有被修改的緩沖區將被寫回磁盤;
ii)維護了數據庫服務器的一致狀態;
iii)關于檢查點事件的信息被記錄在系統數據頁和邏輯日志中(用于數據庫檢查失敗時的恢復)。
3)恢復(Recovery)
i) 如果一個系統失敗發生了,數據庫服務器將被重啟;
ii)接著根據物理日志,數據庫服務器將最后一個檢查點之后被修改的數據恢復為之前的數據;
iii)然后根據邏輯日志,最后一個檢查點之后的事務被重做。這樣數據庫服務器就能恢復到系統失敗之前的最后一個一直狀態。
posted on 2010-11-04 15:17
阿蜜果 閱讀(1280)
評論(0) 編輯 收藏 所屬分類:
database