Rman备份异机恢复
最后更新时间:2018/12/29
前置条件
已准备一台安装好Centos6+oracle11gr2 软件的服务器;
只安装了 oracle 数据库软件,需要手工创建以下目录:
#环境变量
export ORACLE_SID=orcl
#由于只安装软件未创建数据库所以需创建对应文件夹
mkdir -p $ORACLE_BASE/admin/orcl/adump/
mkdir -p $ORACLE_BASE/admin/orcl/dpdump/
mkdir -p $ORACLE_BASE/admin/orcl/pfile/
mkdir -p $ORACLE_BASE/oradata/orcl/
mkdir -p $ORACLE_BASE/flash_recovery_area
mkdir -p $ORACLE_BASE/flash_recovery_area/orcl
备份集放置目录:/u02/rmans
data放置备份集文件;
init_files 放置备份集生成后,手工备份的 spfile 及 control 文件。
[oracle@localhost rmans]$ ls /u02/rmans
data expdp.sh init_files logs startrmans.sh
本次恢复主要难点:
1. 备份集的数据库版本不同,由 11.2.0.1 升级为 11.2.0.4;
2. 数据库安装路径也不一样,数据文件、日志文件、控制文件路径都重定义;
正常情况下恢复,一般是安装的数据库版本、软件安装路径、数据文件路径都一致,会少很多步骤。
恢复操作
[oracle@localhost rmans]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Wed Dec 19 09:28:53 2018
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/dbhome_1/dbs/initorcl.ora'
starting Oracle instance without parameter file for retrieval of spfile
Oracle instance started
Total System Global Area 1068937216 bytes
Fixed Size 2260088 bytes
Variable Size 285213576 bytes
Database Buffers 775946240 bytes
Redo Buffers 5517312 bytes
恢复spfile: 需注意对应spfile oracle用户需要有权限访问
RMAN> restore spfile from '/u02/rmans/init_files/ORCL_spfile_1atl4iog_1_1_20181219';
Starting restore at 19-DEC-18
using channel ORA_DISK_1
channel ORA_DISK_1: restoring spfile from AUTOBACKUP /u02/rmans/init_files/ORCL_spfile_1atl4iog_1_1_20181219
channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at 19-DEC-18
重启实例
RMAN> startup nomount force;
恢复控制文件
RMAN> restore controlfile from '/u02/rmans/init_files/ctl_file_19tl4iod_1_1_20181219';
Starting restore at 19-DEC-18
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=385 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/u01/app/oradata/orcl/control01.ctl
output file name=/u01/app/flash_recovery_area/orcl/control02.ctl
Finished restore at 19-DEC-18
挂载数据库
RMAN> alter database mount;
database mounted
released channel: ORA_DISK_1
RMAN> list backup of database;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
24 Full 3.29G DISK 00:00:35 18-DEC-18
BP Key: 24 Status: EXPIRED Compressed: NO Tag: TAG20181218T143246
Piece Name: /home/oracle/rmans/data/fullback_ORCL_20181218_35
List of Datafiles in backup set 24
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/system01.dbf
2 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/sysaux01.dbf
3 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/undotbs01.dbf
4 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/users01.dbf
5 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/userdat.dbf
6 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/useridx.dbf
7 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/qcdat.dbf
8 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/qcidx.dbf
9 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/hisdat.dbf
10 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/hisidx.dbf
11 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/archdat.dbf
12 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/archidx.dbf
13 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/suitdat.dbf
14 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/suitidx.dbf
15 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/sbcdat.dbf
16 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/sbcidx.dbf
17 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/gszqdat.dbf
18 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/gszqidx.dbf
19 Full 62638762 18-DEC-18 /home/oracle/oradata/zginfo/ZG_INFO_SPACE.dbf
20 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/businessdat.dbf
21 Full 62638762 18-DEC-18 /home/oracle/oradata/orcl/businessidx.dbf
路径转换
rman备份集在新主机路径: /u02/rmans/data,备份集生成是在源主机的 /home/oracle/rmans/data ,所以需转换。
注册备份集路径
RMAN> catalog start with '/u02/rmans/data';
Starting implicit crosscheck backup at 19-DEC-18
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=385 device type=DISK
Crosschecked 5 objects
Finished implicit crosscheck backup at 19-DEC-18
Starting implicit crosscheck copy at 19-DEC-18
using channel ORA_DISK_1
Finished implicit crosscheck copy at 19-DEC-18
searching for all files in the recovery area
cataloging files...
no files cataloged
searching for all files that match the pattern /u02/rmans/data
List of Files Unknown to the Database
=====================================
File Name: /u02/rmans/data/fullback_ORCL_20181219_39
Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /u02/rmans/data/fullback_ORCL_20181219_39
数据文件路径转换
run{
set newname for datafile 1 to '/u01/app/oradata/orcl/system01.dbf';
set newname for datafile 2 to '/u01/app/oradata/orcl/sysaux01.dbf';
set newname for datafile 3 to '/u01/app/oradata/orcl/undotbs01.dbf';
set newname for datafile 4 to '/u01/app/oradata/orcl/users01.dbf';
set newname for datafile 5 to '/u01/app/oradata/orcl/userdat.dbf';
set newname for datafile 6 to '/u01/app/oradata/orcl/useridx.dbf';
set newname for datafile 7 to '/u01/app/oradata/orcl/qcdat.dbf';
set newname for datafile 8 to '/u01/app/oradata/orcl/qcidx.dbf';
set newname for datafile 9 to '/u01/app/oradata/orcl/hisdat.dbf';
set newname for datafile 10 to '/u01/app/oradata/orcl/hisidx.dbf';
set newname for datafile 11 to '/u01/app/oradata/orcl/archdat.dbf';
set newname for datafile 12 to '/u01/app/oradata/orcl/archidx.dbf';
set newname for datafile 13 to '/u01/app/oradata/orcl/suitdat.dbf';
set newname for datafile 14 to '/u01/app/oradata/orcl/suitidx.dbf';
set newname for datafile 15 to '/u01/app/oradata/orcl/sbcdat.dbf';
set newname for datafile 16 to '/u01/app/oradata/orcl/sbcidx.dbf';
set newname for datafile 17 to '/u01/app/oradata/orcl/gszqdat.dbf';
set newname for datafile 18 to '/u01/app/oradata/orcl/gszqidx.dbf';
set newname for datafile 19 to '/u01/app/oradata/zginfo/ZG_INFO_SPACE.dbf';
set newname for datafile 20 to '/u01/app/oradata/orcl/businessdat.dbf';
set newname for datafile 21 to '/u01/app/oradata/orcl/businessidx.dbf';
set until scn 62754360;
restore database;
SWITCH DATAFILE ALL;
recover database;
}
....
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET until clause
Starting restore at 19-DEC-18
using channel ORA_DISK_1
skipping datafile 1; already restored to file /u01/app/oradata/orcl/system01.dbf
skipping datafile 2; already restored to file /u01/app/oradata/orcl/sysaux01.dbf
skipping datafile 3; already restored to file /u01/app/oradata/orcl/undotbs01.dbf
skipping datafile 4; already restored to file /u01/app/oradata/orcl/users01.dbf
skipping datafile 5; already restored to file /u01/app/oradata/orcl/userdat.dbf
skipping datafile 6; already restored to file /u01/app/oradata/orcl/useridx.dbf
skipping datafile 7; already restored to file /u01/app/oradata/orcl/qcdat.dbf
skipping datafile 8; already restored to file /u01/app/oradata/orcl/qcidx.dbf
skipping datafile 9; already restored to file /u01/app/oradata/orcl/hisdat.dbf
skipping datafile 10; already restored to file /u01/app/oradata/orcl/hisidx.dbf
skipping datafile 11; already restored to file /u01/app/oradata/orcl/archdat.dbf
skipping datafile 12; already restored to file /u01/app/oradata/orcl/archidx.dbf
skipping datafile 13; already restored to file /u01/app/oradata/orcl/suitdat.dbf
skipping datafile 14; already restored to file /u01/app/oradata/orcl/suitidx.dbf
skipping datafile 15; already restored to file /u01/app/oradata/orcl/sbcdat.dbf
skipping datafile 16; already restored to file /u01/app/oradata/orcl/sbcidx.dbf
skipping datafile 17; already restored to file /u01/app/oradata/orcl/gszqdat.dbf
skipping datafile 18; already restored to file /u01/app/oradata/orcl/gszqidx.dbf
skipping datafile 19; already restored to file /u01/app/oradata/zginfo/ZG_INFO_SPACE.dbf
skipping datafile 20; already restored to file /u01/app/oradata/orcl/businessdat.dbf
skipping datafile 21; already restored to file /u01/app/oradata/orcl/businessidx.dbf
restore not done; all files read only, offline, or already restored
Finished restore at 19-DEC-18
Starting recover at 19-DEC-18
using channel ORA_DISK_1
starting media recovery
media recovery complete, elapsed time: 00:00:00
Finished recover at 19-DEC-18
日志目录转换
SQL> alter database rename file '/home/oracle/oradata/orcl/redo01.log' to '/u01/app/oradata/onlinelogs/redo01.log';
Database altered.
SQL>
SQL> alter database rename file '/home/oracle/oradata/orcl/redo02.log' to '/u01/app/oradata/onlinelogs/redo02.log';
Database altered.
SQL>
SQL> alter database rename file '/home/oracle/oradata/orcl/redo03.log' to '/u01/app/oradata/onlinelogs/redo03.log';
Database altered.
SQL> alter database open RESETLOGS;
alter database open RESETLOGS
*
ERROR at line 1:
ORA-00392: log 1 of thread 1 is being cleared, operation not allowed
ORA-00312: online log 1 thread 1: '/u01/app/oradata/onlinelogs/redo01.log'
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
Database altered.
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;
Database altered.
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 3;
Database altered.
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
Process ID: 4356
Session ID: 1144 Serial number: 3
--下面尝试upgrade,因为当前基于一个11.2.0.1的备份恢复到11.2.0.4,所以需要upgrade
sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Wed Feb 24 16:03:15 2016
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup upgrade;
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size 2260088 bytes
Variable Size 704643976 bytes
Database Buffers 352321536 bytes
Redo Buffers 9711616 bytes
Database mounted.
Database opened.
SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql; --执行升级脚本
注意
spfile 不存在
spfile 是实例启动时必要的参数文件,如果不存在,无法使用 startup nomount 启动到 nomount 状态。
如果没有spfile,需要自己编辑一个pfile,然后启动时使用:
RMAN> startup pfile='/tmp/initorcl.ora' nomount;
启动完后创建spfile
SQL> create spfile from pfile='/tmp/initorcl.ora';
File created.
control 文件trace出创建脚本
control文件不存在或者有问题时,数据库无法 mount。
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
执行完后可到系统 trace 日志目录下找到 alert_orcl.log,在里面可看到trc文件,trc文件包含了创建control文件的命令。
类似以下内容:
Backup controlfile written to trace file /u01/app/diag/rdbms/orcl/orcl/trace/orcl_ora_4146.trc
Completed: ALTER DATABASE BACKUP CONTROLFILE TO TRACE
Wed Dec 19 12:09:15 2018
参考文章:
https://www.cnblogs.com/storymedia/p/4536553.html
https://blog.csdn.net/leshami/article/details/50913867
Rman备份异机恢复的更多相关文章
- RMAN - 备份异机恢复
OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - ...
- RMAN 备份异机恢复 并创建新DBID
测试平台信息: Oracle:11gR2 操作系统:Redhat 5.5 Target DB:dave 几点说明: (1)RMAN 异机恢复的时候,db_name必须相同. 如果说要想改成其他的实 ...
- 使用rman备份异机恢复数据库
一.RMAN备份源库注意点: 最好保留rman备份日志 $rman target / log=backup.log RMAN>run { allocate channel t1 type dis ...
- RAC数据库的RMAN备份异机恢复到单节点数据库
1.首先在rac环境用rman备份数据库.[oracle@rac1 admin]$ rman target /run{allocate channel c1 device type disk conn ...
- Hyper-V安装Oracle Linux6_4 Oracle db 12c并使用rman做异机恢复
本文记录在Windows Server 2012 R2上安装Oracle Enterprise Linux 6.4以及使用RMAN进行进行异机恢复的过程. Windows服务器增加Hyper-V功能 ...
- Oracle之使用rman进行异机恢复测试记录
本次测试目的是从生产数据库导出rman备份然后在测试数据库恢复 1,拷贝备份至相应目录 2,进入rman rman target \ 3,关闭数据库 shutdown 4,以nomount模式启动数据 ...
- rman全备份异机恢复
一.测试环境 [oracle@localhost ~]$ uname -a Linux localhost.localdomain -.el6.x86_64 # SMP Tue May :: EDT ...
- rman 备份并异机恢复
1.RMAN 备份脚本 RUN { CONFIGURE RETENTION POLICY DAYS; CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CO ...
- Oracle 单实例 迁移到 RAC 实例 -- 使用RMAN 异机恢复
Oracle 官网有关单实例迁移到RAC的一个步骤说明: How to Convert 10g Single-Instance database to 10g RAC using Manual Con ...
随机推荐
- jqGrid的editrules参数
原文链接:http://blog.csdn.net/mengtianyalll/article/details/13502841 editrules editrules是用来设置一些可用于可编辑 ...
- 05:Cave Cows 1 洞穴里的牛之一
总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 262144kB 描述 很少人知道其实奶牛非常喜欢到洞穴里面去探险. 洞窟里有N(1≤N≤100)个洞室,由 ...
- MySQL存储过程和自定义函数、Navicat for mysql、创建存储过程和函数、调用存储过程和函数的区别
1 MySQL存储过程和函数 过程和函数,它们被编译后保存在数据库中,称为持久性存储模块(Persistent Stored Module,PSM),可以反复调用,运行速度快. 1.1 存储过程 存储 ...
- 优动漫PAINT-樱花教程
很雅致清新的樱花教程~在很多地方都可以运用到哟~原文转载自优动漫官网. 想要Get到更多有关优动漫的信息包括软件下载,可关注http://www.dongmansoft.com.
- the prblem 3n+1
题目描述计算机科学中的问题通常被归类为属于某一类问题(例如,NP,不可解,递归).在这个问题中,您将分析算法的属性,该算法的分类对于所有可能的输入都是未知的. 考虑下面的算法: 1.输入n 2.输出n ...
- js语法之条件语句
一.比较操作符 比较操作符包括:等于(==).大于(>).大于等于(>=).小于(<).小于等于(<=).
- ajax请求携带 cookie
之前都有这样一个理解:ajax请求时是不会自动带上cookie的,要是想让他带上的话,必须哟啊设置withCredential为true.这个说法会让人产生完全扭曲的误解,我就是其中之一.完整的无歧义 ...
- Flux架构与Redux简介
Flux架构区别于传统的MVC架构 在facebook实践中, 当用户接收到新消息时,右上角会弹出你有一条新消息, 右下角的对话框也会提示有新消息, 如果用户在对话框中查看了新消息,那么右上角的这个新 ...
- (WC2018模拟十二)【FJOI2016集训Day7T1】挑选子序列
题解: 这题太神仙了,先咕着,放个令人****的官方题解(精确覆盖问题是NP完全问题啊摔) Dancing Link X学习资料:QAQ TAT qwq Orz Donald Knuth大神... p ...
- BZOJ 4033[HAOI2015] 树上染色(树形DP)
4033: [HAOI2015]树上染色 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 3188 Solved: 1366[Submit][Stat ...