表空間和資料檔案:
表空間:表空間是資料庫的邏輯組成部門,從物理上講,資料庫資料存放在資料檔案中,
從邏輯上講,資料庫則是存放在表空間中,表空間由乙個或是多個資料檔案組成
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。使...