總述:
Oracle表空間是數據庫的邏輯組成部分,在Oracle中創建數據庫的同時就需要創建表空間;
物理上:數據庫數據存放在數據文件中;
邏輯上:數據庫數據存放在表空間中,表空間有一個或多個數據文件組成,數據文件就是存數據庫中的數據
表空間分爲默認表空間,臨時表空間,默認表空間是存放數據庫數據,臨時表空間是用來存放查詢和緩衝區的數據
查看錶空間:
select * from SYS.DBA_TABLESPACES; --查看所有表空間(具有dba權限)
select username,temporary_tablespace from dba_users;--查看臨時表空間
select default_tablespace from user_users;--查看當前用戶的表空間
select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name --查看錶空間分配情況
select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name --表空間空閒情況
select file_name,tablespace_name from dba_data_files order by tablespace_name --查看錶空間數據文件
創建表空間:
說明:建立表空間是使用create tablespace 命令來完成的,需要注意的是,建立表空間是特權用戶或是dba來執行,如果是其他用戶創建表空間,則用戶要有create tablespace的系統權限,爲了方便管理,用戶建議要有自己的表空間。
格式:create tablespace tablespace_name datafile filename size size autoextend on|off next size
maxsize size permanent|temporary EXTENT MANAGEMENT DICTIONARY | LOCAL
註釋:tablespace 指定表空間名,datafile 指定數據文件,size 指定文件大小,autoextend 指定數據文件的擴展方式,ON代表自動擴展,OFF代表非自動擴展,若是自動擴展 next要填寫大小,maxsize指定最大值,permanent,temporary指定表空間類型,permanent爲永久表空間,temporary爲臨時表空間,默認爲永久表空間,extent management 指定表空間管理方式:dictorary爲字典管理方式,local爲本地管理方式,默認管理爲本地。
例子:create tablespace WUXIA datafile 'D:/database/wuxia.dbf' size 500M autoextend on next 500M maxsize 1G extent management local;
create temporary tablespace WUXIATEMP datafile 'D:/database/wuxiatemp.dbf' size 500M autoextend on next 500M maxsize 1G extent management local;
修改表空間:
重命名錶空間:
語法:alter tablespace oldname rename to newname;
注意:SYSTEM,和SYSAUX不能重命名,當表空間處於OFFLINE狀態是也不可以重命名
表空間狀態:
表空間的狀態主要有在線(line)離線(offline)只讀(read only),讀寫(read write)四種,設置表空間的狀態屬性,對錶空間的使用管理:
查看錶空間的狀態:
select tablespace_name ,status from dba_tablespaces;
online:允許訪問表空間的數據
alter tablespace tablespace_name online parameter;
parameters: 可以使用的參數 normal,temporary,immediate, for recover
read only(可以訪問,不可修改和刪除) read write(查詢,修改操作)
alter tablespace tablespace_name read only | read write (online狀態下可修改)
修改表空間大小:
兩種方式(修改表空間數據文件大小,新增數據文件)
alter database datafile 'D:\database\WUXIA.dba' resize 1G;
alter tablespace WUXIA add datafile 'D:\database\WUXIA2.dba' resize 1G;
刪除表空間:
drop tablespace tablespace_name (刪除空的表空間,但是不包含物理文件)
drop tablespace tablespace_name including contents;(刪除非空表空間,但是不包含物理文件)
drop tablespace tablespace_name including datafiles;(刪除空表空間,包含物理文件)
drop tablespace tablespace_name including contents and datafiles;(刪除非空表空間,包含物理文件)