DBA Tablespace表空間的概念和管控

2021-10-06 03:32:53 字數 3951 閱讀 4754

dba_tablespace表空間的概念和管控(概念)

一、摘要

我們知道oarcle資料庫真正存放資料的是資料檔案(data files);

oarcle表空間(tablespaces)實際上是乙個邏輯的概念,他在物理上是並不存在的,那麼把一組data files 捻在一起就成為乙個表空間;

在oracle資料庫中,所有資料從邏輯結構上看都是存放在表空間當中,當然表空間下還有段、區、塊等邏輯結構;

從物理結構上看是放在資料檔案中。乙個表空間可由多個資料檔案組成;

表空間屬性

乙個資料庫可以包含多個表空間,乙個表空間只能屬於乙個資料庫

乙個表空間包含多個資料檔案,乙個資料檔案只能屬於乙個表空間

表這空間可以劃分成更細的邏輯儲存單元

2. 基本的表空間(系統中預設建立的幾個表空間:)

system: 系統表表空間

sysaux: 索引表空間

users: 使用者表空間

undotbs1: 回滾表空間

example: 工具表空間

temp: 臨時表空間

表空間的分類

永久表空間 存放永久性資料,如表,索引等。

臨時表空間 不能存放永久性物件,用於儲存資料庫排序,分組時產生的臨時資料。

undo表空間 儲存資料修改前的鏡象。

4. 表空間的管理

字典管理:全庫所有的空間分配都放在資料字典中。容易引起字典爭用,而導致效能問題。

本地管理:空間分配不放在資料字典,而在每個資料檔案頭部的第3到第8個塊的位圖塊,來管理空間分配。

5. 基本操作

1: 建立表空間

2: 表空間管理

3: 維護表空間

4: 表空間配額

二、結構分析

表空間和資料檔案的關係

資料庫儲存結構

三、案例1 - 建立表空間

建立表空間,並指定兩個資料庫檔案

複製**

1 create tablespace bxj_data

2 datafile 『/oradata/bxj_data_001.dbf』

3 size 100m

4 extent management local

5 segment space management auto online;

67 alter tablespace bxj_data

8 add datafile 『/oradata/bxj_data_001.dbf』

9 size 100m

10 autoextend off;

複製**

四、案例2 - 表空間管理

常用的表查詢

–包含資料庫中所有表空間的描述資訊

select * from dba_tablespaces

–包含當前使用者的表空間的描敘資訊

select * from user_tablespaces

–包含從控制檔案中獲取的表空間名稱和編號資訊

select * from vtab

lesp

ace;

−−包含

資料檔案

以及所屬

的表空間

的描述信

息sel

ect∗

from

dbad

ataf

iles

−−包含

臨時資料

檔案以及

所屬的表

空間的描

述資訊s

elec

t∗fr

omdb

atem

pfil

es−−

包含從控

制檔案中

獲取的數

據檔案的

基本資訊

,包括它

所屬的表

空間名稱

、編號等

sele

ct∗f

romv

tablespace; --包含資料檔案以及所屬的表空間的描述資訊 select * from dba_data_files --包含臨時資料檔案以及所屬的表空間的描述資訊 select * from dba_temp_files --包含從控制檔案中獲取的資料檔案的基本資訊,包括它所屬的表空間名稱、編號等 select * from v

tables

pace

;−−包

含資料文

件以及所

屬的表空

間的描述

資訊se

lect

∗fro

mdba

d​at

af​i

les−

−包含臨

時資料文

件以及所

屬的表空

間的描述

資訊se

lect

∗fro

mdba

t​em

pf​i

les−

−包含從

控制檔案

中獲取的

資料檔案

的基本信

息,包括

它所屬的

表空間名

稱、編號

等sel

ect∗

from

vdatafile

–包含所有臨時資料檔案的基本資訊

select * from v$tempfile

2. 檢視表空間使用情況

計算表空間使用情況(考慮了資料檔案自動增長情況)

五、案例3 - 維護表空間

表空間狀態有下面幾種狀態:online、offline、read only、read write

select file#, status, enabled from v$datafile

設定為離線狀態

sql>alter tablespace tbs_dm_dat offline immediate;

設定為聯機狀態

sql> alter tablespace tbs_dm_dat online;

設定為唯讀狀態

sql>alter tablespace tbs_dm_dat ready only;

設定為讀寫狀態

sql>alter tablespace tbs_dm_dat read write;

修改表空間名稱

在oracle 10g 之前,表空間的名稱是不能被修改的。在oracle 11g中,通過alter tablespace 語句中使用rename子句,資料庫管理員可以修改表空間的名稱

修改表空間自動增加開啟

alter database datafile 『/database/oracle/oradata/gsp/tbs_dm_data_002.dbf』 autoextend on;

修改表空間自動增加關閉

alter database datafile 『/database/oracle/oradata/gsp/tbs_dm_data_002.dbf』 autoextend off;

修改表空間的資料庫檔案大小

alter database datafile 『/database/oracle/oradata/gsp/tbs_dm_data_002.dbf』 resize 1921m;

10 新增表空間的乙個資料庫檔案

alter tablespace tbs_dm_dat add datafile 『/database/oracle/oradata/gsp/tbs_dm_data_003.dbf』 size 1921m;

六、案例4 - 表空間配額度

表空間不足與使用者配額不足是兩種不同的概念。表空間的大小是指實際的使用者表空間的大小,而配額大小指的是使用者指定使用表空間的的大小。兩者的解決方式亦不相同

檢視使用者和表弓箭配額

檢視所有使用者表空間的配額情況: select * from dba_ts_quotas

檢視當前使用者表空間的配額情況: select * from user_ts_quotas

exp空表處理

exp aa aa orcl file d 匯出空表資料 1.select alter table table name allocate extent from user tables where segment created no 查出空表 然後往空表裡面插入資料,匯出後在刪除 2.配置環境 ...

Oracle空表開關

設定deferred segment creation引數 以下語句可以在cmd裡登入資料庫後執行 檢視引數 show parameter deferred segment creation 設定引數 alter system set deferred segment creation false ...

DataTable表名為空

1.datatable dt new datatable da.fill dt dt的名稱為空,解決辦法 datatable dt new datatable test 2.用dataset sqldataadapter類的fill方法填充dataset中表名稱,預設是table,table1,ta...