在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下啟動等等,都是報這個錯誤,網上也找不到關于這個問題的答案,請大聲指教

uj5u.com熱心網友回復:
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 2017
Copyright (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 options
SQL> 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 xxx
SQL>
uj5u.com熱心網友回復:
你這是windows下oracle資料檔案遷移,這個我也沒問題,但是linux下就報以上錯誤,你的大致流程和我描述的是一樣的
uj5u.com熱心網友回復:
是否作業系統級的權限問題,檢查一下 oracle 用戶對新的資料檔案所在路徑是否有讀寫權限。uj5u.com熱心網友回復:
這個也考慮到了,賦了777最高權限
uj5u.com熱心網友回復:
alter database rename file '/home/tableSpace/POWER.DBF' to '/opt/oracle/app/oradata/orcl/POWER.DBF';陳述句反了,你這個意思是從/home下復制到/opt才這么改
uj5u.com熱心網友回復:
第一段陳述句只是測驗home下能不能生成dbf檔案,和后面沒關系
uj5u.com熱心網友回復:
在window是系統上執行同樣操作就很正常,而linux則一直報重命名錯誤,源資料檔案找不到,目標目錄和源目錄我都開放了最高權限,不知道有人遇到過如此問題沒有uj5u.com熱心網友回復:
這個陳述句不會生成dbf檔案
uj5u.com熱心網友回復:
另外,樓主最好把你真正執行的命令,和真正的報錯資訊原模原樣的放出來,這么描述,只有無盡的混亂~uj5u.com熱心網友回復:
這個方式我在Windows 上測驗都報錯,只是我不是用move命令是 用的手動剪切的,沒找到為啥uj5u.com熱心網友回復:
我測驗了下 把資料啟動到mount狀態 用 alter database RENAME file '' TO ''這種方式是可以的。
alter tablespace test rename datafile 用這種方式 會報錯 說前的檔案不存在,估計前面的檔案要用copy 不能用move
uj5u.com熱心網友回復:
我測驗了下 把資料啟動到mount狀態 用 alter database RENAME file '' TO ''
這種方式是可以的。
alter tablespace test rename datafile 用這種方式 會報錯 說前的檔案不存在,估計前面的檔案要用copy 不能用move
理論上應該是copy,copy和move我2個都測驗了,都是不行
uj5u.com熱心網友回復:
另外,樓主最好把你真正執行的命令,和真正的報錯資訊原模原樣的放出來,這么描述,只有無盡的混亂~
所有命令都在截圖里,報錯結果也貼出來了,其實很簡單,就幾行sql命令,沒有其他命令了
uj5u.com熱心網友回復:
我測驗了下 把資料啟動到mount狀態 用 alter database RENAME file '' TO ''
這種方式是可以的。
alter tablespace test rename datafile 用這種方式 會報錯 說前的檔案不存在,估計前面的檔案要用copy 不能用move
另外mount下我也試過了,也是不行
uj5u.com熱心網友回復:
你可以這樣啊,exp,洗掉表空間和用戶,再創建表空間和用戶,imp轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/76504.html
標籤:基礎和管理
