SQL> select FILE_NAME,TABLESPACE_NAME,BYTES,STATUS,ONLINE_status from dba_data_files where tablespace_name='SCHOOL';
FILE_NAME TABLESPACE_NAME BYTES STATUS ONLINE_
------------------------------------------------------------- ---------- --------- -------
/u01/app/oracle/oradata/orcl/school01.dbf SCHOOL 536870912 AVAILABLE ONLINE
②修改表空间名称
SQL> alter tablespace SCHOOL rename to TEST;
Tablespace altered.
SQL> select FILE_NAME,TABLESPACE_NAME,BYTES,STATUS,ONLINE_status from dba_data_files where tablespace_name='TEST';
FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME BYTES STATUS ONLINE_
------------------------------ ---------- --------- -------
/u01/app/oracle/oradata/orcl/school01.dbf
TEST 536870912 AVAILABLE ONLINE
③修改表空间的数据文件名称 方法一:离线单个数据文件
SQL> alter database datafile '/u01/app/oracle/oradata/orcl/school01.dbf' offline;
Database altered.
[oracle@alluse orcl]$ mv school01.dbf test01.dbf
#缺少这一步会报错:ORA-01141: error renaming data file 5 - new file '/u01/app/oracle/oradata/orcl/l/test01.dbf' not found
SQL> alter tablespace TEST rename datafile '/u01/app/oracle/oradata/orcl/school01.dbf' to '/u01/app/oracle/oradata/orcl/test01.dbf';
Tablespace altered.
SQL> alter database recover datafile '/u01/app/oracle/oradata/orcl/test01.dbf';
#缺少这一步会报错:ORA-01113: file 5 needs media recovery
Database altered.
SQL> alter tablespace TEST online;
#一般是只拉单个文件,此处表空间仅有单个文件,因此使用此命令。
Tablespace altered.
SQL> select FILE_NAME,TABLESPACE_NAME,BYTES,STATUS,ONLINE_status from dba_data_files where tablespace_name='TEST';
FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME BYTES STATUS ONLINE_
------------------------------ ---------- --------- -------
/u01/app/oracle/oradata/orcl/test01.dbf
TEST 536870912 AVAILABLE ONLINE
方法二:离线表空间 注意:此方法将导致该表空间的所有文件暂不可用
alter tablespace <tablespace_name> offline;
$ mv /path/to/旧表空间名.dbf /path/to/新表空间名.dbf
alter tablespace <tablespace_name> rename datafile '/path/to/旧表空间名.dbf' to '/path/to/新表空间名.dbf';
alter tablespace <tablespace_name> online;