Oracle學習 之 表空間

2021-07-27 11:33:21 字數 3314 閱讀 3444

-question:表空間是什麼,為什麼引入,有什麼用?

-表空間是oracle 11g對資料庫檔案的稱呼,可把它看作表駐留的空間。

-為了合理管理業務資料、索引資料、臨時資訊及回退資訊,需要建立不同型別的表空間。

-簡化對資料檔案的管理

(1)概念:

表空間是資料庫的邏輯儲存空間,可以理解為在資料庫中開闢的乙個空間,用於存放資料庫的物件,資料庫可以由多個表空間組成,而表空間則是由乙個或者多個資料檔案來組成的,資料檔案是物理儲存空間

1.乙個資料庫可以由多個表空間構成。

2.oracle中的表空間概念是與mysql、sql server等資料庫的乙個重要區別:oracle的很多優化都是通過表空間實現的

3.表空間:是由乙個或多個資料檔案構成的,資料檔案的位置和大小可以由使用者自己定義。

表空間的分類:

1.永久表空間:資料庫中要永久化儲存的一些物件,如:表、檢視、儲存過程

2.臨時表空間:資料庫操作當中中間執行的過程,執行結束後,存放的內容會被自動釋放

3.undo表空間:用於儲存事務所修改資料的舊值,可以進行資料的回滾

(2)檢視使用者的表空間:

dba_tablespaces 和 user_tablespaces 資料字典

dba_users 和 user_users資料字典

desc dba_tablespaces

select tablespace_name from dba_tablespaces;

許可權大的能訪問許可權小的表空間,反之則不行。比如:

(3)設定使用者的預設或臨時表空間

alter user username default|temporary tablespace tablespace_name

普通使用者沒有設定表空間的許可權

(4)建立表空間

格式:

create [temporary] tablespace

tablespace_name

tempfile|detafile 『xx.dbf』 size xx

create tablespace test1_tablespace datafile 'test1file.dbf'

size

10m;

create

temporary tablespace temptest1_tablespace tempfile 'tempfile1.dbf'

size

10m;

檢視預設情況下的表空間位置
desc dba_data_files

select file_name from dba_data_files where tablespace_name = 'test1_tablespace';

//顯示的是預設情況下建立表空間檔案存放的位置

(5)修改表空間

-修改表空間的狀態

設定聯機或離線狀態

alter tablespace tablespace_name online|offline;

設定唯讀或可讀寫狀態

alter tablespace tablespace_name read only|read write

(離線是不能更改其屬性的。)

alter tablespace test1_tablespace offline;

desc dba_tablespaces

select status from dba_tablespaces where tablespace_name = 'test1_tablespace';

alter tablespace test1_tablespace online;

select status from dba_tablespaces where tablespace_name = 'test1_tablespace';

alter tablespace test1_tablespace read

only;

select status from dba_tablespaces where tablespace_name = 'test1_tablespace';

alter tablespace test1_tablespace read

write;

select status from dba_tablespaces where tablespace_name = 'test1_tablespace';

-修改資料檔案

= 增加資料檔案

alter tablesapce tablespace_name add datafile 『xx.dbf』size xx;

= 刪除資料檔案

alter tablesapce tablespace_name drop datafile 『xx.dbf』size xx;

不能刪除表空間第乙個資料檔案,即建立表空間時候建立的資料檔案,若果要刪除則要把表空間刪除

alter tablespace test1_tablespace add datafile 'test2_file.dbf'

size

10m;

select file_name from dba_data_files where tablespace_name='test1_tablespace';

alter tablespace test1_tablespace drop datafile 'test2_file.dbf';

select file_name from dba_data_files where tablespace_name='test1_tablespace';

(6)刪除表空間

drop tablespace tablespace_name [including contents]

若刪除表空間時,連帶刪除表空間中的檔案,則加including contents

oracle之表空間

表空間 執行需要dba許可權 1.建立表空間 create tablespace sp001 datafile d sp001.dbf size 20m uniform size 128k 2.指定表建立到哪個表空間上 create table mypart deptno number 2 dnam...

oracle之表空間

一 dba tablespaces和user tablespaces兩個資料字典 1 dba tablespaces 記錄的是具有管理員許可權的使用者的表空間,需要登入具有管理員許可權的使用者才能訪問 desc dba tablespaces 2 user tablespaces 記錄的是普通使用者...

ORACLE之表空間

表空間 create tablespace tablespace name datafile d oracle product 10.2.0 oradata edwtest tablespace name size 1g extent management local segment space m...