(Les07 Storage)[20180222]

来源:https://www.cnblogs.com/also-brook/archive/2018/02/23/8462453.html
-Advertisement-
Play Games

目的 描述塊中表行數據的存儲 創建和管理表空間 獲取表空間信息 表數據的存儲方式 創建表時,還會創建一個用於保存其數據的段。 表空間包含一個段集合。 從邏輯上表包含許多行列值。行最終以行片段的形式存儲在資料庫塊中。之所以稱為行片段,是因為在某些情況下可能會在一個位置存儲不完整的行。 -當插入的行太大 ...


目的     描述塊中表行數據的存儲     創建和管理表空間     獲取表空間信息   表數據的存儲方式              創建表時,還會創建一個用於保存其數據的段。         表空間包含一個段集合。            從邏輯上表包含許多行列值。行最終以行片段的形式存儲在資料庫塊中。之所以稱為行片段,是因為在某些情況下可能會在一個位置存儲不完整的行。             -當插入的行太大而無法裝入單塊時,鏈接行             -當更新導致現有行超出當前塊的可用空閑空間時,遷移行             -當表中的列多於255列時,也使用行片段。這種情況下,這些行片段可能位於同一個塊(塊內鏈)中,也可能位於多個塊中。        資料庫塊                      塊頭:塊頭包含段類型(如表或索引)/數據塊地址/表目錄/行目錄和事務處理插槽。每個插槽的大小約23位元組,修改塊中的行時會使用這些插槽。塊頭自上而下進行增長。             行數據:這是塊中行的實際數據。行數據空間自下而上進行增長。             空閑空間:空閑空間位於塊的中部,允許頭和行數據空間在必要時進行增長。當插入新行或更大的值更新現有行的列時,行數據會占用空閑空間。                 導致塊頭增長的事件:                     -行目錄需要更多的行條目                     -需要的事務處理插槽數多於最初配置的數目                 起初,塊中的空閑空間是相鄰的。但是,刪除和更新操作可能會導致塊中的空閑空間變成碎片。需要時Oracle伺服器會接合塊中的空閑空間。       表空間的存儲         區分配:可通過以下兩種方法之一分配本地管理表空間中的區:             -自動,“自動分配”,這種方法指定表空間中的區的大小是由系統管理的。不能對臨時表空間指定“Automatic自動”。             -統一,這種方法規定使用指定的統一區大小來管理表空間。預設大小為1MB.臨時表空間的所有區都是統一的。不能對還原表空間(UNDO)指定“Uniform(統一)”         段空間管理             -自動,Oracle DB使用點陣圖管理段中的空閑空間。點陣圖描述了段中每個數據塊的狀態。該狀態與可插入行的塊中的空間量有關。當數據塊中可用空間增多或減少時,點陣圖中會反映數據塊的新狀態。通過使用點陣圖,Oracle DB可以提高管理空閑空間的自動化程度。因此,這種空間管理方式稱為“自動段空間管理(ASSM)”             -手動,使用空閑列表來管理段中的空閑空間。空閑列表是由一些數據塊組成的列表,這些數據塊中有可插入行的空間。由於這種管理段空間的方式需要為表空間中創建的方案對象指定並優化PCTUSED/FREELISTS和FREELIST GROUPS存儲參數,因此這種方式稱為‘手動段空間管理’。支持使用此方法是為向後相容,建議使用ASSM自動段管理。         壓縮選項:預設情況下,數據段壓縮功能處於禁用狀態。啟用數據段壓縮功能可以節省磁碟空間使用量,減少緩衝區高速緩存中的記憶體使用量,還可以加快讀取執行查詢的效率。但是,在數據載入和DML過程中會產生CPU開銷。本功能在聯機分析處理(OLAP)系統中尤其有用,在這些系統中存在長時間的只讀運算;但也可用在聯機事務處理(OLTP)系統中。         事件記錄:事件記錄子句為表空間中創建的所有段設置預設的事件記錄值。對錶空間中的對象所做的更改會寫入重做日誌。如果未啟用事件記錄,則使用SQL*loader和直接載入Insert操作進行的任何直接載入都不會寫入重做日誌,因此,如果發生數據丟失的情況,這些對象將不可恢復。如果在未啟用事件記錄的情況下創建了對象,則只有備份這些對象才能進行恢復。選擇不啟用事件記錄會對日後恢復對象的能力造成巨大影響。《Oracle Database SQL Reference》Reference                     註意:如果對資料庫啟用了force logging模式,該預設優先順序高於表空間事件記錄設置。可以在創建資料庫時將資料庫置於FORCE LOGGING模式,也可以在創建資料庫後使用alter database force logging命令將資料庫置於該模式。         塊信息:此區域顯示所創建的表空間使用的塊大小。此處顯示的值為只讀值。如果設置了任何其它塊大小初始化參數(db_nK_cache_size),則會在此處列出其它值作為選項。   預配置的資料庫中的表空間         SYSTEM                 Oracle伺服器使用SYSTEM表空間管理資料庫。這個表空間包含的數據字典和表中包含關於資料庫的管理信息。上述信息均包含SYS用戶中,只有SYS用戶或擁有者所需許可權的其它管理用戶才可訪問這些信息。         SYSAUX                 SYSTEM表空間的輔助表空間。Oracle DB早期版本中某些使用SYSTEM表空間或其本身表空間的組件和產品現改為使用SYSAUX表空間。每個Oracle Database 10g(或更高版本)資料庫都必須擁有SYSAUX表空間。         USERS                 此表空間用於存儲用戶對象和數據。如果在創建用戶時未指定預設的表空間,則USERS表空間將成為該用戶創建的所有對象的預設表空間。對於SYS和SYSTEM用戶,預設的永久表空間是SYSTEM。         UNDOTBS1                 資料庫伺服器用於存儲還原信息的還原表空間。如果資料庫使用“自動還原管理”,那麼資料庫在任何指定時間只能使用一個還原表空間。此表空間是創建資料庫時創建的。         TEMP                 如果執行的SQL語句需要創建臨時段(如大規模排序或創建索引),則需要使用臨時表空間。創建用戶時向用戶分配一個預設的臨時表空間。最好的做法是為資料庫定義一個預設臨時表空間,並且將此表空間分配給所有新建用戶(除非另行指定)。 是         EXAMPLE(可選)                 此表空間包含創建資料庫時可以安裝的示例方案。這些示例方案為各種示例提供了一個通用平臺。           註意:為簡化管理,通常為索引使用單獨的表空間。   變更表空間         重命名         更改狀態:             -讀寫,表空間已聯機,可進行讀寫。             -只讀,指定‘只讀’可將表空間置於只讀模式。此狀態下,可以完成(提交或回退)現有的事務處理,但是,不允許對錶空間中的對象進一步執行數據操縱語言(DML)操作。表空間已聯機,但處於只讀狀態。不能使SYSTEM和SYSAUX表空間處於只讀模式。             註:無法使還原表空間和臨時表空間成為只讀表空間。             -離線,可以讓聯機的表空間離線,使資料庫的這部分暫時不可用於一般用途。資料庫的餘下部分是開放的,可讓用戶訪問其中的數據。表空間離線時,可以使用以下選項:                     Normal(正常),如果表空間中的任一數據文件都不存在任何錯誤狀態,通過正常方式便可使表空間離線。當Oracle DB使表空間離線時,通過為表空間的所有數據文件設置檢查點,來確保所有數據寫入磁碟。                     Temporary(臨時),如果表空間中的一個或多個文件存在錯誤狀態,也可以使表空間臨時離線。當Oracle DB使數據文件(尚未離線的)離線時,將為這些數據文件設置檢查點。如果沒有任何文件離線,但是您使用了臨時子句,則在使表空間重新聯機時不需要執行介質恢復。但是,如果因寫錯誤而導致表空間的一個或個文件離線,而且設置了表空間臨時離線,那麼表空間需要執行恢復後才能重新聯機。                     Immediate(立即),Oracle DB可以使表空間立即離線,而不需要為任何數據文件設置檢查點。如果指定了“Immediate(立即)”,則必須先對錶空間執行介質恢復,才能使表空間聯機。如果資料庫在NOARCHIVELOG模式下運行,則無法立即使表空間離線。                     For Recover(用於恢復),FOR Recover設置已被廢棄。支持此語法是為了向後相容。                     註:不能使系統表空間離線。             更改大小:通過向表空間添加數據文件/或更改現有數據文件的大小,可增加現有表空間的空間。                     -ADD                          ALTER TABLESPACE <tablespace_name> ADD DATAFILE <data file path> SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 8192M;                          註:無法向大文件表空間中繼續添加其它數據文件。                     -RESIZE                         ALTER DATABASE DATAFILE <data file path> RESIZE <change_size>;                         可以擴大或縮小表空間。但是,不能使數據文件小於該文件中已使用的空間。ORA-03297:flie contains used data beyond requested resize value.           存儲選項           閥值:Thresholds(閥值),可更改表空間的空間使用到達警告或嚴重級別時的值。                     -Use Database Default Thresholds(使用資料庫預設閥值)                     -Specify Thresholds(指定閥值)                     -Disable Thresholds(禁用閥值)                     註:預設情況下,每隔10分鐘才檢查一次空間使用率,因此,可能要花費數分鐘時間才會註冊一條閥值預警。   表空間操作         -Add Datafile(添加數據文件):將數據文件添加到表空間         -Create Like(類似創建):將表空間作模板,創建另一個表空間。         -Generate DDL(生成DDL):生成用於創建表空間的數據定義語言(DDL)語句。隨後,此語句可複製並粘貼到文本文件,以用作腳本或文檔。         -Make Locally Managed(進行本地管理):如果表空間當前是字典管理的表空間,則可將該表空間轉換為本地管理的表空間。這種轉換隻能單向進行;不能將表空間重新轉換到字典管理的表空間。如果需要,可以使用PL\SQL程式包。DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_FROM_LOCAL來轉換到字典管理的表空間。         -Make Readonly(只讀):停止對錶空間的所有寫操作。允許完成當前的事務處理,但是,不允許對錶空間啟動新的DML活動或其他寫活動。只有表空間的當前狀態不是只讀時,才顯示此選項。          -Make Writable(可寫):允許對錶空間中的對象啟動DML活動和其它寫活動。只有表空間的當前狀態不可寫時,才顯示此選項。          -Place Online(聯機):使當前離線的表空間聯機。          -Reorganize(重組):表空間中各處移動對象以回收空間,使其變為可用。重組時請在表空間對象處於非使用/非高峰時執行。          -Run Segment Advisor(運行段指導):使用該指導可根據對象中空間碎片的級別來確定對象是否擁有可回收的空間。會在表空間級別上針對錶空間中的每個段生成建議。          -Show Dependencies(顯示依賴性):顯示此表空間依賴的對象,或依賴於此表空間的對象。          -Show Tablespace Contents(顯示表空間內容):顯示關於表空間中所有段的信息,包括所有區的圖形。          -Take Offline(離線):使當前聯機的表空間不可用。此時不會刪除表空間,只是表空間不可用。   刪除表空間         不再需要表空間及其內容(表空間中包含的段),可以從資料庫中刪除表空間及其內容。必須具有DROP TABLESPACE系統許可權才可以刪除表空間。         刪除表空間時,會刪除關聯資料庫控制文件中的文件指針。如果在使用Oracle管理的文件(OMF),則還會刪除基礎操作系統文件。如果未使用OMF,則可以根據需要指示Oracle伺服器其刪除包含在已刪除表空間中的操作系統文件。如果不指示,Oracle伺服器只會刪除表空間的數據文件指針,後續還要在操作系統刪除這些數據文件。                        查看表空間信息         表空間信息:             DBA_TABLESPACES             V$TABLESPACE         數據文件信息:             DBA_DATA_FILES             V$DATAFILE             V$DBFILE視圖顯示資料庫中的所有數據文件,保留此視圖是為了向後相容。         臨時文件信息             DBA_TEMP_FILES             V$TEMPFILE   Oracle管理的文件(OMF)     按照資料庫對象而不是文件名指定文件操作.         DB_CREATE_FILE_DEST 定義數據文件和臨時文件預設文件系統目錄的位置         DB_CREATE_ONLINE_LOG_DEST_n  定義重做日誌文件和控制文件的創建位置         DB_RECOVERY_FILE_DEST 快速恢復區的預設位置                  ALTER SYSTEM SET DB_CREATE_FILE_DEST = '+DATA';         CREATE TABLESPACE TBS_1;       OMF根據內部使用標準文件系統介面創建或刪除下列資料庫結構的文件:             -表空間             -重做日誌文件             -控制文件             -歸檔日誌             -塊更改跟蹤文件             -閃回日誌             -RMAN備份                      資料庫既可以包含Oracle管理的文件,也可以包含非Oracle管理的文件。由這兩個參數之一指定的文件系統目錄必須都已存在;資料庫不會創建該目錄。該目錄還必須具有相應的許可權,以便資料庫在其中創建文件。               Oracle管理的文件具有特定的命名格式。例如,基於Linux和Unix的系統中使用以下格式:                     <destination_prefix>/o1_mf_%t_%u_.dbf             請勿重命名Oracle管理的文件。資料庫通過名稱來識別Oracle管理的文件。重命名文件會導致資料庫無法將其識別為Oracle管理的文件,從而無法正確地管理該文件。             預設情況下,Oracle管理的數據文件(包括SYSTEM和SYSAUX表空間中Oracle管理的數據文件)為100MB大小且可以自動擴展。             註:預設情況下,ASM使用OMF文件,但是,如果在創建表空間時或向現有表空間中添加ASM數據文件時為ASM數據文件指定了別名,則該ASM數據文件不會為OMF格式。   擴大資料庫         創建新的表空間         將數據文件添加到現有的小文件表空間         增加數據文件的大小         動態擴展數據文件                                
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 事務 1.概念 一條或者多條sql語句的集合! 事務:就是一堆操作的集合,他們同生共死。要麼都執行成功,要麼都執行失敗2.事務的特性 ACID A:原子性 完整的,不可分割的 原子性 (Atomicity):在事務中的操作,要麼都執行,要麼都不執行! C: 一致性 事務執行完畢後,數據的狀態是一致的 ...
  • 存儲常式是存儲在資料庫伺服器中的一組sql語句,通過在查詢中調用一個指定的名稱來執行這些sql語句命令. 簡介 SQL語句需要先編譯然後執行,而存儲過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,經編譯後存儲在資料庫中,用戶通過指定存儲過程的名字並給定參數(如果該存儲過 ...
  • 1.視圖: 就是一張虛擬表,本質上存儲的是一對SQL的集合 -- 視圖 是一張虛擬的表 01.表示一張表的部分數據或者是多張表的綜合數據! 02.結構和數據都是建立在對真表的查詢基礎之上的! 03.視圖中存放的數據其實就是對真實表的引用! 對視圖中的數據進行添加,更新刪除都會影響到真實的表! 04. ...
  • 1.概念 一條或者多條sql語句的集合! 事務:就是一堆操作的集合,他們同生共死。要麼都執行成功,要麼都執行失敗2.事務的特性 ACID A:原子性 完整的,不可分割的 原子性 (Atomicity):在事務中的操作,要麼都執行,要麼都不執行! C: 一致性 事務執行完畢後,數據的狀態是一致的() ...
  • 首先創建一張 students 表 SQL腳本如下: ![][1] ![][2] 不帶參數的存儲過程 執行存儲過程: ![][3] 帶參數的存儲過程 執行存儲過程: ![][4] 帶有輸出參數的存儲過程 MySQL 支持 in (傳遞給存儲過程),out (從存儲過程傳出) 和 inout (對存儲 ...
  • 強制:不允許在跳板機上/生產伺服器上手工連接,查詢或更改線上數據。 強制:所有上線腳本必須先在測試環境執行,驗證通過以後方可在生產環境執行。 強制:上線腳本的編碼格式統一為UTF-8。 強制:訪問資料庫需要使用DNS功能變數名稱,不能直接寫IP。 ...
  • 一、問題概述 問題大概是這樣的,有一個功能頁面經常查詢超時,有時候就算能查詢出來也要很長的時間,但是有時又會很快。遇到的這種問題在排除掉網路原因之後基本上可以從查詢語句上去找原因。 編譯查詢SQL語句和查詢進程等待結果如下: 1.進程等待 2.編譯查詢 問題分析: 1.等待類型為SOS_SCHEDU ...
  • Elasticsearch 是利用分片將數據分發到集群內各處的。分片是數據的容器,文檔保存在分片內,分片又被分配到集群內的各個節點里。 當你的集群規模擴大或者縮小時, Elasticsearch 會自動的在各節點中遷移分片,使得數據仍然均勻分佈在集群里。 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...