Oracle 第1章 Oracle入門

 

Oracle 9i 的安裝與卸載

Oracle 第2章 Oracle查詢、數據類型、函數

 

Oracle 第1章 Oracle入門

 

注意:本文使用的版本爲Oracle 9i

1、技術目標

  • 瞭解 Oracle 體系結構的各種組件
  • 掌握 Oracle 中的基本用戶管理
  • 瞭解 Oracle 的工具


2、Oracle簡介

  • 對象關係型的數據庫管理系統 (ORDBMS)
  • 在管理信息系統、企業數據處理、因特網及電子商務等領域使用非常廣泛
  • 在數據安全性與數據完整性控制方面性能優越
  • 跨操作系統、跨硬件平臺的數據互操作能力


3、Oracle主要特點

  • 支持多用戶、大事務量的事務處理
  • 數據安全性和完整性控制
  • 支持分佈式數據處理
  • 可移植性


4、Oracle 9i 體系結構

數據庫的體系結構是指數據庫的組成、工作過程與原理以及數據在數據庫中
的組織與管理機制,Oracle服務器提供開放、全面和綜合的信息管理,它由
Oracle數據庫 Oracle實例 組成,如圖:

 

  • Oracle數據庫:指數據的集合,該集合被視爲一個邏輯單元
  • Oracle實例:管理數據庫的後臺進程和內存結構的集合


5、Oracle的主要組件

先看一下組件結構圖:



在接下來的小節中將逐一介紹各組件

6、什麼是Oracle實例?

  • Oracle實例是"後臺進程"和"內存結構"的集合,必須啓動實例才能訪問數據庫中的數據
  • Oracle實例啓動時,將分配一個"系統全局區SGA "並啓動一系列的後臺進程 ,每個後臺進程會執行不同的任務,一個實例只能打開並使用一個數據庫


7、什麼是Oracle數據庫?

Oracle數據庫由文件組成,稱爲數據庫文件,提供實際物理存儲區。
Oracle數據庫主要用於存儲和檢索信息,包含"邏輯結構 "和"物理結構 "

  • 物理結構:包含數據庫中的一組文件
  • 邏輯結構:數據庫創建後形成的邏輯概念


8、關於Oracle會話

  • 會話是用戶與 Oracle 服務器的單個連接
  • 當用戶與服務器建立連接時創建會話
  • 當用戶與服務器斷開連接時關閉會話


9、Oracle實例的內存結構是什麼?


Oracle實例的內存結構包含兩個區 ,如圖:



10、Oracle的系統全局區(SGA)

SGA (System Global Area)又稱爲共享全局區 ,是Oracle實例的一個
基本組件,數據庫信息存儲於SGA,由多個數據庫進程共享,SGA是數
據庫中佔用服務器內存最大的一個區域,也是影響數據庫性能的一個重
要指標,SGA按其作用不同分爲:

  • 共享池
  • 數據緩衝區
  • 日誌緩衝區

    10.1)共享池:

  • 共享池是對SQL、PL/SQL程序進行語法分析、編譯、執行的內存區域
  • 共享池由庫緩存和數據字典緩存組成。
  • 共享池的大小直接影響數據庫的性能


    10.2)數據緩衝區:

  • 用於存儲從磁盤數據文件中讀入的數據,所有用戶共享
  • 服務器進程將讀入的數據保存在數據緩衝區中,當後續的請求需要這些數據時可以在內存中找到,不需要再從磁盤讀取,提高了讀取速度
  • 數據緩衝區的大小對數據庫的讀取速度有直接的影響

    10.3)日誌緩衝區

  • 日誌記錄數據庫的所有修改信息,日誌信息首先產生於日誌緩衝區。
  • 日誌緩衝區的日誌數據達到一定數量時由後臺進程將日誌數據寫入日誌文件中
  • 相對來說,日誌緩衝區對數據庫的性能影響較小


11、Oracle的程序全局區,
PGA (Program Global Area)

  • 包含單個服務器進程所需的數據和控制信息
  • PGA是在用戶進程連接到數據庫並創建一個會話時自動分配的,保存每個與Oracle 數據庫連接的用戶進程所需的信息
  • PGA爲非共享區,只能單個進程使用,當一個用戶會話結束,PGA釋放


12、Oracle實例進程結構

Oracle實例進程結構圖:


Oracle實例進程有幾種不同的類型,

  • 用戶進程:在數據庫用戶請求連接Oracle服務器時啓動(客戶端程序)
  • 服務器進程:在用戶建立會話並連接Oracle示例時啓動(服務端程序)
  • 後臺進程:在Oracle實例啓動時啓動(服務端程序)

    12.1)用戶進程

    用戶進程是一個需要與Oracle服務器進行交互的程序,當數據庫用戶運行一個
    應用程序準備向數據庫服務器發送請求時,即創建了用戶進程,如果用戶啓動
    SQL*Plus時,系統自動建立一個用戶進程

    12.2)服務器進程

    服務器進程用戶處理連接到該實例的用戶進程的請求,用戶建立與數據庫的連
    接時,即產生服務器進程,該進程爲所連接的用戶服務,服務器進程直接與
    Oracle數據庫交互,實現調用和返回結果。服務器進程可以處理多個用戶請求

    12.3)後臺進程 ,如圖:
   
   


    爲了充分發揮系統性能以及協調多個用戶,Oracle使用了一些附加進程,稱爲
    後臺進程。這些進程在Oracle實例啓動時自動啓動,有5個必須的後臺進程:

    1.進程監控(PMON) :在用戶進程出現故障時執行進程恢復,包括如下任務:

  • 釋放所有當前掛起的鎖
  • 回滾用戶當前事務處理
  • 釋放用戶當前使用的資源
  • 重啓已經死鎖的調用進程和服務進程

     2.系統監控(SMON) :在實例啓動時執行實例恢復,包括3個步驟

  • 前滾以恢復未寫入數據文件但已記入聯機日誌文件的數據
  • 打開數據庫,以便用戶能登錄,訪問數據
  • 回滾未提交的事務處理
  • 整理數據文件的自由空間
  • 釋放不再使用的臨時段

    3.數據寫入進程(DBWR)

  • 管理數據緩衝區,以便用戶進程能找到空閒的緩衝區
  • 將所有修改後的緩衝區數據寫入數據文件
  • 使用LRU(最近最少使用)算法將最近使用過的塊保留在內存中
  • 通過延遲寫來優化磁盤I/O讀寫

    4.日誌寫入進程(LGWR)

  • 負責將日誌緩衝區中的日誌寫入日誌文件組,數據庫在運行時,如果對數據
  • 進行修改則產生日誌信息,日誌信息首先產生於日誌緩衝區。此緩衝區按照
  • "先進先出"的原則進行操作,當日志信息達到一定數量時,由LGWR進程將日誌數據寫入日誌文件,通常有多個日誌文件,日誌寫入進程以死循環的方式將數據寫入文件

    5.檢查點(CKPT)

    檢查點(checkpoint,簡寫CKPT)用於保證所有修改過的數據緩衝區都被寫入
    數據庫文件。在給定的時間內,檢查點完成後,CKPT進程更新數據文件頭和
    控制文件,保存檢查點信息,以保證數據庫的同步。這是爲了在數據庫恢復時
    只需要提供從上一個檢查點以來的修改,確定開始恢復數據的位置
   
    12.4)歸檔進程(ARCH)
    歸檔進程(ARCH),在日誌存滿時將日誌信息寫到磁盤,用於
    在磁盤故障時的數據庫恢復。Oracle數據庫有兩種運行方式:

  • 歸檔(ArchiveLog)方式 (數據庫默認運行方式)
  • 非歸檔(No ArchiveLog)方式

    在非歸檔方式下,日誌切換時直接覆蓋以前的文件,不產生歸檔日誌,
    在歸檔方式下運行,日誌切換之前,ARCH進程對已寫滿的日誌文件進
    行存檔,即使在磁盤損壞的情況下,管理員也能將數據庫恢復至故障發
    生時的狀態,當數據庫運行在歸檔方式時ARCH進程才存在
   
13、Oracle物理組件

物理組件就是Oracle數據庫所使用的操作系統物理文件,可分爲三類:

  • 數據文件用於存儲數據庫數據,如表、索引數據等
  • 控制文件是記錄數據庫物理結構的二進制文件
  • 日誌文件記錄對數據庫的所有修改信息,用於故障恢復


14、Oracle邏輯組件

數據庫的邏輯結構是從邏輯的角度分析數據庫的組成。Oracle 的邏輯組件包括:




    14.1)表空間

  • 表空間是數據庫中最大的邏輯單位,一個 Oracle 數據庫至少包含一個表空間,就是名爲SYSTEM的系統表空間
  • 每個表空間是由一個或多個數據文件組成的,一個數據文件只能與一個表空間相關聯
  • 表空間的大小等於構成該表空間的所有數據文件大小之和
  • 創建表空間的語法是:

    create tablespace 表空間名
    datafile '文件名' [size integer [K|M]]
    [autoextend [OFF|ON]];

    14.2)段

  • 段是構成表空間的邏輯存儲結構,段由一組區組成
  • 按照段所存儲數據的特徵,將段分爲四種類型:
    數據段、索引段、回退段和臨時段


    14.3)區

  • 區爲段分配空間,它由連續的數據塊組成。
  • 當段中的所有空間已完全使用時,系統自動爲該段分配一個新區
  • 區不能跨數據文件存在,只能存在於一個數據文件中

   
    14.4)數據塊
    數據塊是Oracle服務器所能分配、讀取或寫入的最小存儲單元
    Oracle服務器以數據塊爲單位管理數據文件的存儲空間

    14.5)模式

  • 模式是對用戶所創建的數據庫對象的總稱
  • 模式對象包括表、視圖、索引、同義詞、序列、過程和程序包等


15、Oracle網絡配置

Oracle產品安裝完成後,服務器和客戶端都需要進行網絡配置才能實現網絡連接
服務器端配置監聽器 ,客戶端配置網絡服務名 ,如圖:

  • 服務器端監聽器配置信息包括監聽協議、地址及其他相關信息,配置信息保存在名爲listener.ora的文件中,在安裝服務器軟件時自動配置一個監聽器
  • 客戶端的網絡服務名配置信息包括服務器地址、監聽端口號和數據庫SID等,與服務器的監聽器建立連接。配置信息保存在名爲tnsnames.ora的文件中
  • Oracle中的 Net Configuration Assistant和Net Manager工具都能用來配置監聽器和網絡服務名


16、Oracle的查詢分析工具

SQL*Plus :Oracle最常用的工具之一,用於接受和執行SQL命令以及PL/SQL塊
iSQL*Plus :可以執行能用SQL*Plus完成的所有任務,能通過瀏覽器訪問它
PL/SQL :是SQL 的擴展,結合了SQL語言的數據操縱能力和過程語言的流程控制能力

Oracle企業管理器:



17、Oracle默認帳號

  • SYS :數據庫中所有數據字典表和視圖都存儲在 SYS 模式中,SYS用戶主要用來維護系統信息和管理實例
  • SYSTEM :是默認的系統管理員,該用戶擁有Oracle管理工具使用的內部表和視圖。通常通過SYSTEM用戶管理數據庫用戶、權限和存儲等
  • SCOTT :Oracle 數據庫的一個示範帳戶,在數據庫安裝時創建


18、創建新用戶

要連接到Oracle數據庫,就需要創建一個用戶帳戶
每個用戶都有一個默認表空間和一個臨時表空間

  • CREATE USER命令用於創建新用戶

    語法:
    create user 帳號
    identified by 密碼
    default tablespace 表空間
    temporary tablespace 臨時表空間;

19、授予權限

權限有兩種類型,系統權限 對象權限,
系統權限允許用戶執行某些數據庫操作,如創建表就是一個系統權限
對象權限允許用戶對數據庫對象(如表、視圖、序列等)執行特定操作
角色是一組相關權限的組合,可以將權限授予角色,再把角色授予用戶,
以簡化權限管理

GRANT命令 可用於爲用戶分配權限 角色


使用1: 爲帳號設置CONNECT角色,允許用戶連接至數據庫
grant connect to 帳號;

使用 2: 爲帳號設置RESOURCE角色允許用戶使用數據庫中的存儲空間
grant resource to 帳號;

使用 3: 爲帳號設置系統權限允許用戶在當前模式中創建序列,此權限包
含在CONNECT角色中
grant create sequence to 帳號;

使用 4: 授予帳號操作表對象的權限
grant select on 表名 to 帳號;

使用 5: 允許用戶更新表中的記錄
grant update on 表名 to 帳號;

使用 6: 允許用戶插入、刪除、更新和查詢表中的記錄
grant all on 表名 to 帳號;

20、更改和刪除用戶

alter user 命令可用於更改口令

如, 修改帳號的密碼
alter user 帳號 identified by 密碼;

drop user命令用於刪除用戶
如,刪除帳號
drop user 帳號 cascade;

21、使用Oracle數據庫的開發流程

服務端開發流程:



客戶端開發流程:



22、Windows中的Oracle服務:

1.OracleHOME_NAMETNSListener
該服務啓動數據庫服務器的監聽器,監聽器接受來自客戶端應用程序的連接請求
若監聽器未啓動,則客戶端將無法連接到數據庫服務器

2.OracleServiceSID
該服務啓動系統標識符爲SID的數據庫實例,其中 SID 是在安裝 Oracle 9i 時輸入的數據庫名稱

3.OracleHOME_NAMEAgent
Oracle企業管理器組件智能代理服務,此智能代理用於執行作業和監控 Oracle 服務或對象的性能
在使用Oracle管理服務器網絡的環境中必須啓動此服務

4.OracleHOME_NAMEHTTPServer
該服務用於啓動Oracle HTTP服務器,它提供文檔信息、基於Web的企業管理器和iSQL*Plus等服務

5.OracleHOME_NAMEManagementServer
該服務啓動Oracle管理服務器,它用於維護管理控制檯對各個被管理服務器節點之間的集中的、智能的和分佈式的控制
該服務必須經過企業管理器配置嚮導配置完成後才創建

23、總結:

  • Oracle 服務器由Oracle 數據庫和 Oracle 實例組成
  • Oracle 實例由系統全局區內存結構和用於管理數據庫的後臺進程組成
  • Oracle 中用於訪問數據庫的主要查詢工具有 SQL*Plus、iSQL*Plus 和 PL/SQL
  • Oracle 企業管理器是用於管理、診斷和調整多個數據庫的工具
  • Oracle 中的 SYSTEM 用戶和 SYS 用戶具有管理權限,而 SCOTT 用戶只有基本的權限
  • Oracle 服務在 Windows 註冊表中註冊,並由 Windows 操作系統管理

 

Oracle 9i 的安裝與卸載
Oracle 第2章 Oracle查詢、數據類型、函數

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章