-
RMAN8i Disaster Recovery
Hello Gurus,
As I explained in my first post, my company has just bought Oracle8i Server Entreprise Edition v8.1.7 release 3.
Our OS is windows 2000 Server Advanced Edition.
And I have bee assign the task to be the inhouse DBA.
I am a complete newbie but I have been learning much for the last couple of months.
I am actually putting in place our backu/recovery strategy.
I tried to simulate a complete lost of the database (datafile+cf+redo). The DB is in archivelog
When I try to recover I have the following errors.
My backup scripts are :
replace script alloc_disk
{
allocate channel d1 type disk;
}
replace script rel_disk
{
release channel d1;
}
replace script FullDisk
{
backup
full
filesperset 10
tag FullHotDisk_DB
format 'D:\backup\%d_%s_%t.df'
database include current controlfile
;
sql 'alter system archive log current';
backup
filesperset 25
format 'D:\backup\%d_%s_%t.arch'
archivelog all
delete input
;
}
replace script FullDisk
{
resync catalog;
execute script alloc_disk;
execute script FullDisk;
execute script rel_disk;
resync catalog;
}
BACKUP WORKS FINE[B]
1/
This error occurs when I try the script below
19> catalog archivelog all;
RMAN-00571: ===================================================
RMAN-00569: ============= ERROR MESSAGE STACK FOLLOWS =========
RMAN-00571: ===================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01005: syntax error: found "all": expecting one of: "double-quoted-string, single-quoted-string"
RMAN-01007: at line 19 column 21 file: RecoverAllDisk.rman
run {
execute script alloc_disk;
restore controlfile;
alter database mount;
restore database;
catalog archivelog all;
recover database;
alter database open resetlogs;
execute script rel_disk;
}
2/
RMAN-08024: channel d1: restore complete
RMAN-08515: archivelog filename=E:\ORACLE\ORADATA\CRASH\ARCHIVE\CRASHT001S00027.ARC thread=1 sequence=27
RMAN-08060: unable to find archivelog
RMAN-08510: archivelog thread=1 sequence=28
RMAN-03026: error recovery releasing channel resources
RMAN-08031: released channel: d1
RMAN-00571: ========================================================
RMAN-00569: ============ ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ========================================================
RMAN-03002: failure during compilation of command
RMAN-03013: command type: recover
RMAN-03006: non-retryable error occurred during execution of command: recover(4)
RMAN-07004: unhandled exception during command execution on channel default
RMAN-20000: abnormal termination of job step
RMAN-06054: media recovery requesting unknown log: thread 1 scn 119727
run {
execute script alloc_disk;
restore controlfile;
alter database mount;
restore database;
catalog archivelog all;
recover database;
alter database open resetlogs;
execute script rel_disk;
}
Thanks in advance for your support
Jean-Luc :confused:
-
vitapole:
replace script FullDisk
{
resync catalog;
execute script alloc_disk;
execute script FullDisk;
execute script rel_disk;
resync catalog;
}
Brahmaiah:
1.I don't understand why you are trying to replace same script, the one you are using inside: FullDisk
2. catalog archivelog all;
The synatax is wrong here. Instead of all, you have to give specific file name. But what is the need for this in the first place. If the archive log files are there in the destination as per the init$SID file, they are automatically taken care by rman. Only if you have copied archived files manually to a non standard destination, then you have to use this.
Good luck !!
-
First error is due to wrong syntax and second error is because RMAN couldn't find the logfile required for recovery.
-
You are probably not using recovery catalog.
You should backup controlfile after datafile and archivelogs, so it includes information of backed up datafiles and archivelogs.
-
One thing perhaps worth mentioning here is that if you are not using a recovery catalog in 8i you can probably expect some minor problems during disaster recovery. From the 8.1.7 documentation:
==================================================================
WARNING:
The only way to restore and recover when you have lost all control files and do not use a recovery catalog is to call Oracle Support Services. Support will need to know the following:
Current schema of the database
Which files were backed up
What time the files were backed up
Names of the backup pieces containing the files
==================================================================
This caveat seems to have been removed from the docs for 9i Release 1 onwards. I can confirm that I've successfully performed disaster recovery without a catalog in 9i onwards on a few occaisions (albeit in a test environment).
If you're not using a catalog and don't want to then perhaps to could persuade your boss to upgrade to 9i (it's free providing you pay for yearly product update restrictions).
HTH
Austin
-
Oh, and rember to set controlfile_record_keep_time to a big enough value in init.ora (or spfile in 9i) to prevent stuff being overwritten in the controlfile. I don't think they stress this enough in the docs. Click here for details
-
Hi all
1/ I am using RMAN8i with a Oracle8i catalog to backup Oracle8i Databases.
2/ I have controlfile_record_keep_time set to 90
3/ My archive logs files are there in their default destination as per the init$SID file (since DB creation).
4/ From my readings in Oracle Doc and Metalink Notes, I know that I have while doing that to catalog archivelogs and it works when I perform it manually.
5/ The process is good. The problem comes while restoring a backup controlfile from the archivelog files on the disk.
catalog archivelogs all;
The synatax is wrong here. Instead of "all", I have to give specific file name even if if the archive log files are there in the destination as per the init$SID file.
But I am looking for a way to avoid this manual operation (subject to syntax error under pressure).
I want my archive log files in the default init.ora wich are not catalogued to be catalogued automatiquely.
Any workaround ?
I have red somewhere something like catalog archivelog until cancel;
will this work ???
Thanks
-
I still think that your problem is that your backed up controlfile does not include information of last archived log that you need for recovery.
After all, you generated it only after controlfile backup with > sql 'alter system archive log current';
Or if you are using recovery catalog, try without restoring controlfile.
-
Hi all
Thanks for your help.
I have finally found out the answer.
THERE IS NO WORKAROUND, I HAVE TO PERFORM MANUAL TASKS !!!
For futher informations, check Metalink Note:155656.1
Subject: Redo Log File Management and Issues when using RMAN to do Automatic
http://metalink.oracle.com/metalink/...&p_id=155656.1
I am in the situation descibed in Case 1.
Thanks again
Jean-Luc