语法格式
修改表空间的 SQL 命令格式如下:
ALTER TABLESPACE <表空间名> [ONLINE|OFFLINE|<表空间重命名子句>|<数据文件重命名子句>|<增加数据文件子句>|<修改文件大小子句>|<修改文件自动扩展子句>|<数据页缓冲池子句>];
其中,各子句说明如下:
<表空间重命名子句> ::= RENAME TO <表空间名>
<数据文件重命名子句>::= RENAME DATAFILE <文件路径>{,<文件路径>} TO <文件路径>{,<文件路径>}
<增加数据文件子句> ::= ADD <数据文件子句>
<修改文件大小子句> ::= RESIZE DATAFILE <文件路径> TO <文件大小>
<修改文件自动扩展子句> ::= DATAFILE <文件路径>{,<文件路径>}[<自动扩展子句>]
通过这条命令,可以设置表空间脱机或联机,可以修改表空间的名称,可以修改数据文件的名称,可以增加数据文件,可以修改数据文件大小,还可以修改数据文件的自动扩展特性等。
应用举例
【例 1】给 TS1 表空间增加数据文件 TS103.DBF,大小为 128MB。
SQL>ALTER TABLESPACE ts1 ADD DATAFILE 'C:\dmdbms\data\DAMENG\TS103.DBF' SIZE 128;
【例 2】修改 TS1 表空间数据文件 TS103.DBF 的大小为 256MB。
SQL>ALTER TABLESPACE ts1 RESIZE DATAFILE 'C:\dmdbms\data\DAMENG\TS103.DBF' TO 256;
【例 3】重命名ts1表空间中的数据文件 TS103.DBF 为 TS_103.DBF。
重命名数据文件时必须先将数据文件设置为离线状态,然后才能重命名文件。
(1)设置数据文件离线:
SQL>ALTER TABLESPACE ts1 OFFLINE;
(2)修改数据文件名:
SQL>ALTER TABLESPACE ts1 RENAME DATAFILE 'C:\dmdbms\data\DAMENG\TS103.DBF' TO 'C:\dmdbms\data\DAMENG\TS_103.DBF';
(3)设置数据文件在线:
SQL>ALTER TABLESPACE ts1 ONLINE;
【例 4】修改数据文件 TS102.DBF 为自动增长,每次增长 4MB,最大 1024MB。
SQL>ALTER TABLESPACE ts1 DATAFILE 'C:\dmdbms\data\DAMENG\TS102.DBF' AUTOEXTEND ON NEXT 4 MAXSIZE 1024;
【例 5】将 TS1 表空间重命名为 TS_1。
SQL>ALTER TABLESPACE ts1 RENAME TO ts_1;
【例 6】修改 TS_1 表空间缓冲区类别为 KEEP。
SQL>ALTER TABLESPACE ts_1 CACHE="KEEP";
附加说明
(1)修改表空间的用户必须具有 DBA 权限。
(2)修改表空间数据文件大小时,其大小必须大于自身大小。
(3)如果表空间有未提交事务,表空间不能修改 OFFLINE 状态。
(4)重命名表空间数据文件时,表空间必须处于 OFFLINE 状态,修改成功后再将表空间修改为 ONLINE 状态。