v表空间和数据文件的作用:
§使用户数据和数据字典(系统表数据)数据相分离。减少字典对象和模式对象在同一个数据文件中的竞争
§使不同应用程序的数据相分离。使用户对数据文件的管理更清晰,各个程序的表空间的操作互不影响,即使单个表空间处于脱机也不影响其他的表空间正常运行
§将回滚段从用户数据中分离出来,防止了单个磁盘的故障造成的数据的不可恢复
v表空间可以分为两大类:
§系统表空间:
•在创建数据库时一同创建的,用于存放数据字典对象,并包含了系统回滚段。
•可以存储用户数据,但oracle建议一般不用于存放用户数据
§非系统表空间:
•永久表空间:
–用于存储用户永久数据
•临时表空间
(temporary tablespace):
–用于存储临时数据,如用户数据进行排序时产生的数据;使用临时表空间在很大程度上提高了用户进行大量数据的排序性能
•还原表空间(undo tablepspace):
–提供对回滚段的自动管理
v管理表空间主要包括以下操作:
§创建表空间
•Create (temporary|undo) tablespace
§更改表空间的存储参数
§更改表空间的状态
•Alter tablespace/manage tablespace
§删除表空间
•drop tablepace/manage tablespace
§查看表空间的信息
v创建表空间
vCREATETABLESPACE "APP"
v
LOGGING
v
DATAFILE
'C:\ORACLE\ORADATA\EXAMPLE\APP1.DBF' SIZE 5M
REUSE
v
AUTOEXTEND
ONNEXT
512K MAXSIZE
10M
v
EXTENT MANAGEMENT LOCAL
v创建本地管理的临时表空间
vCREATE
temporaryTABLESPACE "APPTEMP"
TEMPFILE 'C:\ORACLE\ORADATA\EXAMPLE\APPTEMP.DBF' SIZE 5M
v EXTENT MANAGEMENT
LOCAL
vUniform size 1 M
v创建本地管理的还原表空间
vCREATE
undoTABLESPACE “roolback1"
DATAFILE 'C:\ORACLE\ORADATA\EXAMPLE\roolback1.DBF' SIZE 5M
v更改表空间的状态
§SYSTEM表空间和临时表空间不能被脱机
§包含活动的回滚段的表空间也不能被脱机
§Normal
•清除此表空间的所有数据文件在SGA中分配的空间,该方式为默认方式,且再联机的时候不需要执行介质恢复
§Temporary
•脱机前需要设置检查点,则再联机的时候需要执行介质恢复
§Immediate
•脱机前不需要设置检查点,则再联机的时候需要执行介质恢复
•如果数据库运行在noarchivelog模式下,则不能立即脱机
§For recover
•将数据库中进行point-in-time恢复的表空间设置为脱机
v设置表空间为只读,只读表空间不能写数据,可删除数据
§ALTER TABLESPACE "APP"
READ ONLY
§可将只读表空间写到CD中,然后修改表空间数据文件的位置
v设置表空间为读/写
§ALTER TABLESPACE "APP"
READ WRITE
v删除表空间
§DROP TABLESPACE “APP” INCLUDING CONTENTS AND DATAFILES
§带INCLUDING CONTENTS可删除表空间的对象,不删文件
§带AND DATAFILE删除数据文件
v改变表空间数据文件大小
§ALTER DATABASE DATAFILE
‘d:\oracle\oradata\study\myapp01.dbf’ autoextend on
--自动扩张
Resize 50m --改变大小
§ALTER TABLESPACE
‘MYAPP’
ADD DATAFILE ‘d:\oracle\oradata\study\mypp02.dbf’ size 10m;