oracle學習筆記六(表空間)

2021-08-25 14:58:21 字數 2947 閱讀 9559

表空間和資料檔案:

表空間:表空間是資料庫的邏輯組成部門,從物理上講,資料庫資料存放在資料檔案中,

從邏輯上講,資料庫則是存放在表空間中,表空間由乙個或是多個資料檔案組成

oralce中邏輯結構包括表空間,段,區和塊

資料庫由表空間構成,而表空間又是由段構成,

而段又是由區構成,而區又是由oracle塊構成的這樣的一種結構,可以

提高資料庫的效率

表空間用於從邏輯上組織資料庫的資料,資料庫邏輯上是由乙個

或是多個表空間組成的。通過表空間可以達到以下作用,

:1 控制資料庫占用的磁碟空間

2 dba可以將不同資料型別部署到不同的位置,

這樣有利於提高i/o效能,同時利於備份和恢復等管理操作

建立表空間:

建立表空間是使用 create tablespace命令完成的,需要注意的是

一般情況下,建立表空間是特權使用者或是dba來執行的。如果用其它

使用者建立表空間,則使用者必須具有 create tablespace 的系統許可權

在建立資料庫後,為便於管理表,最好建立自己的表空間,

create tablespace data01 datafile 'd:\test\data01.dbf' size=20m uniform size 128k

說明:執行完上述命令後,會建立名稱為data01的表空間,並為該錶空間建立名稱為data01.dbf 的資料

檔案,區的大小為128k,

使用資料表空間

create table mypart(deptno,number(40),dname varchar2(14)) tablespace data01;

改變表空間的狀態:

當建立表空間時,表空間處於聯機的(online)狀態,此時該錶空間是可以訪問的,並且還可以在表空間執行各種語句,

但是在進行系統維護或是資料維護時,可能需要改變表空間的狀態,一般情況下,由特權使用者或是dba來操作

1,使表空間離線

alert tablespace users offline;

2,使表空間聯機

alert tablespace users online;

3, 唯讀表空間

當建立表空間時,表空間可以讀寫,如果不希望在該錶空間上執行update,delete,insert操作,那麼可以將表

空間修改為唯讀

alert tablespace 表空間名 read only ; 唯讀

alert tablespace 表空間名 read write; 可讀可寫

知道表空間名。顯示該錶空間包括的所有表:

select * from all_tables where tablespace_name='表空間名';

知道表名,檢視該錶屬於哪個表空間

select tablespace_name,table_name from user_tables where table_name='表名';

system是系統表空間,不能將其設定可讀或者可寫;只有普通的表空間才能修改

刪除表空間

一般情況下,由特權使用者或dba刪除。如果是其它使用者操作,要求有drop tablespace系統許可權

drop tablespace '表空間' including contents and datafiles;

說明:including contents表示刪除表空間時,刪除該錶空間的所有資料庫物件,面datafiles

表示將資料庫檔案也刪除

擴充套件表空間:

表空間是由資料檔案組成的,表空間的大小實際上就是資料檔案相加後的大小,那麼我們可以想象

假定表employer存放到data01 表空間上,初始大小就是2m,當資料滿2m空間後,如果再向employer

表插入資料,這樣就會顯示空間不足的錯誤

dept,mypart結構一樣

插入資料:insert into mypart select * from dept;

1)增加資料檔案 alter tablespace sp01 add datafile 'd:\test\sp02.dbf' size 300m

2)增加資料檔案大小 alter tablespace 表空間名 'd:\test\sp01.dbf' resize 20; resize:是變大20

3)設定檔案的自動增長 alter tablespace 表空間名 'd:\test\sp01.dbf' autoextend on next 10m maxsize 500m;

故障處理:

移動資料檔案:

有時,如果你的資料檔案所在的磁碟損壞時,該資料檔案將不能再使用,為了能重新使用,

需要將這些檔案的副本移動到其它的磁碟,然後恢復

下面將以移動資料檔案sp01.dbf為例

1)確定資料檔案所在的表空間:

select tablespace_name from dba_data_files where file_name='d:\test\sp01.dbf';

2)使表空間離線

確保資料檔案的一致性,將表空間轉變為offline的狀態

alter tablespace sp01 offline;

3)使用命令移動資料檔案到指定的目標位置

sql> host move d:\test\sp01.dbf c:\test\sp01.dbf;

4)執行alter tablespace命令

在物理上移動了資料後,還必須執行alter tablespace命令,

對庫檔案進行邏輯修改

alter tablespace sp01 rename datafile 'd:\sp001.dbf' to 'sp001.dbf'

5)在移動了資料檔案後,為了使使用者可以訪問該錶空間,必須將轉變為online狀態

alter tablespace 表空間名 online;

表空間的狀態:

online,offline,read write, read only

ORACLE 學習筆記3 表空間 080409 轉

表空間 建立表空間 sql create tablespace emp 2 logging 3 datafile oracle oradata dba emp.dbf size 5m extent 4 management local 增加表空間大小 sql alter tablespace emp...

Oracle學習筆記03 建立表空間 建立表

1.現在我們來建立乙個表空間 create tablespace test tablespace datafile d oracle11g oradata test test.dbf size 500m test tablespace 為表空間的名字,可以自己定義。2.表空間建立好了之後需要將使用者...

Oracle學習筆記 三 使用者與表空間

登入sql plus工具,在doc下使用的管理工具。系統使用者包括 sys,system。許可權高的系統使用者,sys必須是管理員或者dba登入。sysman使用者操作企業管理器。scott是普通系統使用者。其中sys,system,sysman是安裝的時候設定的,scott預設密碼是tiger。使...