首页 > 数据库 > Oracle > datafile管理的几个重点内容
Db_files 参数可以动态设置,但需要重新启动实例才生效.
Db_files参数不可以随意设置得很大,因为实例启动时,SGA会根据这个参数开辟内存空间用于存储数据文件信息.
Db_files参数也不可以设置过小,设置过小,将导致无法添加数据文件到数据库中.
Db_files参数需要根据实际情况进行设置。
Db_files参数与maxdatafile参数联系
在create database或者create controlfile命令中可以使用maxdatafile来设置datafile数量的初始化限制。当我们增加datafile时,如果文件的数量大于maxdatafile参数,同时又小于db_files时,增加文件会成功,同时maxdatafile参数会自动扩展。
[@more@]2. 管理datafile的autoextend属性
Select autoextensible,file_id,file_name from dba_data_files; ##查询数据的自动扩展属性。
一般不建议将autoextend 设置为ON,尤其是在UNIX 或者linux环境中。
创建datafile时设置为自动扩展
Alter tablespace users add datafile '/oradata/user03.dbf' size 256m autoextend on next 512k maxsize 512m;
3. 更改autoextend属性
Alter database datafile '/oradata/user03.dbf' autoextend off; ##关闭自动扩展
Alter database datafile '/oradata/user03.dbf' autoextend on; ##打开自动扩展
4. 更改datafile文件大小
Alter database datafile '/oradata/user03.dbf' resize 384m;
扩大datafile的空间,只要os有空间就可以,但如果减少datafile的空间,往往会因为空间中已经存在数据,而导致减少空间失败。
Alter database tempfile '/oradata/temp01.dbf' resize 512m; ##更改temp文件的大小
5. 设置datafile的可用性
设置datafile的可用性的几个原因(应用场景):
A.执行datafile的offline状态下的备份
B.重命名或者重定位datafile,之前需要将datafile设为offline或者将tablespace设置为offline;
C.数据库写入datafile发生错误,导致文件自动转为offline状态.在解决了问题后,可以手工将datafile设置为online状态.
D.一个datafile丢失或者损坏了.为了打开数据库,需要先将出问题的datafile设置为offline.
只读表空间的datafile可以offline和online,但将read-only表空间的datafile设置为online时,不会影响到表空间的状态.在将表空间设置为可读写之前,无法对它的datafile进行读写操作.
如果将一个表空间offline,则它的所有datafile都会被设置为offline.
在归档模式下,设置datafile的状态为online或者offline
Alter dastabase datafile '/oradata/user03.dbf' online;
Or
Alter database datafile '/oradata/user03.dbf' offline;
在非归档模式下,设置datafile的状态为offline
Alter database datafile '/oradata/user03.dbf' offline for drop; ##这里不是完成删除文件的操作,而是标记该文件处于删除状态.
在一个表空间内设置所有的datafile或者tempfile的可用性
Alter tablespace …datafile {online|offline}
Alter tablespace … datafile {online|offline}
上面的命令将修改表空间内的所有datafile(或者tempfile)的状态,但表空间本身的状态不变.
通常alter tablespace在数据库处于mount状态时就可以执行(不需要处于open状态)
但对于SYSTEM,UNDO,TEMP表空间,需要在数据库处于open状态下才可以执行alter tablespace命令.
Alter tablespace …datafile offline与alter tablespace …offline的区别
1.前者只是修改datafile的状态,不修改表空间的状态
2.后者修改表空间的状态和表空间内的datafile状态.
3.后者不可以用于temp表空间和temp表空间内的tempfile.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/32980/viewspace-1053914/ ,如需转载,请注明出处,否则将追究法律责任。