1. 创建数据文件
- 向 ORCL 数据库的 USERS 表空间中添加一个大小为 10M 的数据文件
SQL> ALTER TABLESPACE USERS ADD DATAFILE 'D:\APP\ORACLE\ORADATA\ORCL\USERS02.DBF' SIZE 10M;
- 向 ORCL 数据库的 TEMP 表空间中添加一个大小为 5M 的数据文件
SQL> ALTER TABLESPACE TEMP ADD DATAFILE 'D:\APP\ORACLE\ORADATA\ORCL\TEMP02.DBF' SIZE 5M;
2. 修改数据文件的大小
- 为 ORCL 数据库的 USERS 表空间添加一个自动增长的数据文件
SQL> ALTER TABLESPACE USERS ADD DATAFILE 'D:\APP\ORACLE\ORADATA\ORCL\USERS03.DBF' SIZE 10M AUTOEXTEND ON NEXT 512K MAXSIZE 50M;
- 修改 ORCL 数据库 USERS 表空间的数据文件 USERS02.DBF 为自动增长方式
SQL> ALTER DATABASE DATAFILE 'D:\APP\ORACLE\ORADATA\ORCL\USERS02.DBF' AUTOEXTEND ON NEXT 512K MAXSIZE UNLIMITED;
- 取消 ORCL 数据库 USERS 表空间的数据文件 USERS02.DBF 的自动增长方式
SQL> ALTER DATABASE DATAFILE 'D:\APP\ORACLE\ORADATA\ORCL\USERS02.DBF' AUTOEXTEND OFF;
- 将 ORCL 数据库 USERS 表空间的数据文件 user02.DBF 大小设置为 8MB
SQL> ALTER DATABASE DATAFILE 'D:\APP\ORACLE\ORADATA\ORCL\USERS02.DBF' RESIZE 8M;
3. 改变数据文件的可用性
- 在数据库归档模式下,将 ORCL 数据库 USERS 表空间的数据库文件 USERS02.DBF 脱机
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP MOUNT
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE DATAFILE 'D:\APP\ORACLE\ORADATA\ORCL\USERS02.DBF' OFFLINE;
- 将 ORCL 数据库 USERS 表空间的数据文件 USERS02.DBF 联机
SQL> ALTER DATABASE DATAFILE 'D:\APP\ORACLE\ORADATA\ORCL\USERS02.DBF' ONLINE;
在归档模式下,将数据文件联机之前需要进行恢复操作。可以使用 RECOVER DATAFILE 语句进行
SQL> RECOVER DATAFILE 'D:\APP\ORACLE\ORADATA\ORCL\USERS02.DBF';
- 在归档模式下,将 USERS 表空间中所有的数据文件脱机,但 USERS 表空间不脱机,然后再将 USERS 表空间中所有的数据文件联机
SQL> ALTER TABLESPACE USERS DATAFILE OFFLINE;
SQL> RECOVER TABLESPACE USERS;
SQL> ALTER TABLESPACE USERS DATAFILE ONLINE;
4. 改变数据文件的名称或位置
改变同一表空间的数据文件名称和位置
- 更改 ORCL 数据库 USERS 表空间的 USERS02.DBF 和 USERS03.DBF 文件名为 USERS002.DBF 和 USERS003.DBF
SQL> ALTER TABLESPACE USERS OFFLINE;
SQL> ALTER TABLESPACE USERS RENAME DATAFILE
'D:\APP\ORACLE\ORADATA\ORCL\USERS02.DBF',
'D:\APP\ORACLE\ORADATA\ORCL\USERS03.DBF' TO
'D:\APP\ORACLE\ORADATA\ORCL\USERS002.DBF',
'D:\APP\ORACLE\ORADATA\ORCL\USERS003.DBF';
SQL> ALTER TABLESPACE USERS ONLINE;
改变属于多个表空间的数据文件
- 更改属于 ORCL 数据库 USERS 表空间的 USERS002.DBF 的文件位置和修改 TOOLS 表空间中的 TOOLS01.DBF 文件名
-- 关闭数据库
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP MOUNT
SQL> ALTER DATABASE RENAME FILE
'D:\APP\ORACLE\ORADATA\ORCL\USERS002.DBF',
'D:\APP\ORACLE\ORADATA\ORCL\tools01.DBF' TO
'D:\APP\ORACLE\ORADATA\ORCL\USERS02.DBF',
'D:\APP\ORACLE\ORADATA\ORCL\tools01.DBF';
-- 开启数据库
SQL> ALTER DATABASE OPEN
5. 删除数据文件
- 删除 USERS 表空间中的数据文件 USERS03.DBF 和删除 TEMP 临时表空间中的临时数据文件 TEMP03.DBF
-- 删除 USERS 表空间中的数据文件 USERS03.DBF
SQL> ALTER TABLESPACE USERS DROP DATAFILE 'D:\APP\ORACLE\ORADATA\ORCL\USERS03.DBF';
-- 删除 TEMP 临时表空间中的临时数据文件 TEMP03.DBF
SQL> ALTER TABLESPACE TEMP DROP TEMPFILE 'D:\APP\ORACLE\ORADATA\ORCL\TEMP03.DBF';
- 查询数据文件信息
DBA_DATA_FILES 包含数据库中所有数据文件的信息
DBA_TEMP_FILES 包含数据库中所有临时数据文件的信息
V$DATAFILE 包含从控制文件中获取的数据文件信息
V$TEMPFILE 包含所有临时文件的基本信息