ITPub博客

首页 > 数据库 > Oracle > datafile管理的几个重点内容

datafile管理的几个重点内容

原创 Oracle 作者:djb1008 时间:2011-08-16 10:28:58 0 删除 编辑
1. DB_FILES 参数设置

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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-07-27

  • 博文量
    175
  • 访问量
    778862