Oracle RMAN還原時(shí)set newname文件名有空格報(bào)錯(cuò)的解決方法
前言
在做數(shù)據(jù)恢復(fù)時(shí),偶爾會(huì)碰到需要對(duì)數(shù)據(jù)文件位置調(diào)整的案例,在這種情況下,可以在RMAN中使用SET NEWNAME命令。
在Oracle 11g之前,RMAN只支持SET NEWNAME FOR DATAFILE,在Oracle 11g中增加了SET NEWNAME FOR TEMPFILE/SET NEWNAME FOR TABLESPACE/SET NEWNAME FOR DATABASE的命令。
優(yōu)先順序如下:
1.SET NEWNAME FOR DATAFILE and SET NEWNAME FOR TEMPFILE
2.SET NEWNAME FOR TABLESPACE
3.SET NEWNAME FOR DATABASE
發(fā)現(xiàn)問題
今天遇到一個(gè)非常奇怪的現(xiàn)象,查看ORACLE數(shù)據(jù)庫的一個(gè)文件,明明這個(gè)文件是存在的,但是使用ls -lrt 查看都顯示這個(gè)文件不存在。很是納悶! 后面發(fā)現(xiàn)在終端輸入文件名后并使用tab鍵時(shí),發(fā)現(xiàn)文件后其實(shí)是有空格(不可見字符)。
如下截圖所示:
[oracle@ehvlnx02 ~]$ ls -lrt /u01/oradata/SCM2/system01.dbf ls: /u01/oradata/SCM2/system01.dbf: No such file or directory [oracle@ehvlnx02 ~]$ cd /u01/oradata/SCM2/ [oracle@ehvlnx02 SCM2]$ ls -lrt total 5238456 -rw-r----- 1 oracle oinstall 48504832 Nov 8 19:24 users01.dbf -rw-r----- 1 oracle oinstall 209715712 Nov 8 19:24 redo06.log -rw-r----- 1 oracle oinstall 209715712 Nov 8 19:24 redo05.log -rw-r----- 1 oracle oinstall 209715712 Nov 8 19:24 redo04.log -rw-r----- 1 oracle oinstall 209715712 Nov 8 19:24 redo02_1.log -rw-r----- 1 oracle oinstall 367009792 Nov 8 19:24 ppc_x01.dbf -rw-r----- 1 oracle oinstall 786440192 Nov 8 20:04 sysaux01.dbf -rw-r----- 1 oracle oinstall 2553290752 Nov 8 20:09 undotbs01.dbf -rw-r----- 1 oracle oinstall 545267712 Nov 8 20:09 system01.dbf -rw-r----- 1 oracle oinstall 209715712 Nov 8 20:14 redo01_1.log -rw-r----- 1 oracle oinstall 9781248 Nov 8 20:17 control01.ctl [oracle@ehvlnx02 SCM2]$ ls system01.dbf\ \ \ \ \ \ \ \ \ \ system01.dbf [oracle@ehvlnx02 SCM2]$ ls system01.dbf* system01.dbf [oracle@ehvlnx02 SCM2]$ clip_image001

解決方法
那么這些數(shù)據(jù)庫數(shù)據(jù)文件名怎么多了一些空格呢? 由于恰好這臺(tái)UAT服務(wù)器,我?guī)仔r(shí)前做過RMAN還原,發(fā)現(xiàn)然來使用set newname for datafile 后面指定路徑和文件名時(shí),雙引號(hào)之間有大量空格(使用UE的列模式編寫的還原命令),第一次遇到這種情況,看來以后使用set newname時(shí),新的文件名要注意不能出現(xiàn)空格。否則就會(huì)出現(xiàn)這個(gè)情況。
run {
sql'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';
set until time '2017-11-08 03:30:00';
set newname for datafile 1 to "/u01/oradata/SCM2/system01.dbf ";
set newname for datafile 2 to "/u01/oradata/SCM2/undotbs01.dbf ";
set newname for datafile 3 to "/u04/oradata/SCM2/undotbs02.dbf ";
set newname for datafile 4 to "/u01/oradata/SCM2/sysaux01.dbf ";
set newname for datafile 5 to "/u01/oradata/SCM2/users01.dbf ";
.............................................................
restore database;
switch datafile all;
recover database;
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Oracle中XML插入數(shù)據(jù)時(shí)的空格問題解決方案
在使用 foreach 或其他循環(huán)結(jié)構(gòu)時(shí),插入數(shù)據(jù)庫的數(shù)據(jù)前后可能會(huì)出現(xiàn)不必要的空格,這種額外的空格可能會(huì)導(dǎo)致數(shù)據(jù)不一致,影響查詢結(jié)果,甚至導(dǎo)致應(yīng)用程序的錯(cuò)誤,本文將為您提供一些常見的解決方法和建議,需要的朋友參考下吧2023-08-08
Linux下安裝Oracle 11g出現(xiàn)prvf-0002錯(cuò)誤解決辦法
這篇文章主要介紹了Linux下安裝Oracle 11g出現(xiàn)prvf-0002錯(cuò)誤解決辦法的相關(guān)資料,需要的朋友可以參考下2016-12-12
Oracle數(shù)據(jù)庫正則表達(dá)式純數(shù)字例子
正則表達(dá)式已經(jīng)在很多軟件中得到廣泛的應(yīng)用,包括*nix(Linux, Unix等),HP等操作系統(tǒng),PHP,C#,Java等開發(fā)環(huán)境,這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫正則表達(dá)式純數(shù)字的相關(guān)資料,需要的朋友可以參考下2024-08-08
Oracle解決ORA-01034:?ORACLE?not?available問題的辦法
這篇文章主要給大家介紹了關(guān)于Oracle解決ORA-01034:?ORACLE?not?available問題的辦法,今天連接oracle出現(xiàn)如下錯(cuò)誤,在網(wǎng)查了相關(guān)資料說出現(xiàn)ora-01034錯(cuò)誤的原因是因?yàn)閿?shù)據(jù)庫的控制文件沒有加在startup mount后,需要的朋友可以參考下2024-02-02
Oracle數(shù)據(jù)庫使用 listagg去重刪除重復(fù)數(shù)據(jù)的方法匯總
文章介紹了在Oracle數(shù)據(jù)庫中使用LISTAGG和XMLAGG函數(shù)進(jìn)行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLOB類型處理大字符串、以及根據(jù)具體需求選擇合適的方法,感興趣的朋友跟隨小編一起看看吧2025-01-01
oracle數(shù)據(jù)庫下統(tǒng)計(jì)專營店的男女?dāng)?shù)量的語句
oracle數(shù)據(jù)庫下統(tǒng)計(jì)專營店的男女?dāng)?shù)量的語句,方便需要的朋友2012-07-07

