oracle區(qū)管理和段空間管理詳細(xì)介紹
更新時間:2012年11月20日 11:31:58 投稿:whsnow
本文將詳細(xì)介紹oracle區(qū)管理和段空間管理,需要的朋友可以參考下
作為一名DBA,常見的一個場景之一:
創(chuàng)建表空間:
復(fù)制代碼 代碼如下:
createtablespaceThink
datafile'/u01/app/oracle/oradata/orcl/think.dbf'size100M
autoextendonnext10Mmaxsize4096M
extentmanagementlocaluniformsize256K
segmentspacemanagementauto;
創(chuàng)建用戶:
復(fù)制代碼 代碼如下:
createuserbin
defaulttablespaceThink
temporarytablespacetemp;
授予權(quán)限:
復(fù)制代碼 代碼如下:
grantconnect,resourcetobin;
revokeunlimitedtablespacefrombin;
alteruserbinquotaunlimitedonThink;
在這個場景中,有兩條語句:
①extentmanagementlocaluniformsize256K
②segmentspacemanagementauto
其中,前者是區(qū)管理;后者則是段空間管理
㈠區(qū)管理
區(qū)管理實際上就是表空間的管理
8i以前,是字典管理表空間,當(dāng)創(chuàng)建或刪除對象時,Oracle的空間分配或回收是通過數(shù)據(jù)字典來記錄和管理
在高并發(fā)系統(tǒng)中,這會導(dǎo)致性能衰減、空間碎片等難題
這已經(jīng)是門過去的技術(shù),這里就不贅述了。
8i開始,Oracle引入本地表空間管理
在每個表空間的數(shù)據(jù)文件的頭部加入了一個位圖區(qū)域
一個段的第一個區(qū)的第一個塊是firstlevelbitmapblock
第二個塊是secondlevelbitmapblock
第三個塊才是段頭塊
這兩個塊是用來管理freeblock
語法:
復(fù)制代碼 代碼如下:
extentmanagementlocal{autoallocate|uniformsizenK/M}
是自動分配還是統(tǒng)一尺寸
若為自動分配,則Oracle會按照遞增算法來分配空間
如果選擇統(tǒng)一尺寸,還可以詳細(xì)指定每個區(qū)間的大小
dba_extents這個視圖可以看到哪些對象分配了多少區(qū)間
㈡段空間管理
Oracle以區(qū)間為單位將空間分配給對象段,而段內(nèi)則是以block為單位進(jìn)行空間使用和管理
我們以幾個參數(shù)來理解段空間管理
復(fù)制代碼 代碼如下:
[sql]
<spanstyle="font-size:18px;">sys@ORCL>selectextent_management,segment_space_managementfromdba_tablespaces;
EXTENT_MANSEGMEN
----------------
LOCALMANUAL
LOCALMANUAL
LOCALAUTO
LOCALMANUAL
LOCALMANUAL
從9i開始,段空間管理有兩種:
①MSSM:由你設(shè)置freelists、freelistgroups、pctused、pctfree、initrans等參數(shù)來控制如何分配、使用段中的空間
②ASSM:你只需控制一個參數(shù)pctfree,其他參數(shù)即使建了也將被忽略
⑴freelist
使用MSSM表空間管理時,Oracle會在freelist中為有自由空間的對象維護(hù)HWM以下的塊
freelist和freelistgroup在ASSM表空間中根本不存在,僅在MSSM表空間使用這個技術(shù)
⑵pctfree和pctused
pctfree告訴Oracle:塊上應(yīng)該保留多大的空間來完成將來的更新
對于MSSM,她控制著塊何時放入freelist中,以及何時從freelist中取出。
如果大于pctfree,則這個塊會一直在freelist上
對于ASSM,因為ASSM根本不使用freelist。在ASSM中,pctused也將被忽略。
但她仍然會限制能否將一個新行到一個塊中
適當(dāng)?shù)脑O(shè)置pctfree有助于減小行遷移
⑶initrans
無論是ASSMorMSSM這個參數(shù)仍然有效
塊頭的事務(wù)槽的初始化大小有對象的initrans指定
相關(guān)文章
Oracle的substr和instr函數(shù)簡單用法
這篇文章主要介紹了Oracle的substr和instr函數(shù)簡單用法 的相關(guān)資料,需要的朋友可以參考下2015-12-12
Oracle結(jié)合Mybatis實現(xiàn)取表TOP 10條數(shù)據(jù)
這篇文章主要介紹了Oracle結(jié)合Mybatis實現(xiàn)取表TOP 10條數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2017-11-11
Oracle RMAN還原時set newname文件名有空格報錯的解決方法
數(shù)據(jù)庫備份還原是我們?nèi)粘i_發(fā)少不了的一個功能,但如果一不注意估計就會有問題,下面這篇文章主要給大家介紹了關(guān)于Oracle RMAN還原時set newname文件名有空格報錯的解決方法,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
ORA-06512數(shù)字或值錯誤字符串緩沖區(qū)太小異常詳解
最近工作中遇到了Oracle: ORA-06512:字符串緩沖區(qū)太小,報錯的意思很簡單,字符串緩沖區(qū)小了,這篇文章主要給大家介紹了關(guān)于ORA-06512數(shù)字或值錯誤字符串緩沖區(qū)太小異常的相關(guān)資料,需要的朋友可以參考下2023-01-01
OracleOraDb10g_home1TNSListener服務(wù)無法啟動怎么解決
這篇文章主要介紹了OracleOraDb10g_home1TNSListener服務(wù)無法啟動的解決辦法,有需要的朋友可以參考本教程的解決方法2016-05-05
DBF 文件恢復(fù) ORACLE 數(shù)據(jù)庫的方法
這篇文章主要介紹了DBF 文件 ORACLE 數(shù)據(jù)庫恢復(fù)的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01

