技术开发 频道

只有rman的备份文件恢复过程

IT168 技术文章

1.通过rman备份文件恢复spfile
2.通过rman备份文件恢复controlfile
3.通过rman备份文件恢复datafile
4.利用恢复回来的controlfile和datafile生成redolog
5.测试交易是否存在,并全备

我系统环境所有的文件如下:

[oracle@foway dbs]$ pwd
/opt/oracle/10g/dbs
[oracle@foway dbs]$ ls
initdw.ora
init.ora
[oracle@foway dbs]$ls /opt/oracle/oradata
已没有任何资料
[oracle@foway dbs]$ls /opt/oracle/admin
已没有任何资料
[oracle@foway dbs] ls /opt/oracle/flash_recovery_area/
ORCL
[oracle@foway dbs]ls /opt/oracle/flash_recovery_area/ORCL/backupset/
2008_07_18
[oracle@foway dbs]ls /opt/oracle/flash_recovery_area/ORCL/backupset/2008_07_18/
o1_mf_ncsnf_TAG20080718T203240_482fls2h_.bkp
o1_mf_nnndf_TAG20080718T203240_482fkb0k_.bkp

在我这台电脑上, ,系统中所有的ORCL相关的数据文件,参数文件,日志文件,控制文件全部不在了, 没有其他可用的备份文件了,只有rman备份的文件在,这可怎么办呢?

没办法只能恢复了,可怎么恢复呢?

要恢复数据文件用rman备份? 能吗? 当然不能了,因为restore必须在mount or open状态下.
参数文件,控制文件都没有怎么mount?

要mount必须有参数文件,控制文件,为此我们必须解决这2个难题了.
在解决难题前先准备ORCL的必须的目录:

[oracle@foway dbs]mkdir /opt/oracle/oradata/orcl
[oracle@foway dbs]mkdir /opt/oracle/admin/orcl/adump –p
[oracle@foway dbs]mkdir /opt/oracle/admin/orcl/cdump
[oracle@foway dbs]mkdir /opt/oracle/admin/orcl/bdump
[oracle@foway dbs]mkdir /opt/oracle/admin/orcl/udump
[oracle@foway dbs]mkdir /opt/oracle/admin/orcl/dpdump
[oracle@foway dbs]mkdir /opt/oracle/admin/orcl/pfile


难题1:spfile

有人说没参数文件我新建立一个pfile,当然这个办法是可行的,不过在10g中rman备份是自动备份了spfile的,所以我们可以利用rman来恢复spfile了.

[oracle@foway dbs]rman target / nocatalog
Recovery Manager: Release 10.2.0.4.0 - Production on Fri Jul 18 21:21:47 2008

Copyright (c) 1982, 2005, Oracle.
All rights reserved.

connected to target database (not started)

RMAN> list backup;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of list command at 07/18/2008 21:24:37
RMAN-06403: could not obtain a fully authorized session
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directorylist copy;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of list command at 07/18/2008 21:24:51
RMAN-06403: could not obtain a fully authorized session
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory

看到上面的是正常的,因为数据库没有启动呢.
于是我们先启动数据库到nomout下
RMAN>startup nomount

startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle/10g/dbs/initorcl.ora'

starting Oracle instance without parameter file for retrival of spfile
Oracle instance started

Total System Global Area
159383552 bytes

Fixed Size
1218268 bytes
Variable Size
54528292 bytes
Database Buffers
100663296 bytes
Redo Buffers

2973696 bytes

RMAN>list backup;
RMAN>list copy;

将与上次执行看到的一样,此时也是正常的,不必担心,下面就是利用rman备份文件来解决难题1了.

RMAN> restore spfile
from '/opt/oracle/flash_recovery_area/ORCL/backupset/2008_07_18/o1_mf_ncsnf_TAG20080718T203240_482fls2h_.bkp';
Starting restore at 18-JUL-08
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=36 devtype=DISK

channel ORA_DISK_1: autobackup found: /opt/oracle/flash_recovery_area/ORCL/backupset/2008_07_18/o1_mf_ncsnf_TAG20080718T203240_482fls2h_.bkp
channel ORA_DISK_1: SPFILE restore from autobackup complete
Finished restore at 18-JUL-08

下面是来验证spfileorcl.ora文件是否已存在:

[oracle@foway dbs]$ pwd
/opt/oracle/10g/dbs
[oracle@foway dbs]$ ls
initdw.ora
init.ora
spfileorcl.ora

恭喜你:spfile已恢复了
有了参数文件,就需要解决控制文件恢复了
 

0
相关文章