某数据库restore之后,尝试set newname但是报错RMAN-06015。我们可以先手工catalog进去,在set newname。
可以看如下的测试案例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
--1.纯粹的set newname是可以的 RMAN> run{ 2> set newname for datafile 6 to '/u01/oracle11gR2/oracle/oradata/ora11g/U_NOLOB2.dbf222'; 3> } executing command: SET NEWNAME RMAN> RMAN> RMAN> RMAN> RMAN> --2. 但是switch之后,就不可以。这是因为在你当前控制文件中,找不到该文件(asm上的文件)的信息 RMAN> run{ 2> set newname for datafile 6 to '/u01/oracle11gR2/oracle/oradata/ora11g/U_NOLOB2.dbf222'; 3> switch datafile 6; 4> } executing command: SET NEWNAME RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of switch command at 11/12/2014 10:36:09 RMAN-20230: datafile copy not found in the repository RMAN-06015: error while looking up datafile copy name: /u01/oracle11gR2/oracle/oradata/ora11g/U_NOLOB2.dbf222 RMAN> RMAN> RMAN> -- 3.将该文件作为datafilecopy,catalog到控制文件中: RMAN> catalog datafilecopy '/u01/oracle11gR2/oracle/oradata/ora11g/U_NOLOB2.dbf222'; cataloged datafile copy datafile copy file name=/u01/oracle11gR2/oracle/oradata/ora11g/U_NOLOB2.dbf222 RECID=1 STAMP=863433432 RMAN> --4. 然后就可以顺利set newname后switch了。 RMAN> run{ 2> set newname for datafile 6 to '/u01/oracle11gR2/oracle/oradata/ora11g/U_NOLOB2.dbf222'; 3> switch datafile 6; 4> } executing command: SET NEWNAME datafile 6 switched to datafile copy input datafile copy RECID=1 STAMP=863433432 file name=/u01/oracle11gR2/oracle/oradata/ora11g/U_NOLOB2.dbf222 RMAN> RMAN> |
一条评论
为什么要用 datafilecopy这个 选项呢?