一、脱机状态
数据库置于脱机状态实现数据库的维护,主要维护工作包括如下:
1、在数据库出于打开状态时移动数据文件
2、在数据库处于打开状态时恢复一个表空间或者一个数据文件
3、执行对表空间的脱机备份
4、当数据库的一部分不能被访问,其他部分可以正常访问时
注:当一个表空间被置为脱机状态或者重新置为联机状态时,oracle会把这一事件记录在数据字典和控制文件中。同时也会记录在报警文件中。
以下表空间不能被置为脱机:
1、默认临时表空间
2、系统表空间system
3、上面有活动的还原/回滚段的表空间
脱机指令: alter tablespace YGMD1 offline;
联机指令:alter tablespace YGMD1 online;
查看表空间对应的数据文件的sql:
select t.ts#,t.name as tablespace_name,d.file# as fileId,d.name as file_name from v$tablespace t ,v$datafile d where t.ts#=d.ts#
使用了v$tablespace,v$datafile两个数据字典,该数据字典是来自于控制文件中的信息,属于动态的数据字典视图。
其实dba_data_files静态数据字典中保存了表空间和数据文件的对应信息
select tablespace_name,file_name from dba_data_files;
二、只读状态
如果将一个数据库精心设计,把许多不变的数据归类放到一个或几个表空间中,然后将他们置为只读状态,将会使得数据库的维护更加容易且效率更高
alter tablespace name read only;
将表空间置为只读后,表空间暂时处于中间状态,保证在事物结束(commit or rollback)后将表空间置为只读状态。
删除表空间中的对象如:表、索引是可以的,因为删除操作执行的是ddl操作,它只是修改数据字典而不是修改数据文件。
alter tablespace name read write;
将表空间置为正常状态。
注:所有的alter语句都会被记录在报警文件中。
三、存储设置
修改表空间中所设置的存储参数使用如下命令格式:
alter tablespace tablespace_name
minimum extent 正整数k|M
default存储子句
ex:
alter tablespace tablespace_name minimum extent 100K
alter tablespace tablespace_name default storage(initial 100k next 100k maxextents 200)
在alter语句中不能直接修改initial 、next、maxextents参数需要在storage存储子句中修改。具体参考下一篇关于storage子句使用的文章。