oracle 在线rename数据文件
今天给表空间加数据文件的时候,马虎大意多加了一个空格,为了避免之后备份等问题。现在准备在
线rename数据文件。先在测试库上进行试验
SQL> create tablespace test datafile '/home/oracle/tst.dbf ' size 1m;
Tablespace created.
确认是否为归档模式
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /archive/archive1
Oldest online log sequence 109
Next log sequence to archive 111
Current log sequence 111
如果不是归档模式,需要将数据库启到mount 状态,将数据库更改成归档模式
SQL>alter database archivelog;
此时可能碰到 ora-00265错误!解决办法是将数据库已限制模式启动,再重启到mount状态
SQL>startup restrict;
当数据库处于归档模式的时候,便可进行在线rename 操作:
1查询datafile 的文件号
SQL> select file_id,file_name from dba_data_files where tablespace_name='TEST';
FILE_ID FILE_NAME
---------- --------------------------------------------------
13 /home/oracle/tst.dbf
2.将数据文件offline
SQL> alter database datafile 13 offline;
Database altered
3.操作系统中将文件名称修改:
SQL>host mv '/home/oracle/tst.dbf ' /home/oracle/tst.dbf
4rename数据文件
SQL> alter database rename file '/home/oracle/tst.dbf ' to '/home/oracle/tst.dbf';
Database altered.
5.恢复数据文件并online
SQL> recover datafile 13;
Media recovery complete.
SQL> alter database datafile 13 online;
Database altered
6、查询数据文件状态
SQL> select file_id,file_name,status from dba_data_files where tablespace_name='TEST';
FILE_ID FILE_NAME STATUS
---------- -------------------------------------------------- ------------------
13 /home/oracle/tst.dbf AVAILABLE