如何对非系统表空间的数据文件进行改名

王朝other·作者佚名  2008-07-02
窄屏简体版  字體: |||超大  

如何在数据库打开时对非系统表空间的数据文件改名,参考下面步骤:

1. 确定数据文件状态

select file_name, status

from dba_data_files

where tablespace_name ='tablespace_name';

2. 将表空间置为read-only(时间可能会很长,比重启数据库的时间还长)

alter tablespace tablespace_name read only;

3. 确定表空间状态为read-only

select tablespace_name, status

from dba_tablespaces

where tablespace_name = 'tablespace_name';

4. 用操作系统命令将数据文件拷贝为新的文件名,确认大小一样

5. 将表空间offline(这时用户就不能访问这个表空间了)

alter tablespace tablespace_name offline;

6. 修改控制文件中的相应记录

alter database rename file

'/full_path_of_old_location/and_datafile_name.dbf'

to

'/full_path_of_new_location/and_datafile_name.dbf';

7. 将表空间online

alter tablespace tablespace_name online;

8. 将表空间置回为read-write

alter tablespace tablespace_name read write;

9. 备份控制文件

alter database backup controlfile to trace;

10. 在操作系统上删除原来的数据文件

说明:

1. 将表空间先置为read-only,是让用户不能访问(read)的时间尽量少点(少的时间为拷贝文件所需的时间)

2. 如果是standby环境,对standby的恢复没有影响,如果要保持一致的话,mount standby后用cp然后alter database rename file ..... 即可。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航