在linux下安装了oracle,用了一段时间,空间满了,准备把oracle放在另home目录下,原来表空间地址是/opt/oracle/app/oradata/orcl/RRS.DBF,并且执行select name from v$datafile;确实存在这个数据文件。我先执行alter tablespace rrs offline; 然后将dbf文件复制到home目录下的tableSpace文件夹下(文件夹提前开放了777权限),然后执行alter database rename file '/home/tableSpace/POWER.DBF' to '/opt/oracle/app/oradata/orcl/POWER.DBF';语句,这时候报如下错误:
ORA-01511: error in renaming log/data files
ORA-01516: nonexistent log file, data file, or temporary file
"/opt/oracle/app/oradata/orcl/RRS.DBF"
找不到源数据文件,网上找了大量资料,试过数据库在mount下启动,open下启动等等,都是报这个错误,网上也找不到关于这个问题的答案,请大声指教

解决方案 »

  1.   


    SQL> create tablespace test datafile 'c:\test.dbf' size 1M;表空间已创建。SQL> alter tablespace test offline;表空间已更改。SQL> exit
    从 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options 断
    开C:\Users\wanglj>move c:\test.dbf d:\test.dbf
    移动了         1 个文件。C:\Users\wanglj>sqlplus "/as sysdba"SQL*Plus: Release 11.2.0.4.0 Production on 星期一 12月 18 23:11:20 2017Copyright (c) 1982, 2013, Oracle.  All rights reserved.
    连接到:
    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> alter tablespace test rename datafile 'c:\test.dbf'  to 'd:\test.dbf';表空间已更改。SQL> alter tablespace test online;表空间已更改。SQL> create table test(id int, name varchar(10)) tablespace test;表已创建。SQL> insert into test values(100,'xxx');已创建 1 行。SQL> select * from test;        ID NAME
    ---------- --------------------
           100 xxxSQL>
      

  2.   

    你这是windows下oracle数据文件迁移,这个我也没问题,但是linux下就报以上错误,你的大致流程和我描述的是一样的
      

  3.   

    是否操作系统级的权限问题,检查一下 oracle 用户对新的数据文件所在路径是否有读写权限。
      

  4.   

    alter database rename file '/home/tableSpace/POWER.DBF' to '/opt/oracle/app/oradata/orcl/POWER.DBF';语句反了,你这个意思是从/home下复制到/opt才这么改
      

  5.   


    第一段语句只是测试home下能不能生成dbf文件,和后面没关系
      

  6.   

    在window是系统上执行同样操作就很正常,而linux则一直报重命名错误,源数据文件找不到,目标目录和源目录我都开放了最高权限,不知道有人遇到过如此问题没有
      

  7.   


    第一段语句只是测试home下能不能生成dbf文件,和后面没关系这个语句不会生成dbf文件
      

  8.   

    这个方式我在Windows 上测试都报错,只是我不是用move命令是 用的手动剪切的,没找到为啥
      

  9.   

    我测试了下 把数据启动到mount状态 用 alter database RENAME file '' TO ''
    这种方式是可以的。
     alter tablespace test rename datafile  用这种方式 会报错 说前的文件不存在,估计前面的文件要用copy 不能用move
      

  10.   

    理论上应该是copy,copy和move我2个都测试了,都是不行
      

  11.   

    所有命令都在截图里,报错结果也贴出来了,其实很简单,就几行sql命令,没有其他命令了
      

  12.   

    另外mount下我也试过了,也是不行
      

  13.   

    你可以这样啊,exp,删除表空间和用户,再创建表空间和用户,imp