改变数据文件尺寸

本节说明改变数据文件尺寸的各种方法。

允许和禁止数据文件的自动扩展

可以创建和修改数据文件,使得它们在数据库需要更多的空间时,能够自动增加大小。文件以指定的增量增加,直到达到指定的最大值。

将数据文件设为自动增长有以下优点:

不需在表空间的空间不够时手工进行干预

确保应用程序不会因为空间分配失败而暂停

要确定一个数据文件是否为可自动扩展,查询系统视图V_SYS_DATAFILE_INFO的NEXT列,若该列值为0表明数据文件不可自动扩展,否则数据文件可以自动扩展。

在创建数据文件时,可以使用以下的SQL语句,通过指定AUTOEXTEND ON子句来指定允许自动扩展:

  • CREATE DATABASE
  • ALTER DATABASE
  • CREATE TABLESPACE
  • ALTER TABLESPACE

示例1: 创建一个允许自动扩展的数据文件

ALTER TABLESPACE ts1 ADD DATAFILE 'ts1.dbf' SIZE AUTOEXTEND ON NEXT MAXSIZE UNLIMITED;

示例2: 修改已有数据文件设置为不可自动扩展

ALTER DATABASE DATAFILE '/home/OSCAR/odbs/fenix/testdbf2.dbf' AUTOEXTEND OFF

可以使用 ALTER DATABASE语句手动增加数据文件尺寸,但是不允许缩减数据文件尺寸。

示例3: 手动改变数据文件尺寸

--  扩展数据文件至 100M
ALTER DATABASE DATAFILE '/home/OSCAR/odbs/fenix/testdbf3.dbf' RESIZE 100M;

--  如果现有数据文件长度已经超过,神通数据库服务器将报错:
ERROR, RESIZE ERROR: /home/OSCAR/odbs/fenix/testdbf3.dbf FILESIZE > 104857600