环境:ora10g
在一次添加数据文件时,错把文件名写成了别的表空间的名称,虽然不改不影响数据库,但是后期维护可能会造成不便。生产环境不方便操作测试,因此在测试机上也试一下。
首先百度了下,网上说有三种处理方式:
1、OFFLINE数据文件 --> 修改操作系统上的文件名 --> 修改数据库中的文件名 --> 对数据文件进行恢复 --> ONLINE数据文件
特别强调:此方式需要归档模式!因为需要对数据文件进行恢复
2、【处理方法2】OFFLINE表空间 --> 修改操作系统上的文件名 --> 修改数据库中的文件名 --> ONLINE表空间
3、【处理方法3】SHUTDOWN数据库 --> 修改操作系统上的文件名 --> 数据库启动到MOUNT --> 修改数据库中的文件名 --> OPEN数据库
这里我测试第一种:
(1)首先把数据文件脱机:
SQL> conn /as sysdba
Connected.
SQL> alter database datafile '/oradata/ora10g/scott02.dbf' offline;
Database altered.
(2)在操作系统上修改数据文件名
[oracle@ora10g ora10g]$ mv scott02.dbf scott2.dbf
(3)在数据库中修改文件名
SQL> alter database rename file '/oradata/ora10g/scott02.dbf' to '/oradata/ora10g/scott2.dbf';
Database altered.
(4)对数据文件进行修复(这里填写修改后的文件名)
SQL> recover datafile '/oradata/ora10g/scott2.dbf'
Media recovery complete.
(5)数据文件联机
SQL> alter database datafile '/oradata/ora10g/scott2.dbf' online;
Database altered.
(6)查看验证
SQL> select tablespace_name,file_name from dba_data_files where tablespace_name = 'SCOTT';
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
SCOTT
/oradata/ora10g/scott01.dbf
SCOTT
/oradata/ora10g/scott2.dbf
已修改成功。
附上网上找的另外两种方式的截图,避免博主删帖,以后用的时候找不到。