(Les01 Architectrure IV 存儲結構)[20180116]

来源:https://www.cnblogs.com/also-brook/archive/2018/01/17/8303310.html
-Advertisement-
Play Games

進程啟動順序 Oracle Grid Infrastructure由OS初始化守護程式啟動 操作系統初始化守護進程(init)->Grid Infrastructure包裝腳本(init.ohasd)->Grid Infrastructure守護程式和進程(ohasd.bin,oraagent.bi ...


  進程啟動順序         Oracle Grid Infrastructure由OS初始化守護程式啟動                      操作系統初始化守護進程(init)->Grid Infrastructure包裝腳本(init.ohasd)->Grid Infrastructure守護程式和進程(ohasd.bin,oraagent.bin,orarootagent.bin,diskmon.bin,cssdagent,ocssd.bin)->ASM實例、監聽程式、DB實例、用戶定義的應用程式       資料庫存儲體繫結構         構成Oracle資料庫的文件類別             控制文件:資料庫物理結構信息和備份相關的元數據。             數據文件:資料庫用戶或應用程式數據,以及元數據和數據字典。             聯機重做日誌文件:用於進行資料庫的實例恢復。             參數文件:用於定義實例啟動時的配置。             口令文件:允許用戶使用sysdba、sysoper和sysasm角色遠程連接到實例並管理。             備份文件:用於進行資料庫恢復。             歸檔重做日誌文件:包含實例發生的數據更改(重做)的實時歷史記錄。使用這些文件和資料庫備份,可以恢復丟失的數據文件。             跟蹤文件:每個伺服器和後臺進程都可以寫入一個關聯的跟蹤文件。當進程檢測到內部錯誤時,會將有關該錯誤的信息轉儲到相應的跟蹤文件中。             預警日誌文件:改文件包含特殊的跟蹤條目。資料庫的預警日誌是一個按時間順序記錄消息和錯誤的日誌。                  邏輯和物理資料庫結構             邏輯結構(用於展示oracle在操作系統中的物理文件組成情況):資料庫->表空間->段->區->Oracle數據塊             物理結構(用於描述oracle內部組織和管理數據的方式):數據文件->存儲系統(SAN,NFS,NAS,ASM,Exadata,RAW,文件系統)               數據塊(Data Blocks):是Oracle邏輯存儲結構中最小的邏輯單位,也是執行資料庫輸入輸出的最小存儲單位。    Oracle數據塊是操作系統塊的整數倍,Oracle數據塊有一定的標準大小(DB_BLOCK_SIZE);另外Oracle支持在同一個資料庫中使用多種大小的塊,與標準塊大小不同的就是非標準塊;                      Oracle數據塊結構:塊頭、表目錄、行目錄、空餘空間和行數據                      塊頭:存放數據塊的基本信息,如塊的物理地址、塊所屬的段的類型。                      表目錄:存放表的相關信息。                      行目錄:如果塊中有行數據存在,則這些行的信息將被記錄在行目錄中,這些信息包括行的地址。                      空餘空間:空餘空間是一個塊中未使用的區域,這片區域用於新行的插入和已經存在的行的更新。                     行數據:用於存放表數據和索引數據的地方,這部分空間已被數據行所占用。                  通常將塊頭、表目錄、行目錄這3個部分組合起來稱為頭部信息,頭部信息區不存放數據,它存放整個塊的引導信息,起到引導系統讀取數據的作用。所以頭部信息若遭到破壞,則Oracle系統無法讀取這部分數據。空餘空間和行數據共同構成塊的存儲區,用於存放真正的數據。                          數據區(Extent):也稱做數據擴展區是由一組連續的Oracle數據塊所構成的Oracle存儲結構,一個或多個數據塊組成一個數據區,一個或多個數據區組成一個段(Segment),當段(Segment)空間不足時Oracle系統會自動為該段分配一個新的數據區。數據區是Oracle存儲分配的最小單位。                使用數據區的目的:用來保存特定的數據類型的數據。                數據區是表中數據增長的基本單位,在Oracle資料庫中,分配存儲空間就是以數據區為單位的。一個Oracle對象包含至少一個數據區。設置一個表或索引的存儲參數包含設置它的數據區大小。               段(Segment):由一個或多個數據區組成,它不是存儲空間的分配單位,而是一個獨立的邏輯存儲結構,用於存儲表、索引或簇等占用空間的數據對象,Oracle也把這種占用空間的數據對象統一稱為段。                段是為特定的數據對象(如表、索引、回滾等)分配的一系列數據區。段內的數據區可以不連續,並且可以跨越多個文件。                使用段的目的:用來保存特定對象。                     數據段:數據段中保存的是表中的數據記錄,在創建數據表時,Oracle系統將為表創建數據段。當表中的數據量增大時,數據段的大小自然也隨著變化,數據段的增大過程是通過向其添加數據區來實現的。當創建一個表時,系統自動創建一個以該表的名字命名的數據段。                     索引段:索引段中包含了用於提高系統性能的索引。一旦建立索引,系統自動創建一個以該索引的名字命名的索引段。                     回滾段:也稱撤銷段,它保存了回滾條目,Oracle將修改前的舊值保存在回滾條目中。                     臨時段:當執行創建索引、查詢等操作時,Oracle可能會使用一些臨時存儲空間,用於暫時性地保存解析過的查詢語句以及在排序過程中產生的臨時數據。           執行“Create Index”、“Select Order By”、“Select Distinct”、“Select Group By”等幾種類型的sql語句時,Oracle系統就會在臨時表空間中為這些語句的操作分配一個臨時段。在資料庫管理過程中,若經常需要執行上面這類sql語句,最好調整sort_area_size初始化參數來增大排序區,從而使排序操作儘量在記憶體中完成,以獲取更好的效率,但同時這對資料庫伺服器的記憶體空間提出了更大的要求。                  表空間和數據文件             資料庫被劃分為多個“表空間”,表空間是可用於將相關邏輯結構組合在一起的邏輯存儲單元。每個資料庫都在邏輯上分為兩個或多個表空間:SYSTEM和SYSAUX表空間。在每個表空間均顯式創建一個或多個數據文件,以在物理上存儲表空間中所有邏輯結構的數據。             註意:可以創建大文件表空間,這種表空間只有一個。該文件的大小可達體繫結構允許的最大大小。最大大小是表空間的塊大小乘以2^36,如果塊大小為32KB,則最大大小為128TB。                  SYSTEM和SYSAUX表空間             SYSTEM和SYSAUX表空間是在創建資料庫時創建的必需存在的表空間。這些表空間必需聯機。             SYSTEM表空間用於核心功能(例如數據字典)             輔助的SYSAUX表空間用於附加的資料庫組件(如Oracle Enterprise Manager Repository)             不建議使用SYSTEM和SYSAUX表空間來存儲應用程式的數據。             註意:SYSAUX表空間可以離線以執行表空間恢復,而SYSTEM表空間則不能。這兩個表空間都不能設定為只讀。           自動存儲管理(ASM)             自動存儲管理(Automatic Storage Management)為Oracle DB文件提供文件系統與捲管理縱向集成。                 -可移植的高性能集群文件系統                 -管理Oracle DB文件                 -通過ASM集群文件系統(ACFS)管理應用程式文件                 -將數據分佈到各個磁碟中以平衡負載                 -建立數據鏡像以防範故障                 -提高可靠性和性能,不需逐個文件地進行人工交互             ASM存儲組件                 ASM文件->ASM區(AU大小的1倍,4倍,16倍)->ASM分配單元(1,2,4,8,16,32或64MB)                 ASM磁碟組->ASM磁碟           與Oracle DB交互:記憶體、進程和存儲                 1.Oracle DB的節點上啟動資料庫實例。                 2.用戶啟動一個應用程式,衍生一個用戶進程。該用戶進程嘗試與伺服器建立一個連接。                 3.伺服器運行相應的Oracle Net服務進行監聽。監聽程式檢測到應用程式發出的連接請求,並創建一個代表用戶進程的專用伺服器進程。                 4.用戶運行DML類型的SQL語句並提交事務處理。                 5.伺服器進程接收該語句,並檢查共用池中是否包含相同的SQL語句的共用SQL區域。如果找到共用SQL區域,伺服器進程將檢查用戶對所請求數據的訪問許可權,然後使用現有的共用SQL區域處理該語句。如果沒有找到共用SQL區域則為該語句分配一個新的共用SQL區域,以便對該語句進行分析和處理。                 6.伺服器進程從實際數據文件(表)或資料庫緩衝區高速緩存中存儲的值中檢索必需的數據值。                 7.伺服器進程修改SGA中的數據。提交事務並調用日誌寫進程(LGWR)將重做日誌緩衝區的信息立即寫入到重做日誌文件中。資料庫寫進程(DBWn)在一個高效的時機將修改後的塊永久寫入磁碟。                 8.如果事務處理成功,伺服器進程將通過網路嚮應用程式發送一條信息。如果事務處理不成功,則傳送一條錯誤信息。                 9.整個過程中,其他後臺進程也在運行,監控進程(PMON)監視是否需要干預的情況。此外,資料庫伺服器也管理其他用戶的事務,並防止請求相同數據的事務處理之間發生爭用。                          總結:   Oracle Server    -Oracle Instance       -Oracle Memory          -Systen global area(系統全局區):由所有用戶進程共用的一塊記憶體區域。             -Shared pool(共用池):保存最近執行的sql語句、pl/sql程式的數據字典信息。語法分析、編譯和執行的記憶體區域。                -Library cache(庫高速緩存)                   -Shared SQL area                   -Private SQL area(Shared Server Only)                -Data dictionary cache(數據字典高速緩存)                -Server result cache(服務結果緩存)                -Other             -Database buffer cache(數據高速緩衝區):用於存儲從磁碟數據文件中讀取的數據。             -Redo log buffer(重做日誌緩衝區):用於存儲資料庫的修改操作信息。             -Large pool(大池):提供一個大的緩衝區供資料庫的備份和恢復操作使用。             -Java pool(Java池):程式緩衝區為Java程式保留的。             -Streams pool(流池):流複製所使用-10g新加入。如streams_pool_size未設定,它會從sga獲取最多為shared pool的10%。             -Sort area(排序區):Oracle系統為排序操作所產生的臨時數據提供的記憶體空間。          -Program global area(程式全局區):單個用戶或伺服器數據和控制信息的記憶體區域,它在用戶進程連接到oracle資料庫並創建一個會話由oracle自動分配             -Stack Space(堆棧區)             -User global area                -User session data(會話信息區)                -Cursor status(游標狀態區)                -Sort area(排序區) http://docs.oracle.com/cd/B28359_01/server.111/b28318/memory.htm         -Background Process          -DBWn(DataBase Write 資料庫寫入進程):數據緩衝區的後臺進程負責將緩衝區的數據寫入磁碟中的數據文件中。          -PMON(Process Monitor 程式監控進程):用於用戶進程出現故障時執行恢復操作。          -SMON(System Monitor 系統監控進程):實例啟動時執行實例恢復並負責清理不在使用的臨時段。          -LGWR(Log Write 日誌寫入進程):負責管理重做日誌緩衝區的後臺進程,將重做日誌緩衝區的日誌數據寫入磁碟的聯機重做日誌文件中。-->確認進程          -CKPT(Check Point 檢查點進程):檢查所有修改過的數據緩衝區的數據都被寫入磁碟數據文件中。          -ARCN(Archvie Process 歸檔日誌進程):將寫滿的聯機重做日誌文件複製到歸檔日誌文件中。          -RECO(Recovery 還原進程):自動解決在分散式資料庫中出現的事務故障。          -LCKn(Lock 鎖進程):存在與並行伺服器系統中,用於實現多個實例間的封鎖。          -Dnnn(Dispatchers 調度進程):多線程伺服器體繫結構中將用戶進程連接到伺服器進程中。          -Snnn(Shared Servers)          -Server process          -User process    -Oracle Database       -Physical Structure(物理存儲結構):用於展示oracle在操作系統中的物理文件組成情況。       -Control file(control.ctl 控制文件):二進位文件,描述資料庫的物理結構。存放資料庫中的數據文件和日誌文件的具體位置。       -Data file(*.dbf 數據文件):存儲資料庫數據的物理文件。       -Online log file(*.log 聯機日誌文件):記錄資料庫中所有修改信息,保證數據安全。一個資料庫至少有兩個日誌組文件每個日誌組至少有一個日誌成員。       -Archive log file(*.arc 歸檔日誌文件):對寫滿的日誌文件進行複製保存。       -pfile  and spfile(init$SID.ora spfile$SID.ora 參數文件):記錄oracle資料庫的基本信息,如資料庫名、控制文件存放位置、記憶體等等。       -password file(orapwd$SID 密碼文件):用於Oracle具有sysdba許可權用戶的認證。       -alert and treacrt file(警告和跟蹤文件):資料庫運行日誌和錯誤信息的跟蹤。       -backup file( 備份文件):用於資料庫數據的還原。    -Logical Structure(邏輯存儲結構):用於描述oracle內部組織和管理數據的方式。       -Tablespace(表空間):最大的邏輯存儲結構          -Table(表)          -Index(索引)          -View(視圖)          -Segment(段):          -數據段          -索引段          -回滾段          -臨時段       -Extent       -Data blocks          -塊頭          -表目錄          -行目錄          -空餘空間          -行數據

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 名詞區分:sync:同步async:非同步rsync:遠程同步 rsync 特點:1,可以鏡像保存整個目錄樹和文件系統2,容易做到保留原有的許可權(permission,mode),owner,group,時間(修改時間,modify time),軟硬鏈接,文件acl,文件attributes等3,傳輸 ...
  • 三、技巧 1、1=1,1=2 的使用,在 SQL 語句組合時用的較多 “where 1=1” 是表示選擇全部 “where 1=2”全部不選, 如:if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @t ...
  • 下麵是這本書序言中的大部分內容,本人的英文水平有限,有理解不到位的地方還請大家指教,這算是自己對這本書的筆記和總結。 數據是當今系統設計中許多挑戰的中心,一些難以解決的問題如系統的可擴展性,一致性,可靠性,有效性和可維護性等需要弄清楚。 另外,我們已經有了各式各樣的工具,包括關係型資料庫,NoSQL ...
  • 1、資料庫操作 1.1、連接mysql伺服器 mysql -u root( 用戶名 ) -p 1.2、退出mysql命令提示窗 exit 1.3、查看版本 SELECT VERSION(); 1.4、列出資料庫列表 SHOW DATABASES; 1.5、創建資料庫 CREATE DATABASE ...
  • 各位小伙伴,又到了本期分享大數據技術的時間,本次給大伙帶來的是Elasticsearch這個技術,閑話不多聊,我們開始進入正題。 一、什麼是elasticsearch Elasticsearch是一個基於Lucene的實時的分散式搜索和分析 引擎。設計用於雲計算中,能夠達到實時搜索,穩定,可靠, 快 ...
  • 一,首先想到: 1,關鍵字distinct 2,group by 3,MAX,MIN這樣的函數被稱為聚集函數,和GROUP搭配起來用 但均無法實現,執行結果如下 舉例: 表名:OffsiteOutreachTeam_List 欄位:CORPADDLEVEL(獲取該欄位不重覆數據),CHANNELCO ...
  • 一 新的可視化工具 因為前文所提到的,看不到外部伺服器和外部表的問題,我更換了可視化工具。 好用的新工具PostgreSQL Maestro! 當然如此好用的工具不是免費的,如果想免費使用還請自己去找,本文不提供此類下載。 二 在.NET項目中訪問postgreSql資料庫 2.1 第三方類庫 Np ...
  • mysql備份還原 1.1 備份恢復-說明 運維工作的核心簡單概括就兩件事: 第一個:是保護公司的數據. 第二個:是讓網站能7*24小時提供服務(用戶體驗)。 1.1.1 備份簡介 1.2 mysqldump備份工具詳解 mysql原生自帶很好用的邏輯備份工具 1.2.1 mysqldump常用參數 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...