日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle认识

發布時間:2025/3/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle认识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

數據庫結構

每一個運行的Oracle 數據庫都與一個Oracle 實例關聯。在數據庫服務器上啟動數據庫后,Oracle 軟件會分配一個稱為系統全局區(SGA) 的共享內存區,還會啟動若干個Oracle 后臺進程。這種由SGA 和Oracle 進程組成的組合就稱為一個Oracle 實例
啟動實例后,Oracle 軟件會將實例與特定的數據庫關聯。這個過程稱為裝載數據庫。然后可打開數據庫,使得授權用戶可訪問數據庫。在同一臺計算機上可以并發執行多個實例,每一個實例只訪問它自己的物理數據庫。
您可以將Oracle 數據庫體系結構看作各種不同的、相互關聯的結構化組件。
Oracle 數據庫使用內存結構和進程來管理、訪問數據庫。所有內存結構都存在于構成數據庫服務器的計算機的主存中。進程指的是在這些計算機內存中運行的作業。進程被定義為“控制線程”或操作系統中可以運行一系列步驟的一種機制。
?

?

Oracle 內存結構

與Oracle 實例關聯的基本內存結構包括:
? 系統全局區(SGA):由所有服務器進程和后臺進程共享
? 程序全局區(PGA):專用于每一個服務器進程或后臺進程。每一個進程使用一個PGA
SGA 是包含實例的數據和控制信息的內存區。
SGA 包含以下數據結構:
? 數據庫緩沖區高速緩存:緩存從數據庫檢索的數據塊
? 重做日志緩沖區:高速緩存重做信息(用于實例恢復),直到可以將其寫入磁盤中存儲的物理重做日志文件
? 共享池:緩存可在用戶間共享的各個結構
? 大型池:是一個可選區域,可為某些大型進程(如Oracle 備份和恢復操作、I/O 服務器進程)提供大量內存分配
? Java 池:用于Java 虛擬機(JVM) 中所有特定會話的Java 代碼和數據
? Streams 池:由Oracle Streams 使用
通過使用Enterprise Manager 或SQL*Plus 啟動實例,可以顯示為SGA 分配的內存量。

程序全局區(PGA) 是包含每一個服務器進程的數據及控制信息的內存區。Oracle 服務器進程為客戶機的請求提供服務。每一個服務器進程都有自己專用的PGA,這個PGA 是在服務器進程啟動時創建的。由該服務器進程獨占對PGA 的訪問,PGA 只由對它自身執行操作Oracle 代碼讀寫。
使用動態SGA 基礎結構時,可以在不關閉實例的情況下更改數據庫緩沖區高速緩存、共享池、大型池和Java 池和Streams 池的大小。
Oracle 數據庫使用初始化參數創建并配置內存結構。例如,SGA_TARGET參數用于指定
SGA 可用的總空間量。如果SGA_TARGET設置為0,則會禁用“自動共享內存管理”。

?

進程結構

調用應用程序或Oracle 工具時,如調用Enterprise Manager 時,Oracle 服務器會通過創建服務器進程來執行應用程序發出的命令。Oracle 服務器還會針對一個實例創建一組后臺進程。這些進程不僅彼此進行交互操作,還與操作系統進行交互操作,這樣可以管理內存結構,通過異步執行I/O 操作將數據寫入磁盤,而且還可以執行其它所需的任務。存在哪些后臺進程取決于數據庫中當前使用的功能。

?

Oracle 實例管理

Oracle 數據庫服務器由Oracle 數據庫和Oracle 實例組成。Oracle 實例由稱為系統全局區(SGA) 的內存結構和后臺進程構成,這些后臺進程可以處理實例運行中涉及的大量后臺任務。以下是最常見的后臺進程:
? 系統監視器(SMON):出現故障后啟動實例時執行崩潰恢復任務
? 進程監視器(PMON):用戶進程失敗時執行進程清理任務
? 數據庫寫進程(DBWn):將修改后的塊從數據庫緩沖區高速緩存寫入磁盤中的數據
文件
? 檢查點(CKPT):通過更新數據庫的所有數據文件和控制文件指出最新的檢查點
? 日志寫進程(LGWR):將重做日志條目寫入磁盤
? 歸檔進程(ARCn):發生日志切換時將重做日志文件復制到歸檔存儲器

?

服務器進程和數據庫緩沖區高速緩存

處理某個查詢時,Oracle 服務器進程會在數據庫緩沖區高速緩存中查找它所需的所有數據塊。如果未在數據庫緩沖區高速緩存中找到數據塊,服務器進程會從數據文件中讀取數據塊,并在數據庫緩沖區高速緩存中添加一個副本。因為關于同一數據塊的后續請求可能會在內存中找到該數據塊,因此,這些請求可能不需要進行物理讀操作。Oracle 服務器使用最近用過的算法騰出最近未訪問的緩沖區,以便在數據庫緩沖區高速緩存中為新數據塊提供空間。
緩沖區高速緩存中的緩沖區可能處于以下四種狀態之一:
? 已連接:可防止多個會話同時對同一數據塊進行寫操作。此時,其它會話正等待訪問該塊。
? 干凈:緩沖區現已解除連接,如果沒有再次引用當前內容(數據塊),該緩沖區是可以立即騰出的候選項。此時,不是緩沖區的內容已與磁盤中存儲的數據塊內容同步,就是緩沖區中包含塊的一致讀取(CR) 快照。
? 空閑或未使用實例剛剛啟動,緩沖區為空。此狀態與“干凈”狀態非常相似,不同之處在于緩沖區尚未使用。
? 灰數據:緩沖區不再處于已連接狀態,但是內容(數據塊)已更改,DBWn必須先將內容刷新到磁盤,才能騰出緩沖區。

?

物理數據庫結構

構成Oracle 數據庫的文件可分為以下幾類:
? 控制文件:包含關于數據庫本身的數據(即物理數據庫結構信息)。這些文件對數據庫而言至關重要。沒有這些文件,就無法打開用于訪問數據庫數據的數據文件。
? 數據文件:包含數據庫中的用戶數據或應用程序數據。
? 聯機重做日志文件:用于進行數據庫實例恢復。如果數據庫已崩潰但未丟失任何數據文件,那么使用這些文件中的信息可以通過實例恢復數據庫。
要成功運行數據庫,以下附加文件非常重要:
? 參數文件:用于定義啟動實例時如何配置實例。
? 口令文件:用于將用戶遠程連接到數據庫后執行管理任務。
? 備份文件:用于數據庫恢復。當由于出現介質故障或由于用戶錯誤而損壞或刪除了原始文件時,通常需要還原備份文件。
? 歸檔日志文件:包含實例生成的數據更改(重做操作)的實時歷史記錄。使用這些文件和數據庫備份可以恢復丟失的數據文件。也就是說,使用歸檔日志可以恢復還原的數據文件。

? 跟蹤文件:每一個服務器和后臺進程都可以對關聯的跟蹤文件進行寫操作。如果在進程中檢測到內部錯誤,進程就會將關于錯誤的信息轉儲到進程的跟蹤文件。寫入跟蹤文件的某些信息專門供數據庫管理員使用,另一些信息則供Oracle 支持服務部門使用。
? 預警日志文件這些是特殊的跟蹤文件,又稱為預警日志。數據庫預警日志是按時間順序列出的消息日志和錯誤日志。Oracle 建議您查看這些文件。

?

表空間和數據文件

一個數據庫可劃分為多個邏輯存儲單元,這些單元稱為表空間,表空間可用于對相關邏輯結構進行分組。每一個數據庫都按邏輯方式劃分為一個或多個表空間??梢詾槊恳粋€表空間顯式創建一個或多個數據文件,這樣可在表空間中按物理方式存儲所有邏輯結構的數據。
注:還可以創建大文件表空間,這種表空間只有一個數據文件,但這個數據文件非常大(最多可包含40 億個數據塊)。傳統的小文件表空間(默認值)可以包含多個數據文件,但這些文件不可能這么大。有關大文件表空間的詳細信息,請參閱《數據庫管理員指南》。

?

SYSTEM和SYSAUX表空間

每一個Oracle 數據庫都包含SYSTEM表空間和SYSAUX表空間。這兩個表空間是在創建數據庫時創建的。系統默認值是創建小文件表空間。也可以創建大文件表空間,這樣可通過Oracle 數據庫管理超大文件(最大為8 EB)。
表空間的狀態可以是聯機(可訪問)或脫機(不可訪問)。打開數據庫時SYSTEM表空間始終處于聯機狀態。這個表空間可存儲支持數據庫核心功能的表,如數據字典表。
SYSAUX表空間是SYSTEM表空間的輔助表空間。SYSAUX表空間可存儲許多的數據庫組件,要使所有數據庫組件正常運行,該表空間必須處于聯機狀態。

?

段、區和塊

數據庫對象(如表和索引)以段形式存儲在表空間中。每個段包含一個或多個區。區由相鄰的數據塊組成,這意味著每一個區只可以存在于一個數據文件中。數據塊是數據庫中最小的I/O 單元。
數據庫從操作系統(OS) 請求數據塊集時,OS 會將數據塊集映射到存儲設備上的實際文件系統或磁盤塊。因此,您不必了解數據庫中任何數據的物理地址。這還意味著一個數據文件可以條帶化或鏡像在多個磁盤上。
可以在創建數據庫時設置數據塊的大小。對大多數數據庫而言,默認的8 KB 塊大小是足夠的。當數據庫支持擁有大型表和索引的數據倉庫應用程序時,最好設置更大的塊大小。
當數據庫支持執行隨機讀寫的事務處理應用程序時,最好指定更小的塊大小。塊大小的最大值取決于OS。最小的Oracle 塊大小為2 KB,這個值很少使用(在任何時候)。
表空間可以有不同的塊大小。但是,這只適用于可移動表空間。有關詳細信息,請參閱《數據庫管理員指南》。

?

邏輯和物理數據庫結構

Oracle 數據庫是按單元處理的數據的集合。數據庫的一般用途是存儲和檢索相關信息。數據庫具有邏輯結構和物理結構。
表空間
數據庫被分為多個邏輯存儲單元,這些單元稱為表空間,表空間可以將相關的邏輯結構分組在一起。例如,為了簡化某些管理操作,表空間通常用于將應用程序的所有對象分組。此時,對應用程序數據可以使用一個表空間,對應用程序索引可以使用另一個表空間。
數據庫、表空間和數據文件
在幻燈片中會演示數據庫、表空間和數據文件之間的關系。每一個數據庫按邏輯方式劃分為一個或多個表空間??梢詾槊總€表空間顯式創建一個或多個數據文件,這樣可在表空間中按物理方式存儲所有邏輯結構的數據。如果它是TEMPORARY表空間而不是數據文件,則這個表空間擁有一個臨時文件。

方案
方案是數據庫用戶擁有的數據庫對象的集合。方案對象是直接引用數據庫數據的邏輯結構。方案對象包括諸如表、視圖、序列、存儲過程、同義詞、索引、集群和數據庫鏈接這樣的結構。一般而言,方案對象包括應用程序在數據庫中創建的任何內容。
數據塊
Oracle 數據庫的數據以最細的粒度級存儲在數據塊中。一個數據塊對應于磁盤上特定字節數的物理數據庫空間。每個表空間的數據塊大小是在創建表空間時指定的。數據庫可以使用和分Oracle 數據塊中的空閑數據庫空間。

塊的上一級邏輯數據庫空間稱為區。區是特定數目的相鄰數據塊(在一次分配中獲取的),用于存儲特定類型的信息。

區之上的邏輯數據庫存儲級別稱為段。段代表為特定邏輯結構分配的區集。例如,各種類型的段包括:
? 數據段:每一個非集群、非索引的組織表都有一個數據段。該表的所有數據都存儲在表數據段的區中。對于分區表,每一個分區都有一個數據段。每一個集群都有一個數據段。集群中每個表的數據都存儲在集群的數據段中。
? 索引段:每一個索引都有一個索引段,用于存儲索引的所有數據。對于已分區索引,每一個分區都有一個索引段。
? 還原段:數據庫管理員會創建一個UNDO表空間,用于臨時存儲還原信息。還原段中的信息用于生成一致讀取信息,在數據庫恢復過程中,還可用于回退用戶的未提交事務。
? 臨時段:當SQL 語句需要一個臨時工作區來完成執行時,Oracle 數據庫會創建臨時段。語句結束執行后,臨時段的區會返回到實例,以便供將來使用。請為每個用戶指定一個默認臨時表空間,或指定一個在數據庫級別使用的默認臨時表空間。
Oracle 數據庫可動態分配空間。如果段的現有區已滿,則會添加更多的區。由于區是按需分配的,因此,段的區在磁盤上不一定是相鄰的。

?

數據庫體系結構:結構化組件概要

轉載于:https://my.oschina.net/u/242764/blog/377301

總結

以上是生活随笔為你收集整理的Oracle认识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。