RMAN备份与恢复之参数文件与控制文件

0   说明

  本例是基于备份数据库全库的基础上,还原参数据文件(spfile),控制文件。

1   准备

[[email protected] /]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.3.0 Production on Mon Oct 12 11:58:35 2015

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

SQL> conn sys/Sina.2015@study as sysdba
Connected.
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /data2/orcl/recover_log/archive_log
Oldest online log sequence     22
Next log sequence to archive   24
Current log sequence           24

1.1检查数据库归档状态

[[email protected] ~]$ rman target sys/Sina.2015@study

1.2RMAN登陆目标

2 备份数据库

  通常默认在/u01/app/oracle/fast_recovery_area/ORCL/ ,若需要特定指定备份数据存储位置时,可以创建备份数据库存储的目录。

[[email protected] /]$ mkdir /data2/backup

2.1创建备份数据存储目录

RMAN>  backup as compressed backupset database plus archivelog;

Starting backup at 12-OCT-15
current log archived
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=12 RECID=1 STAMP=892728339
input archived log thread=1 sequence=13 RECID=2 STAMP=892736557
input archived log thread=1 sequence=14 RECID=3 STAMP=892753270
input archived log thread=1 sequence=15 RECID=4 STAMP=892768262
channel ORA_DISK_1: starting piece 1 at 12-OCT-15
channel ORA_DISK_2: starting compressed archived log backup set
channel ORA_DISK_2: specifying archived log(s) in backup set
input archived log thread=1 sequence=16 RECID=5 STAMP=892791995
input archived log thread=1 sequence=17 RECID=6 STAMP=892803633
input archived log thread=1 sequence=18 RECID=7 STAMP=892815402
input archived log thread=1 sequence=19 RECID=8 STAMP=892828012
input archived log thread=1 sequence=20 RECID=9 STAMP=892843267
channel ORA_DISK_2: starting piece 1 at 12-OCT-15
channel ORA_DISK_3: starting compressed archived log backup set
channel ORA_DISK_3: specifying archived log(s) in backup set
input archived log thread=1 sequence=21 RECID=10 STAMP=892857631
input archived log thread=1 sequence=22 RECID=11 STAMP=892882839
input archived log thread=1 sequence=23 RECID=12 STAMP=892891106
input archived log thread=1 sequence=24 RECID=13 STAMP=892900945
input archived log thread=1 sequence=25 RECID=14 STAMP=892901057
input archived log thread=1 sequence=26 RECID=15 STAMP=892901228
input archived log thread=1 sequence=27 RECID=16 STAMP=892901372
input archived log thread=1 sequence=28 RECID=17 STAMP=892901532
channel ORA_DISK_3: starting piece 1 at 12-OCT-15
channel ORA_DISK_3: finished piece 1 at 12-OCT-15
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_12/o1_mf_annnn_TAG20151012T145139_c1pp3xr2_.bkp tag=TAG20151012T145139 comment=NONE
channel ORA_DISK_3: backup set complete, elapsed time: 00:00:15
channel ORA_DISK_3: starting compressed archived log backup set
channel ORA_DISK_3: specifying archived log(s) in backup set
input archived log thread=1 sequence=29 RECID=18 STAMP=892901677
input archived log thread=1 sequence=30 RECID=19 STAMP=892909146
input archived log thread=1 sequence=31 RECID=20 STAMP=892909170
input archived log thread=1 sequence=32 RECID=21 STAMP=892909211
input archived log thread=1 sequence=33 RECID=22 STAMP=892911098
channel ORA_DISK_3: starting piece 1 at 12-OCT-15
channel ORA_DISK_1: finished piece 1 at 12-OCT-15
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_12/o1_mf_annnn_TAG20151012T145139_c1pp3wp6_.bkp tag=TAG20151012T145139 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:20
channel ORA_DISK_2: finished piece 1 at 12-OCT-15
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_12/o1_mf_annnn_TAG20151012T145139_c1pp3ww1_.bkp tag=TAG20151012T145139 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:22
channel ORA_DISK_3: finished piece 1 at 12-OCT-15
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_12/o1_mf_annnn_TAG20151012T145139_c1pp4hhj_.bkp tag=TAG20151012T145139 comment=NONE
channel ORA_DISK_3: backup set complete, elapsed time: 00:00:06
Finished backup at 12-OCT-15

Starting backup at 12-OCT-15
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/data2/orcl/system01.dbf
input datafile file number=00003 name=/data2/orcl/undotbs01.dbf
channel ORA_DISK_1: starting piece 1 at 12-OCT-15
channel ORA_DISK_2: starting compressed full datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
input datafile file number=00002 name=/data2/orcl/sysaux01.dbf
input datafile file number=00004 name=/data2/orcl/users01.dbf
channel ORA_DISK_2: starting piece 1 at 12-OCT-15
channel ORA_DISK_2: finished piece 1 at 12-OCT-15
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_12/o1_mf_nnndf_TAG20151012T145203_c1pp4phv_.bkp tag=TAG20151012T145203 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:55
channel ORA_DISK_1: finished piece 1 at 12-OCT-15
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_12/o1_mf_nnndf_TAG20151012T145203_c1pp4o7j_.bkp tag=TAG20151012T145203 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:16
Finished backup at 12-OCT-15

Starting backup at 12-OCT-15
current log archived
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=34 RECID=23 STAMP=892911204
channel ORA_DISK_1: starting piece 1 at 12-OCT-15
channel ORA_DISK_1: finished piece 1 at 12-OCT-15
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_12/o1_mf_annnn_TAG20151012T145325_c1pp76vh_.bkp tag=TAG20151012T145325 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07
Finished backup at 12-OCT-15

Starting Control File and SPFILE Autobackup at 12-OCT-15
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/autobackup/2015_10_12/o1_mf_s_892911216_c1pp7o9p_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 12-OCT-15

2.2RMAN备份全库

模拟数据库崩溃,删除控制文件,此时数据库还在继续运行,可能要过一会切换日志崩溃。这里我直接重启一下数据库

[[email protected] orcl]$ cd /data2/orcl
[[email protected] orcl]$ ll
总用量 1666384
-rw-r----- 1 oracle oinstall   9748480 10月 12 15:15 control01.ctl
drwxr-xr-x 3 oracle oinstall      4096 10月 10 10:48 recover_log
-rw-r----- 1 oracle oinstall  52429312 10月 12 14:53 redo01.log
-rw-r----- 1 oracle oinstall  52429312 10月 12 15:08 redo02.log
-rw-r----- 1 oracle oinstall  52429312 10月 12 15:15 redo03.log
-rw-r----- 1 oracle oinstall 681582592 10月 12 15:14 sysaux01.dbf
-rw-r----- 1 oracle oinstall 754982912 10月 12 15:14 system01.dbf
-rw-r----- 1 oracle oinstall  30416896 10月 12 14:33 temp01.dbf
-rw-r----- 1 oracle oinstall  94380032 10月 12 15:15 undotbs01.dbf
-rw-r----- 1 oracle oinstall   5251072 10月 12 15:13 users01.dbf
[[email protected] orcl]$ mv control01.ctl control01.ctl.bak
[[email protected] orcl]$ ll
总用量 1666384
-rw-r----- 1 oracle oinstall   9748480 10月 12 15:15 control01.ctl.bak
drwxr-xr-x 3 oracle oinstall      4096 10月 10 10:48 recover_log
-rw-r----- 1 oracle oinstall  52429312 10月 12 14:53 redo01.log
-rw-r----- 1 oracle oinstall  52429312 10月 12 15:08 redo02.log
-rw-r----- 1 oracle oinstall  52429312 10月 12 15:15 redo03.log
-rw-r----- 1 oracle oinstall 681582592 10月 12 15:15 sysaux01.dbf
-rw-r----- 1 oracle oinstall 754982912 10月 12 15:14 system01.dbf
-rw-r----- 1 oracle oinstall  30416896 10月 12 14:33 temp01.dbf
-rw-r----- 1 oracle oinstall  94380032 10月 12 15:15 undotbs01.dbf
-rw-r----- 1 oracle oinstall   5251072 10月 12 15:13 users01.dbf
SQL> startup force
ORACLE instance started.

Total System Global Area 1937457152 bytes
Fixed Size                  2229584 bytes
Variable Size            1241516720 bytes
Database Buffers          687865856 bytes
Redo Buffers                5844992 bytes
ORA-00205: error in identifying control file, check alert log for more info

2.3试验(模拟删除控制文件)

3   还原与恢复

$ORACLE_SID查看原来的SID。这里是假设原来$ORACLE_SID没设置的情况下:
[[email protected] ~]$ export ORACLE_SID=test
[[email protected] ~]$ echo $ORACLE_SID
test
[[email protected] ~]$ rman target /

Recovery Manager: Release 11.2.0.3.0 - Production on Mon Oct 12 15:45:22 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database (not started)

RMAN> startup nomount

startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file ‘/u01/app/oracle/product/11.2.0/db_1/dbs/inittest.ora‘

starting Oracle instance without parameter file for retrieval of spfile

Oracle instance started
Total System Global Area     158662656 bytes
Fixed Size                     2226456 bytes
Variable Size                130025192 bytes
Database Buffers              20971520 bytes
Redo Buffers                   5439488 bytes

此时查看下[[email protected] orcl]$ cd /u01/app/oracle/product/11.2.0/db_1/dbs/ 中产生的文件:
[[email protected] dbs]$ ll
总用量 9540
-rw-rw---- 1 oracle oinstall    1544 10月 12 15:18 hc_orcl.dat
-rw-r--r-- 1 oracle oinstall    2851 5月  15 2009 init.ora
-rw-r----- 1 oracle oinstall       0 10月 12 15:45 lkinsttest
-rw-r----- 1 oracle oinstall      24 10月  9 11:53 lkORCL
-rw-r----- 1 oracle oinstall    1536 10月  9 12:02 orapworcl
-rw-r----- 1 oracle oinstall 9748480 10月 12 14:53 snapcf_orcl.f
-rw-r----- 1 oracle oinstall    2560 10月 12 09:18 spfileorcl.ora

3.1假定没有设置Oracle_SID,设置Oracle_SID启动一个伪实例

从数据库备份集中还原spfile

RMAN> restore spfile from ‘/u01/app/oracle/fast_recovery_area/ORCL/autobackup/2015_10_12/o1_mf_s_892911216_c1pp7o9p_.bkp‘; 

Starting restore at 12-OCT-15
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=429 device type=DISK

channel ORA_DISK_1: restoring spfile from AUTOBACKUP /u01/app/oracle/fast_recovery_area/ORCL/autobackup/2015_10_12/o1_mf_s_892911216_c1pp7o9p_.bkp
channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at 12-OCT-15

此时参数文件恢复完成,此时,在DBS目录下有一个以当前oracle_sid.ora为后缀的参数文件:
[[email protected] dbs]$ ll
总用量 9548
-rw-rw---- 1 oracle oinstall    1544 10月 12 15:18 hc_orcl.dat
-rw-rw---- 1 oracle oinstall    1544 10月 12 15:47 hc_test.dat
-rw-r--r-- 1 oracle oinstall    2851 5月  15 2009 init.ora
-rw-r----- 1 oracle oinstall      24 10月  9 11:53 lkORCL
-rw-r----- 1 oracle oinstall    1536 10月  9 12:02 orapworcl
-rw-r----- 1 oracle oinstall 9748480 10月 12 14:53 snapcf_orcl.f
-rw-r----- 1 oracle oinstall    2560 10月 12 09:18 spfileorcl.ora
-rw-r----- 1 oracle oinstall    2560 10月 12 15:47 spfiletest.ora

3.2还原spfile

从数据库备份集中还原控制文件

停掉伪实例,还原原来的参数文件名,原来是ORACLE_SID=orcl
RMAN> shutdown immediate
Oracle instance shut down
[[email protected] dbs]$ mv spfiletest.ora spfileorcl.ora
[[email protected] dbs]$ ll
总用量 9544
-rw-rw---- 1 oracle oinstall    1544 10月 12 15:18 hc_orcl.dat
-rw-rw---- 1 oracle oinstall    1544 10月 12 16:08 hc_test.dat
-rw-r--r-- 1 oracle oinstall    2851 5月  15 2009 init.ora
-rw-r----- 1 oracle oinstall      24 10月  9 11:53 lkORCL
-rw-r----- 1 oracle oinstall    1536 10月  9 12:02 orapworcl
-rw-r----- 1 oracle oinstall 9748480 10月 12 14:53 snapcf_orcl.f
-rw-r----- 1 oracle oinstall    2560 10月 12 15:47 spfileorcl.ora

还原控制文件:
[[email protected] ~]$ export ORACLE_SID=orcl
[[email protected] ~]$ rman target /

Recovery Manager: Release 11.2.0.3.0 - Production on Mon Oct 12 16:16:03 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database (not started)

RMAN> startup nomount

Oracle instance started

Total System Global Area    1937457152 bytes

Fixed Size                     2229584 bytes
Variable Size               1241516720 bytes
Database Buffers             687865856 bytes
Redo Buffers                   5844992 bytes
RMAN> restore controlfile from ‘/u01/app/oracle/fast_recovery_area/ORCL/autobackup/2015_10_12/o1_mf_s_892911216_c1pp7o9p_.bkp‘; 

Starting restore at 12-OCT-15
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=63 device type=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
output file name=/data2/orcl/control01.ctl
output file name=/u01/app/oracle/fast_recovery_area/orcl/control02.ctl
Finished restore at 12-OCT-15

3.3还原控制文件

RMAN> alter database mount;

database mounted

RMAN> alter database open;

3.4打开数据库

时间: 2024-10-12 16:13:04

RMAN备份与恢复之参数文件与控制文件的相关文章

同时丢失参数文件、控制文件及redo log file的不完全恢复(有数据文件的热备和归档)

转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/30839817 ##########恢复前的准备工作 1.做个热备 select 'alter tablespace '||tablespace_name|| ' begin backup;' ||chr(10)|| 'host cp '||file_name||' /backup' ||chr(10)|| 'alter tablespace '||tablespace_name|| '

【Oracle】数据库启动阶段参数文件、控制文件的问题处理

Oracle启动分三个阶段: nomount: 首先查找参数文件(pfile/spfile),根据文件创建实例.Nomount的过程是启动数据库实例的过程. 没有参数文件无法nomount mount: 从参数文件中获得控制文件的位置信息,然后打开控制文件. --没有控制文件无法mount open: 打开控制文件中所有描述的文件. --没有数据文件无法open -------------------------------------------------------------------

批量迁移Oracle数据文件,日志文件及控制文件

有些时候需要将Oracle的多个数据文件以及日志文件重定位或者迁移到新的分区或新的位置,比如磁盘空间不足,或因为特殊需求.对于这种情形可以采取批量迁移的方式将多个数据文件或者日志文件实现一次性迁移.当然备份恢复也是其中的方式之一.本文主要描述如何使用批量方式来迁移数据文件,日志文件.如需要也可以将整个数据库迁移到新的位置以及重命名数据库. [sql] view plain copy print? 1.环境及需求 [email protected]:~> cat /etc/issue Welcom

遇到ORA-01207: 文件比控制文件更新 - 旧的控制文件解决办法-简单版

遇到这样的问题,如ORA-01207: 文件比控制文件更新 - 旧的控制文件 解决问题的思路是重建控制文件 注意: 1.不知道会不会丢一小部分数据.适用于不重要的库和已经停机的业务,或者急救业务. 可以尝试从不同的地方找原来的control文件,几个不同的control文件如果都一样,说明只能这么恢复,如果不一样,尽量找系统表空间比较新的control去用,因为不涉及用户数据. 2.做之前保存之前的控制文件!!!! 报错如下: SQL>startupORACLE 例程已经启动.Total Sys

数据库数据文件和控制文件恢复

数据库数据文件和控制文件恢复一次数据库数据文件和控制文件丢失或未创建恢复数据库启动方法该文档适用数据恢复:数据库安装的时候丢失控制文件和数据文件或者数据库故障的数据.控制文件丢失或者数据库的本来数据.控制文件丢失有备份文件,用备份文件恢复本文的环境变量ORACLE_BASE=/oo/oracleORACLE_HOME=/oo/oracle/11g 1.数据库启动报错数据库启动时报错: 报错1: SQL> startup ORA-01261: Parameter db_recovery_file_

ORACLE中没有参数文件和控制文件如何通过rman恢复数据库

场景: 一个DEV告诉我生产环境下某个用户的表都看不到了,需要恢复,而此时生产库上存储自动备份的参数文件控制文件的磁盘目录文件坏块,所以导致rman备份的只有数据文件和归档日志文件,这种情况下,如何在测试服务器上利用rman恢复数据呢?google了很多资料,咨询了朋友,恢复过程如下: 前期准备工作:事先查询好先查询下原来的数据文件路径SQL> select name from v$datafile; NAME-------------------------------------------

Oracle RMAN 备份控制文件/恢复控制文件

--备份控制文件 rman target / RMAN> startup RMAN> configure controlfile autobackup on; --启动自动备份 RMAN> show CONTROLFILE AUTOBACKUP;  --显示是否自动备份控制文件 RMAN> configure controlfile autobackup format for device type disk to '/backup/%F'; --设置控制文件备份路径 RMAN&g

oracle参数文件、控制文件、数据文件、日志文件的位置及查询方法

参数文件:所有参数文件一般在  $ORACLE_HOME/dbs 下 sqlplus查询语句:show parameter spfile; 网络连接文件: $ORACLE_HOME/dbs/network/admin 目录中 控制文件:select * from v$controlfile; 数据文件:一般在oracledata/实例名  目录下 select FILE_NAME from dba_data_files; 日志文件:一般在oracledata/实例名  目录下 select *

RMAN备份之丢失数据文件及控制文件的恢复

About Recovery with a Backup Control FileIf all copies of the current control file are lost or damaged, then you must restore and mount a backup control file. You must then run the RECOVER command, even if no data files have been restored, and open t