這是以前公司dba的內訓,講的都是oracle的基礎知識,這裡跟大家分享一下。
1 oracle 資料庫基本概念
1.1 oracle database server 的構成
oracle database server主要由例項和檔案(oracle資料庫)構成。
通過linux的ipcs工具可以觀察oracle分配到的物理記憶體,本例中大約為1.2g
同時,也可以觀察到oracle的後台程序,黃色區域為程序的一部分:
資料庫:oracle中的資料庫定義即指一組檔案。
如圖:例項:資料庫 = n:1。含義:乙個例項最多關聯乙個資料庫,乙個資料庫可以被乙個或者多個例項關聯。
1.2 oracle 的物理架構
1.2.1 例項
oracle例項定義如上。
1.2.2 檔案
檔案即是oracle資料庫,主要的檔案分類大致如下
1.2.2.1 控制檔案
控制檔案是資料庫的中最重要的檔案之一,其作用類似於windows的登錄檔,控制檔案記錄了詳細的資料庫相關資訊,例如:資料庫的建立時間,資料庫有多少資料檔案,資料庫的聯機日誌等重要資訊。
1.2.2.2 聯機日誌檔案
聯機日誌檔案記錄了資料庫所有的操作,用於資料庫的恢復,並且聯機日誌檔案可以迴圈使用。
1.2.2.3 歸檔日誌檔案
oracle可以將聯機日誌檔案進行歸檔儲存,當乙個聯機日誌檔案寫滿時,oracle的日誌歸檔程序將此檔案歸檔儲存,歸檔的日誌檔案可以作為恢復使用。
1.2.2.4 資料檔案
資料檔案用於記錄資料庫儲存的資料。丟失資料檔案意味著損失所有資料。
1.2.2.5 引數檔案
引數檔案用於配置資料庫初始化的系統引數,oracle根據此檔案進行引數的設定。引數檔案分為pfile和spfile。
1.2.2.6 密碼檔案
密碼檔案用於遠端登入oracle的安全控制。
1.2.2.7 告警檔案
告警檔案用於跟蹤當前例項執行狀態,輔助dba診斷資料庫問題和故障。告警檔案通常位於 $oracle_base/admin//bdump/alert_$oracle_sid.log
1.3 oracle 的邏輯架構
oracle的邏輯架構通常是使用者真正面對和使用的。oracle的邏輯架構包括:表空間、資料塊、區、段。
1.3.1 資料塊(data block)
資料塊是oracle的最小儲存單元。乙個oracle資料塊通常由若干os資料塊構成,在建立資料庫時,可以指定oracle資料塊大小,一旦指定,不可更改。
1.3.2 區(extent)
資料區由連續的資料塊構成,用於向資料段提供空間。
1.3.3 段(segment)
段由若干區構成,當段空間不夠時,會自動在區中申請空間進行擴充套件。段的型別分為:資料段、索引段、重做段(undo),臨時段等。例如:當建立乙個表時,資料庫會建立乙個資料段供表儲存資料;當建立乙個索引時,資料庫會建立乙個索引段儲存索引;當資料庫在排序需要使用到磁碟排序時,資料庫會自動建立臨時段等等。
1.3.4 表空間(tablespace)
表空間是以上元素的集合,是資料檔案在資料庫中的對映。表空間將物理儲存對映為可以理解的邏輯儲存,封裝了物理儲存的複雜性。乙個表空間可以對應乙個或者多個資料檔案,但乙個資料檔案只對應乙個表空間。
1.3.5 關係圖
2 oracle的基本操作
2.1 啟動資料庫
oracle資料庫啟動分為3個階段,nomount、mount、open。
2.1.1 nomount 階段
nomount階段,實際是啟動例項,即分配記憶體和啟動後台程序。在此階段,oracle自動尋找引數檔案,根據引數檔案的配置,分配記憶體大小及相關設定。對於9i以後版本,oracle通過spfile配置資料庫,9i以前版本,oracle通過pfile配置資料庫。
2.1.1.1 spfile
9i版本開始,oracle採用spfile(二進位制檔案)記錄系統引數,並開始支援動態調整引數。
2.1.1.2 pfile
9i版本之前,oracle採用pfile(文字檔案)記錄系統引數,所有對引數的修改必須shutdown資料庫,而後重啟才能生效。
spfile和pfile是可以相互轉換的。
2.1.2 mount 階段
mount階段,oracle通過引數檔案中設定的控制檔案位址,讀取控制檔案資訊,但此時並不開啟資料檔案,即:此時不能對資料庫進行諸如:建表,插資料等操作。在mount階段,dba可介入進行資料庫維護方面的操作。
2.1.3 open 階段
open階段,oracle開啟所有資料檔案,此時資料庫提供正常的各種服務。
2.1.4 操作示範
2.1.4.1 登入系統
通過secure crt軟體,以oracle賬戶身份遠端ssh 到目標環境,如圖:
這裡選擇登入內網位址192.168.1.13,出現提示符後,代表已正確登入。
2.1.4.2 進入sqlplus
在操作符下鍵入 sqlplus 「/ as sysdba」
此時,可以看到,例項沒有啟動
2.1.4.3 將資料庫啟動至nomount狀態
此時,去檢視,oracle是否申請了記憶體,以及後台是否有oracle相關程序
同時,我們也可以跟蹤告警日誌,在日誌中,也記錄了詳細的啟動資訊
2.1.4.4 將資料庫啟動至mount狀態
跟蹤告警日誌
2.1.4.5 將資料庫啟動至open狀態
2.2 關閉資料庫
資料庫關閉分為4種方式。
2.2.1 normal方式
normal方式下,oracle禁止使用者再登入系統,等待所有已登入使用者完成正在進行的事務,待所有事務結束後,將資料庫關閉,例項關閉。
2.2.2 immediate方式
immediate方式下,oracle禁止任何使用者再登入系統,回滾當前所有正在處理的事務,斷開一切客戶端連線,將資料庫關閉,例項關閉。
2.2.3 transactional方式
transactional方式下,oracle禁止任何使用者登入系統,等待正在處理的事務完畢,最後關閉資料庫,關閉例項。
2.2.4 abort方式
abort方式下,oracle直接關閉例項。
2.3 配置服務端***
配置服務端***只需要修改***的配置檔案即可,通常配置檔案位於 $oracle_home/network/admin/listener.ora中,通過圖形方式配置也是乙個很好的選擇。配置檔案的格式如下:
listener =
(description =
(address = (protocol = tcp)(host = 192.168.1.13)(port = 1521))
2.4 配置客戶端網路服務名檔案
配置客戶端網路服務名相對也很簡單,修改相關檔案即可,通常檔案位於 $oracle_home/network/admin/tnsnames.ora中,通過圖形方式配置也是乙個很好的選擇。配置檔案的格式如下:
db17 =
(description =
(address_list =
(address = (protocol = tcp)(host = 192.168.1.17)(port = 1521))
(connect_data =
(sid = inst17)
如果您對我的文章感興趣的話,這裡加我為好友,讓我們一起進步
Oracle 資料庫基礎(基本概念)
例項名可以由環境變數oracle sid 來定義。例項的init.ora 檔案通常包含該例項的名字,格式為 initsid.ora 如乙個例項的名字 sid 為ora817,則init.ora 檔名通常為 initora817.ora。乙個oracle 資料庫 有乙個物理結構和乙個邏輯結構。物理結構...
資料庫基本概念
資料庫的分類 一 網路資料庫 網路資料庫是指把資料技術引入到計算機網路系統中,借助與網路技術將儲存於資料庫中的大量資訊及時發布出去,而計算器網路借助於成熟的資料庫技術對網路中的各種資料進行有效管理,並實現使用者與網路中的資料進行有效管理 並實現使用者與網路中的資料庫進行實時動態資料互動 二 層次資料...
資料庫基本概念
資料庫的基本概念 資料庫管理系統 dbms 是一種操作和管理資料庫的大型軟體,用於建立 使用和維護資料庫。它對資料庫進行統一的管理和控制,以保證資料庫 的安全性和完整性。dbms提供資料定義語言ddl與資料操作語言dml。資料庫的三種模型 網狀資料庫 層次資料庫 關聯式資料庫。1.網狀模型 層次模型...