Restore datafile to new location on a new host [message #252726] |
Thu, 19 July 2007 15:28 |
TLegend33
Messages: 203 Registered: March 2005
|
Senior Member |
|
|
RHEL4 Oracle10.2
I am practicing recovery to a new server. I've got the control file restored and the target database mounted. One thing I'm testing is recovering a datafile to a different location on the new server. Below are my commands and output:
RMAN> alter database mount;
database mounted
released channel: ORA_DISK_1
RMAN> run {
2> allocate channel dev1 type disk;
3> set newname for datafile 1 to '/d6/oradata/ESDEV/SYSTEM/ES_DEV.dbf';
4> sql "alter database rename file ''/opt/oracle/admin/ESDEV/SYSTEM/ES_DEV.dbf'' to ''/d6/oradata/ESDEV/SYSTEM/ES_DEV.dbf''";
5> release channel dev1;}
allocated channel: dev1
channel dev1: sid=159 devtype=DISK
executing command: SET NEWNAME
sql statement: alter database rename file ''/opt/oracle/admin/ESDEV/SYSTEM/ES_DEV.dbf'' to ''/d6/oradata/ESDEV/SYSTEM/ES_DEV.dbf''
released channel: dev1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of sql command on default channel at 07/19/2007 16:38:55
RMAN-11003: failure during parse/execution of SQL statement: alter database rename file '/opt/oracle/admin/ESDEV/SYSTEM/ES_DEV.dbf' to '/d6/oradata/ESDEV/SYSTEM/ES_DEV.dbf'
ORA-01511: error in renaming log/data files
ORA-01141: error renaming data file 1 - new file '/d6/oradata/ESDEV/SYSTEM/ES_DEV.dbf' not found
ORA-01110: data file 1: '/opt/oracle/admin/ESDEV/SYSTEM/ES_DEV.dbf'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Now, I understand that the errors indicate that the datafiles do not exist in the locations I specified in the name change commands. However, I'm attempting to restore a datafile to a new location on a new host. The only thing I have to work with is my backup piece. Why do I need either datafile to exist if I'm restoring to a new location on a new host?
Thanks.
|
|
|
Re: Restore datafile to new location on a new host [message #252727 is a reply to message #252726] |
Thu, 19 July 2007 15:33 |
DreamzZ
Messages: 1666 Registered: May 2007 Location: Dreamzland
|
Senior Member |
|
|
Quote: | Linux-x86_64 Error: 2: No such file or directory
|
CHECK THE DIRECTORY EXISTINCE.
Check the permission for user.
Quote: | sql "alter database rename file ''/opt/oracle/admin/ESDEV/SYSTEM/ES_DEV.dbf'' to ''/d6/oradata/ESDEV/SYSTEM/ES_DEV.dbf''"
|
Replace it with this and try
SWITCH DATAFILE ALL;
|
|
|
Re: Restore datafile to new location on a new host [message #252733 is a reply to message #252727] |
Thu, 19 July 2007 16:46 |
TLegend33
Messages: 203 Registered: March 2005
|
Senior Member |
|
|
RMAN> run {
allocate channel dev1 device type disk;
set newname for datafile '/opt/oracle/admin/ESDEV/SYSTEM/ES_DEV.dbf' to '/d6/oradata/ESDEV/SYSTEM/ES_DEV.dbf';
set newname for datafile '/opt/oracle/admin/ESDEV/SYSAUX/sysaux01.dbf' to '/d6/oradata/ESDEV/SYSTEM/sysaux01.dbf';
switch datafile all;
release channel dev1;}2> 3> 4> 5> 6>
allocated channel: dev1
channel dev1: sid=157 devtype=DISK
executing command: SET NEWNAME
executing command: SET NEWNAME
released channel: dev1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of switch command at 07/19/2007 19:02:59
RMAN-20230: datafile copy not found in the recovery catalog
RMAN-06015: error while looking up datafile copy name: /d6/oradata/ESDEV/SYSTEM/ES_DEV.dbf
Yes, the directories exist. The user (oracle) has ownership and permissions on the directories. Do I need to include the name of my backup piece somewhere in my syntax? The
RMAN-06015: error while looking up datafile copy name: /d6/oradata/ESDEV/SYSTEM/ES_DEV.dbf
leads me to believe that rman is looking in the wrong place.
|
|
|
Re: Restore datafile to new location on a new host [message #252734 is a reply to message #252733] |
Thu, 19 July 2007 17:04 |
DreamzZ
Messages: 1666 Registered: May 2007 Location: Dreamzland
|
Senior Member |
|
|
Yes you should tell it the restore operation like this
Quote: | RUN
{
SET NEWNAME FOR TEMPFILE 1 TO '/newdisk/dbs/temp1.f';
SET NEWNAME FOR TEMPFILE 2 TO '/newdisk/dbs/temp2.f';
SET NEWNAME FOR TEMPFILE 3 TO NEW; #use OMF for this one
SWITCH TEMPFILE ALL;
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN;
}
|
RUN
{
ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev2 DEVICE TYPE sbt;
SQL "ALTER TABLESPACE tbs_1 OFFLINE IMMEDIATE";
SET NEWNAME FOR DATAFILE '/disk7/oracle/tbs11.f'
TO '/disk9/oracle/tbs11.f';
RESTORE TABLESPACE tbs_1;
SWITCH DATAFILE ALL;
RECOVER TABLESPACE tbs_1;
SQL "ALTER TABLESPACE tbs_1 ONLINE";
}
[Updated on: Thu, 19 July 2007 17:06] Report message to a moderator
|
|
|
|
|
|