Oracle表空間與資料檔案

2021-09-01 17:25:00 字數 3565 閱讀 8617

1.oracle資料庫邏輯結構包含哪些東西?

1)表空間

a.乙個oracle資料庫邏輯上分為更小的邏輯區域叫做表空間

b.乙個表空間同時只屬於乙個資料庫

c.每個表空間由乙個或多個系統檔案組成,叫做資料檔案datafile

d.乙個表空間可以有1個或多個段組成

e.當資料庫執行時表空間可以是online狀態

f.除了system表空間或者帶有活動回滾段的表空間,其他表空間可以設定為offline狀態

g.表空間可以再讀寫(read-write)和唯讀(read-only)狀態間切換

2)段a.乙個段是在乙個表空間中為指定的邏輯存數結構分配的空間。例如,分配給乙個表的所有儲存就是乙個段。

b.乙個段只能屬於乙個表空間,可以跨越多個資料檔案

c.乙個段由乙個或多個區組成

3)區a.隨著段的增長,額外的區將分配給段

b.dba可以為段手動增加區

c.乙個區是連續的oracle塊集合

d.乙個區只能在乙個資料檔案中存在

4)塊a.塊作為oracle資料庫最小的儲存單位,資料全部儲存在資料塊中。

b.乙個oracle資料塊相當於乙個或多個從已存在的資料檔案中分配的作業系統塊

c.乙個標準資料塊的大小由資料庫建立時的初始化引數db_block_size指定

d.為避免不必要的i/o,資料塊的大小應該是作業系統塊大小的幾倍

e.最大的資料塊大小取決於作業系統

2.系統表空間與非系統表空間的區別?

1)系統表空間 system tablespaces:

a.隨著資料庫的建立而建立

b.在所有資料庫中必須存在

c.系統表空間包含資料字典,儲存程式單元

e.包含系統回滾段

f.最好不要包含使用者資料

2)非系統表空間 non-system tablespaces:

a.分離回滾段、臨時段、應用資料段和應用索引段

b.通過備份需求分離資料

c.分離動態和靜態資料

e.控制使用者物件空間分配的數量

f.方便資料庫管理

3.如何建立表空間?

使用create tablespace語句,一下是官方示例:

create tablespace userdata

datafile '/u01/oradata/userdata01.dbf' size 100m

autoextend on next 5m maxsize 200m;

create tablespace tablespace

[datafile clause]

[minimum extent integer[k|m]]

[blocksize integer [k]]

[logging|nologging]

[default storage_clause ]

[online|offline]

[permanent|temporary]

minimum extent 指定最小區大小,使用k(千兆)或m(兆)

logging 預設值,指定表空間中對所有表,索引和分割槽修改寫入到redo中

nologging 與logging相反

online與offline 建立完表空間後是否立即可用

permanent 指定表空間可用來保留永久物件

temporary 指定表空間只能來保留臨時物件

autoextend 啟用資料檔案自動擴充套件

4.管理表空間的方式?

1)本地管理表空間

a.用位圖bitmap(在每個資料檔案中維護)記錄空閒區

b.每個bit對應乙個資料塊

c.bit值指示空閒和已使用

好處:減少資料字典表的爭用;空間分配和**不發生undo;沒有合併需求(減少碎片);

用法舉例:

create tablespace userdata

datafile '/u01/oradata/userdata01.dbf' size 500m

extent management local uniform size 256k;

[ extent management

[ dictionary | local

[ autoallocate | uniform [size integer[k|m]] ] ] ]

local和dictionary 就不解釋了。

autoallocate 指定表空間由系統管理,使用者不能指定區大小

uniform 指定表空間由同一的區大小管理。使用k或m指定大小。

2)資料字典管理表空間

a.預設管理方法

b.空閒區被記錄在資料字典表中

create tablespace userdata

datafile '/u01/oradata/userdata01.dbf' size 500m

extent management dictionary

default storage ( initial 1m next 1m );

5.undo表空間

1)undo表空間只能用來儲存回滾段

2)建立undo表空間只能使用datafile和extent management語句

create undo tablespace undo1

datafile '/u01/oradata/undo101.dbf' size 40m;

6.temporary表空間

1)用來進行排序操作 sort_area_size(用來設定排序區的大小)

2)不能包含任何永久物件

3)推薦使用本地管理

create temporary tablespace temp

tempfile '/u01/oradata/temp01.dbf' size 500m

extent management local uniform size 10m;

4)本地管理臨時表空間有臨時資料檔案tempfiles:

a.臨時檔案一直是nologging模式

b.不能設定臨時檔案為唯讀read-only

c.不能重新命名乙個臨時檔案

d.不能使用alter database命令增加臨時檔案

e.臨時檔案對於唯讀資料庫是需要的

f.介質恢復不恢復臨時檔案

g.備份控制檔案時不生成任何臨時檔案的資訊

h.建立控制檔案時不能指定任何關於臨時檔案的資訊

7.預設default臨時表空間

1)避免使用system表空間儲存臨時資料

2)可以使用create database和alter database語句建立

3)當使用create databse命令建立,預設臨時表空間為本地管理

預設臨時表空間的限制:

a.沒有指定新的預設臨時表空間之前不能刪除現有預設臨時表空間

b.不能更改預設臨時表空間為永久型別

c.不能修改預設臨時表空間為offline狀態

注:system表空間、帶有活動回滾段和預設臨時表空間不能設定為離線狀態

Oracle表空間與資料檔案

1.oracle資料庫邏輯結構包含哪些東西?1 表空間 a.乙個oracle資料庫邏輯上分為更小的邏輯區域叫做表空間 b.乙個表空間同時只屬於乙個資料庫 c.每個表空間由乙個或多個系統檔案組成,叫做資料檔案datafile d.乙個表空間可以有1個或多個段組成 e.當資料庫執行時表空間可以是onli...

oracle管理表空間與資料檔案

檢視表空間使用情況 select upper f.tablespace name 表空間名 d.tot grootte mb 表空間大小 m d.tot grootte mb f.total bytes 已使用空間 m to char round d.tot grootte mb f.total b...

oracle表空間和資料檔案

size medium 表空間是資料庫的邏輯組成部分,在物理上講,資料庫資料存放在資料檔案中,從邏輯上講,資料庫則是存放在表空間中,表空間由乙個或者多個資料檔案組成,表空間由段構成,而段又由區構成,而區又由塊構成。表空間從邏輯上組織資料庫的資料,資料庫邏輯上是由乙個或者多個表空間組成,表空間有以下作...