特別聲明:文獻部分來自上海漢得信息服務有限公司
oracle的產品結構:
oracle安裝步驟
1 oracle引擎安裝
2創建oracle數據庫
一個數據庫引擎可以安裝多個數據庫
一個數據庫匹配一個數據字典
oracle數據庫的特點:
1 支持大數據庫、多用戶的高性能的事務處理
2 ORACLE遵守數據存取語言、操作系統、用戶接口和網絡通信協議的工業標準
3 實施安全性控制和完整性控制
4 支持分佈式數據庫和分佈處理
5 具有可移植性、可容性和可連接性
oracle 數據庫體系結構:
1物理結構
數據文件 dbf 作用:存放原始數據
數據文件信息
¨DBA_DATA_FILES
¨USER_EXTENTS, DBA_EXTENTS
¨USER_FREE_SPACE,
DBA_FREE_SPACE
¨ V$DATAFILE
¨V$DATAFILE_HEADER
日誌文件 .log 重做日誌文件 作用:當發生異常時,可指導回覆操作
重做日誌分類:
--聯機重做日誌文件
--存檔重做日誌文件
聯機重做日誌:多工(同時寫到不同磁盤)
如果日誌太大,歸檔時候複製時間會太長,重做日誌在未完成歸檔時,用戶進程的重做記錄要寫入到重做日誌時,需要等待,而這就造成了性能嚴重降低
控制文件 ctl 作用:告訴用戶有多少dbf文件,以及dbf文件的存儲位置 控制文件的路徑,在參數文件中有說明
參數文件: oral 如遊標數內存配置 語言 格式 最大session數 作用:規劃制定oracle實例
密碼文件
2進程結構
用戶進程:PLSQLPRO*C
oracle進程
1 服務器進程 與用戶進程一一對應
2 後臺進程 內存達到一定的負荷,保存在內存的數據寫入到磁盤的dbf文件或是當檢查點發生,保存在內存的數據寫入到磁盤的dbf文件
數據監控進程(PMON): 數據庫監控客戶端進程,當客戶端進程結束時,數據庫監控客戶端進程會關閉服務器進程與客戶端進程的關聯
鎖的管理進程(LCKn): 管理枷鎖、解鎖等於鎖相關的操作以及相關的狀態變化
數據庫恢復進程(RECO): 數據庫遭遇異常關閉,如斷電,當重新啓動,數據庫需要恢復時,會有數據庫恢復進程完成恢復工作
DBWR : 將在內存中緩存的數據緩存寫到磁盤的DBF文件中
LGWR: 將在內存中緩存的重做日誌寫到磁盤的重做日誌文件(本地保存操作記錄)
ARCH: 進行歸檔,在磁帶或其他媒介上永久性地保存操作記錄
Dnnn: 調度進程
3內存結構
oracle在內存存儲下列信息;
1執行的程序代碼
2連接的會話信息
3程序執行期間所需數據和共享的信息
共享信息:數據字典信息表的統計信息(如行列數、索引信息)
4存儲在外存儲上的緩存信息
首次執行SELECT * FROM employees;
會從磁盤DBF文件讀取employees表
再次執行SELECT employee_id FROM employees;
因爲之前在內存中已經存取了employees表,數據庫引擎會判斷到這部分內存可再次利用,所以直接從內存中讀取所需的employee_id 字段數據
內存結構
軟件代碼區
系統全局區
數據庫緩衝存儲區
日誌緩衝區
共享池(數據字典、數據庫)
程序全局區(個人全局區)
棧區
數據區
排序區
創建數據庫
--用戶通過參數文件啓動實例,通過實例操作數據庫。
創建數據庫應該考慮的因素
1 空間
分散磁盤文件,當有一個人訪問磁盤時,有另外一個人訪問同樣的磁盤,由於使用同樣的磁盤,可能產生磁道佔用,會影響訪問效率
同時訪問的數據,放置在多個磁盤,頻繁訪問的數據,放置在存取速度快的磁盤中
裸設備與帶有操作系統管理功能的設備選擇也是一個需要考慮的問題
2安裝參數
數據庫如果在將來有考慮兼容集成時,需要對命名有周全的考慮
3字符集, 建議選擇utf-8
4數據塊大小
聯機分析,數據塊小,同時存取數據的衝突小
聯機處理,數據塊大
5其他配置
創建數據庫的方式
1利用oracle配置助理
定製數據庫需要配置的參數:
– 據文件、控制文件和重做日誌文件的設置
– 表空間大小
– 區大小
– 據庫存儲容量參數
– 歸檔格式和目標
– 跟蹤文件目標
– 字符集值
2 手工創建數據庫
1創建參數文件 init【sid】.ora
2啓動數據庫實例
startup nomount pfile=‘參數文件’
nomount(後臺進程創建,但數據文件、控制文件、日誌文件還沒有)狀態進入mount狀態(讀取控制文件,獲取數據文件和日誌文件的清單很狀態)再進入open狀態
3創建數據庫:指定內存區域
創建DBF文件,具有DBF列表
創建控制文件,寫入DBF列表、重做日誌文件的信息(有可能丟失最時新的數據)
創建重做日誌文件
創建system表空間和回滾段
創建數據字段
創建sys和system
指定字符集
轉入、打開數據庫
4運行所需腳本
-catelog.sql
-catproc.sql
安裝內置數據包、數據庫對象
安裝之後注意事項
分配回滾段
選擇DB_BLOCK_LRU_LATCHES 指定了鎖的數量
--鎖太少,分配不過來,鎖太多,佔用系統資源,管理複雜
分配I/O
oracle實例
每一個運行的oracle 數據庫與一個oracle實例相聯繫。
實例=內存分配(資源)+一組後臺進程
多個實例對應於一個數據庫
一些有用的動態視圖
¨ V$PROCESS
¨ V$SESSION
¨ V$SESS_IO
¨ V$SESSION_LONGOPS
¨ V$SYSSTAT
¨ V$RESOURCE_LIMIT
¨ V$SQLAREA
¨ V$LATCH
動態視圖與數據字典的區別:
動態視圖的信息是從內存中得到的關於數據庫的信息
數據字典是關於數據庫包括磁盤的信息
orale的啓動與關閉狀態
oracle 的啓動階段
初始狀態:數據庫處於關閉狀態
–>啓動實例,需要參數文件
nomount狀態:還未讀寫數據文件,控制文件,日誌文件
à讀取控制文件
mount狀態:獲取數據文件清單、日誌文件清單
à根據數據文件清單和日誌文件清單,打開數據文件、日誌文件
open狀態
oracle的關閉階段
open狀態
oracle內存的檢查點發生,將內存數據寫入到數據庫的數據文件、日誌文件,關閉數據文件,日誌文件
mount狀態: 控制文件依然處於打開狀態,數據文件、日誌文件的關閉狀態及相關信息寫入到控制文件
關閉控制文件
nomount 狀態: 釋放內存,關閉進程,關閉數據庫
shutdown狀態
open 數據庫
shutdown 數據庫
服務器進程和後臺進程可以產生跟蹤文件:
1oracle將出錯信息寫到跟蹤文件
2服務器進程跟蹤切換
動態視圖讀取的內存中存在的文件信息其實和數據字典存放磁盤中的文件信息是一樣的,oracle採取的策略是當數據庫一旦啓動時,會將磁盤中的所有數據文件都打開,如果有一個打不開,則數據庫啓動就不會成功。
4邏輯結構
表空間
段(Table) 數據段、回滾段、索引段、臨時段(用作(join、group by,order by sorting 操作))
區域
數據塊
其他模式對象
創建表物理選項
1. PCTFREE
備用空間的比率
2. PCTUSED
最大存儲空間的比率
3. INITRANS
最初事務數
4. MAXTRANS
最大同時訪問事務數
5. TABLESPACE tablespace
表所屬表空間
SYSTEM表空間
¨特點
–每個數據庫中都存在
–存儲整個數據庫的數據字典表
¨功能
–控制數據庫數據的磁盤分配
–將確定的空間份額分配給數據庫用戶
–通過使單個表空間在線或離線,控制數據的可用性
–執行部分數據庫後備或恢復操作
–爲提高性能,跨越設備分配數據存儲
備用空間爲程序的數據存儲提供彈性擴展的可能性
數據庫備份方式
1冷備份
優點:操作簡單
缺點:關閉服務器
2熱備份 服務器不停機,進行備份
方法:使用歸檔日子進行操作