Oracle 區管理和段空間管理小結

來源:互聯網
上載者:User

作為一名DBA,常見的一個情境之一:

建立資料表空間:

create tablespace Think 
datafile '/u01/app/Oracle/oradata/orcl/think.dbf' size 100M 
autoextend on next 10M maxsize 4096M 
extent management local uniform size 256K 
segment space management auto;

建立使用者:

create user bin 
default tablespace Think 
temporary tablespace temp; 

授予許可權:

grant connect,resource to bin; 
revoke unlimited tablespace from bin; 
alter user bin quota unlimited on Think; 

在這個情境中,有兩條語句:

① extent management local uniform size 256K

② segment space management auto

其中,前者是區管理;後者則是段空間管理

㈠ 區管理

區管理實際上就是資料表空間的管理

8i以前,是字典管理資料表空間,當建立或刪除對象時,Oracle的空間分配或回收是通過資料字典來記錄和管理

在高並發系統中,這會導致效能衰減、空間片段等難題

這已經是門過去的技術,這裡就不贅述了。

8i開始,Oracle引入本地資料表空間管理

在每個資料表空間的資料檔案的頭部加入了一個位元影像地區

一個段的第一個區的第一個塊是first level bitmap block

第二個塊是second level bitmap block

第三個塊才是段頭塊

這兩個塊是用來管理free block

文法:

extent management local { autoallocate | uniform size n K/M}

是自動分配還是統一尺寸

若為自動分配,則Oracle會按照遞增演算法來分配空間

如果選擇統一尺寸,還可以詳細指定每個區間的大小

dba_extents這個視圖可以看到哪些對象分配了多少區間

  • 1
  • 2
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.