Fentaniao
文章19
标签13
分类8
Oracle表空间数据文件重命名和修改路径时报错的解决方案

Oracle表空间数据文件重命名和修改路径时报错的解决方案

在SQL Plus中对Oracle数据库表空间的数据文件进行重命名和修改路径时报错ORA-01511, ORA-01121, ORA-01110的解决办法

问题描述

在对 Oracle 数据库文件进行重命名或修改路径时发生下面的错误

1
2
3
4
5
*
第1行出现错误:
ORA-01525: 重命名数据文件时出错
ORA-01121: 无法重命名数据库文件 10 - 文件在使用中或在恢复中
ORA-01110: 数据文件10: %需要重命名或修改路径的文件的路径%

解决方案

步骤

  • 以SYSTEM用户(只要具有可以修改数据文件的权限即可)登录数据库
  • 将需要修改的表空间设置为离线(需要修改的数据文件属于该表空间)
  • 手动先复制原数据文件到指定目录下,并重命名该文件
  • 最后在SQL Plus中执行相关的修改操作
  • 如需要对数据文件进行额外操作,需要及时将表空间再次设置为在线

样例

实现目标

将原数据文件'Dir1\example01.dbf'(其对应表空间为example)重新命名并放置在新的路径下,成为新的数据文件'Dir2\example02.dbf'

代码

1
2
3
4
5
6
ALTER TABLESPACE example OFFLINE NORMAL;
-- 等待手动建立副本并手动重命名
ALTER TABLESPACE example
RENAME DATAFILE 'Dir1\example01.dbf'
TO 'Dir2\example02.dbf';
ALTER TABLESPACE example ONLINE;

原理

通过改变指针指向的方式(由旧文件改为指向具有新路径的新名字的副本)来避开文件占用的问题。

参考资料

本文作者:Fentaniao
本文链接:https://fentaniao.github.io/2022/03/02/Oracle-Rename-Error/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×