Database-Oracle-Windows操作系统下使用RMAN进行Oracle11g单实例的生产库迁移恢复

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

Database-Oracle-Windows操作系统下使用RMAN进行Oracle11g单实例的生产库迁移恢复

一般(相同同数据库版本)流程

在目标数据库上安装软件
原库全备
复制文件到目标数据库
备份集以及原库上的pfile: create pfile from spfile;
根据原库pfile创建或修改没有的目录
重做日志路径、控制文件路径,快速恢复区等
目标数据库:
C:\Users\Administrator>ORADIM -NEW -SID orcl
C:>set oracle_sid=orcl
C:>rman target /
RMAN> startup nomount
RMAN> set dbid 1450825846
RMAN> startup nomount pfile=‘D:\app\Administrator\product\11.2.0\dbhome_1\databa
se\INITorcl’;
RMAN> restore controlfile from ‘C:\app\Administrator\fast_recovery_area\orcl\AUT
OBACKUP\2016_11_03\O1_MF_S_926954699_D1OSLDL3_.BKP’;

RMAN> restore spfile from ‘C:\app\Administrator\fast_recovery_area\orcl\AUTOBACK
UP\2016_11_11\O1_MF_S_927642226_D2BRZOYF_.BKP’;

RMAN> alter database mount;

RMAN> restore database;(因为原库与目标库快速恢复区相同)

RMAN> recover database;

启动 recover 于 12-11月-16
使用通道 ORA_DISK_1

正在开始介质的恢复

无法找到归档日志
归档日志线程=1 序列=10
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 11/04/2016 10:24:31 上) 失败
RMAN-06054: 介质恢复正在请求未知的线程 1 序列 10 的归档日志以及起始 SCN 1042267

报错了?正常的,因为我们创建的热备份并不是一致性备份,源端的归档是过来了,但联机重做日志文件并没有随备份集复制过来,因此恢复时肯定恢复不到源端的当前状态。这个错误是提醒你要想继续恢复的话还需要线程1生成的SEQUENCE#为10的重做日志文件。如果你要保持一致,必须复制源数据库端的重做日志文件,那必须首先SHUTDOWN源端数据库才行。

RMAN> recover database until scn=1042267;

启动 recover 于 04-11月-16
使用通道 ORA_DISK_1

正在开始介质的恢复
介质恢复完成, 用时: 00:00:00

完成 recover 于 12-11月-16
开库:
ALTER DATABASE OPEN RESETLOGS;

create spfile from pfile;
oradim -EDIT -SID orcl -STARTMODE auto -SRVCSTART system

软件版本不同的情况

此次迁移各服务器情况:
24(正式库) 11.2.0.1 win-server-2008
23(目标主机) 11.2.0.4 win-server-2012

此次在recover database until…时提醒数据文件报RMAN-06054: 介质恢复正在请求未知的线程 1 序列 **的归档日志以及起始 SCN ***错误。
在把序列为
的日志拿过来后rman又重新报了06054错误(一个比scn****更小的scn)并需要序列+1的归档,怀疑此次rman异常的原因是因为该生产库多次异常断电导致数据库里存在一个像洞一样的东西。
然后在recover until 较小的scn时成功recover,因为版本不同,开库需要upgrade。


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: 11035
Session ID: 59 Serial number: 29

[oracle@testdb orcl]$ sqlplus / as sysdba
 
SQL*Plus: Release 11.2.0.3.0 Production on Thu Apr 9 13:36:01 2015
 
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
 
Connected to an idle instance.
 
SQL> startup upgrade;
ORACLE instance started.
 
Total System Global Area  313159680 bytes
Fixed Size                  2227944 bytes
Variable Size             230687000 bytes
Database Buffers           75497472 bytes
Redo Buffers                4747264 bytes
Database mounted.
Database opened.

catupgrd.sql 该脚本花费时间较长,大约30分钟,执行完毕后干净的关库后再重新打开数据库再检查是否还有失效的对象:

SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql;

 
Connected to an idle instance.
 
SQL> startup
ORACLE instance started.
 
Total System Global Area  501059584 bytes
Fixed Size                  2229744 bytes
Variable Size             444598800 bytes
Database Buffers           46137344 bytes
Redo Buffers                8093696 bytes
 
Database mounted.
Database opened.
SQL> select count(*) from dba_objects where status='INVALID';
 
  COUNT(*)
----------
      5930
 
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
 
SQL> select count(*) from dba_objects where status='INVALID';
 
  COUNT(*)
----------
         0


正式迁移恢复

以上操作的备份集不是最新的,因此需要再一次备份恢复,在备份前需要将正式库关闭,然后open resetlog一下,这样正式库相当于全新的(把洞补上),然后全备,恢复。

RMAN> startup nomount

Oracle 实例已启动

系统全局区域总计   13695889408 字节

Fixed Size                     2294256 字节
Variable Size               7784631824 字节
Database Buffers            5838471168 字节
Redo Buffers                  70492160 字节

RMAN> set dbid 1454198642

正在执行命令: SET DBID

RMAN> startup nomount pfile='D:\app\Administrator\product\11.2.0\dbhome_1\database\INITorcl';

数据库已经启动

RMAN> restore controlfile from 'D:\app\Administrator\flash_recovery_area\orcl\AUTOBACKUP\2017_05_15\O1_MF_S_944071445_DK
LZ8OMC_.BKP';

启动 restore 于 15-5月 -17
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=301 设备类型=DISK

通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
输出文件名=D:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
输出文件名=C:\ORACLE_BACKUP\ORCL\CONTROL02.CTL
完成 restore 于 15-5月 -17


RMAN> alter database mount;

数据库已装载
释放的通道: ORA_DISK_1

RMAN> restore database;

启动 restore 于 15-5月 -17
启动 implicit crosscheck backup 于 15-5月 -17
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=301 设备类型=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: SID=321 设备类型=DISK
已交叉检验的 11 对象
已交叉检验的 70 对象
.......


RMAN> recover database;

启动 recover 于 15-5月 -17
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2

正在开始介质的恢复

无法找到归档日志
归档日志线程=1 序列=1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 05/15/2017 18:22:03 上) 失败
RMAN-06054: 介质恢复正在请求未知的线程 1 序列 1 的归档日志以及起始 SCN 329554756


将提示中需要的序列日志拿到24上,没有归档的用alter system switch logfile;
RMAN> recover database;

启动 recover 于 15-5月 -17
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2

正在开始介质的恢复

无法找到归档日志
归档日志线程=1 序列=3
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 05/15/2017 18:31:06 上) 失败
RMAN-06054: 介质恢复正在请求未知的线程 1 序列 3 的归档日志以及起始 SCN 329560091

RMAN> recover database until scn=329560091;

启动 recover 于 15-5月 -17
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2

正在开始介质的恢复
介质恢复完成, 用时: 00:00:01

完成 recover 于 15-5月 -17


RMAN> alter database open resetlogs;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: alter db 命令 (在 05/15/2017 18:33:02 上) 失败
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
进程 ID: 11896
会话 ID: 281 序列号: 11
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
ORA-03114: 未连接到 ORACLE
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: alter db 命令 (在 05/15/2017 18:33:02 上) 失败
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
进程 ID: 11896
会话 ID: 281 序列号: 11

PS C:\Users\Administrator> sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on 星期一 5月 15 18:37:04 2017

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

已连接到空闲例程。

SQL> startup upgrade
ORACLE 例程已经启动。

Total System Global Area 1.3696E+10 bytes
Fixed Size                  2294256 bytes
Variable Size            7818186256 bytes
Database Buffers         5804916736 bytes
Redo Buffers               70492160 bytes
数据库装载完毕。
数据库已经打开。

SQL> @D:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\catupgrd.sql;

SQL> select count(*) from dba_objects where status='INVALID';
 
SQL> @D:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\utlrp.sql
SQL> select count(*) from dba_objects where status='INVALID';
         

rman异机恢复 Linux _RAC至Win_Single Instance note mkdir /home/exp_dir export ORACLE_SID=dfhis2 rman target / RMAN> run {    allocate channel c1 device type disk;   backup incremental level 0     format '/home/exp_dir/db_full_%U.bak'     ta 阅读详情

相关推荐

ORACLE RMAN 跨平台恢复测试(Windows->Linux)

原数据ORACLE11G 11.2.0.3,跑在64位WINDOWS上,使用RMAN做了个备份,将备份文件上传到Linux服务器上的/home/oracle/rmanbackup目录中,准备恢复到64位LINUX上,过程如下:   将数据启动到nomount状态 oracle@changeme:~> sqlplus /nolog SQL> conn / as sysdba SQL> s

周先生de博客 2472

Windows平台Oracle数据RMAN备份策略

Windows平台Oracle数据RMAN备份策略

m0_37625564的博客 877

Oracle11g rman异机恢复liunx至windows ---实测

源端数据版本 :Liunx&Oracle 11.2.0.4 目标端数据版本 :Windows server12&Oracle 11.2.0.4 说明:客户需求搭建一套生产测试,目标端是一台windows服务器环境 实例名称PROD(文中出现名及表空间略作修改) 目标安装数据软件版本与源保持一致 备份传至目标端 接下来进行恢复 以下操作步骤均在目标端操作 1.修改参数文件...

CSDNEND的博客 1074

ORACLE RMAN 备份策略及设置(Windows篇)

ORACLE RMAN备份

一份香烟的博客 6772

Window Oracle 11G RMAN 单实例异机迁移恢复

一、迁移环境 以下为Windows平台下RMAN异机迁移恢复实例。 –源 操作系统:WIN SVR 2008 R2 主机名:orcldb1 IP地址:172.16.1.120 数据版本:11.2.0.4 存储方式:文件系统 ORACLE_HOME:D:\app\Administrator\product\11.2.0\dbhome_1 ORACLE_SID:orcl 数据字符集:SIMPLIFIED CHINESE_CHINA.ZHS16GBK –目标操作系统:WIN SVR 2008 R2 主

驰兔的博客 1832

从win 64位下的Oracle11G使用rman备份,恢复到Linux 64位下的Oracle11G

说明:适用于从win 64位下的Oracle11G使用rman备份,恢复到Linux 64位下的Oracle11G 使用rman备份win下的Oracle数据 1、在SQL plus下执行 create pfile='D:\bak\init20191203backup.ora' from memory; shutdown immediate; startup mount; 2、在rman下执行...

weixin_42193415的博客 583

RmanWindows迁移Oracle数据至Linux

1.全备份 run { allocate channel ch1 type disk maxpiecesize=50g; backup format 'E:\backup1\datafile\full_%U' tag 'fullbak_' full database; sql 'alter system archive log current'; backup format 'E:\backup...

DoubleJing的博客 1184

windowsoracle11g备份,【RMANOracle11g使用rman迁移升级数据(win_to_linux)

前言:在迁移Oracle数据的过程中,我们会遇到很多种情况,例如32位操作系统下的数据迁移到64位,不同操作系统平台之间的迁移,那么怎么选择迁移工具呢,首先我们需要确认迁移源端和目标端的环境,再次停机时间,数据量大小,相对而言,逻辑迁移更稳妥一点,不管是手动的expdp/impdp还是借助其他工具,OGG之类,像高水位这样的问题也会得到缓解。rman也是一项工具,那么什么时候选择呢,或者选择的...

weixin_39946364的博客 626

利用RMAN进行Oracle数据的异构迁移Windows to Linux)

1、 名称解释 RMAN:RMAN(Recovery Manager)是一种用于备份(backup)、还原(restore)和恢复(recover)数据Oracle 工具。 冷备:数据关闭状态时进行备份 CRS:Cluster Ready Service(Oracle集群就绪服务) RAC:RAC是real application clusters的缩写,译为“实时应用集群”, 是Ora...

DoubleJing的博客 2748

oracle11g windows迁移至linux

概述:跨操作系统平台数据迁移windows to linux 步骤记录; 实验步骤: (一)、linux平台安装好数据软件及配置好监听; (二)、备份windows数据; (三)、linux平台进行数据恢复操作; (四)、linux平台进行数据恢复后的相关操作; windows 备份数据: run { configure device type disk paralle...

Data & Analysis 1422

oracle10g迁移11g配置,WindowsOracle10g32位迁移11g64位

客户需要,将windows下10g(10.2.0.3)32位数据迁移11g64位。不过主要目的是为10g32位windows打补丁,怕出问题做的迁移。这里自己先做下测试。参考文章:测试环境:Win server 2003 32位,先安装oracle10.2.0.1,然后升级到10.2.0.5(因为10.2.0.1不能升到11g,所以得升级到10.2.0.2以上),最后迁移11.2.0.1(W...

weixin_28782221的博客 840

WindowsOracle10g32位迁移11g64位

客户 window平台,oracle从10.2.0.1.升级到10.2.0.5。

阿丽 2271

100天精通Oracle-实战系列(第19天)RMANWindows 至 Linux 跨系统恢复 Oracle 数据

RMANWindows 至 Linux 跨系统恢复 Oracle 数据(第19天) ->返回总目录<- 在实际工作中,偶尔会碰到将 Oracle 数据Windows 迁移到 Linux 系统的诉求,RMAN 也是支持跨系统恢复的,只要查看 v$transportable_platform 视图查看是否支持即可,显然 Microsoft Windows x86 64-bit 和 Linux x86 64-bit 都是相同的字节序 Lit

LuciferLiu_DBA 1762

oracle12c 异机恢复,Oracle 11g RMAN 异机恢复(Linux to Windows

Oracle 11g RMAN 异机恢复(Linux to Windows)原确定数据文件,日志文件,tempfile 文件信息select group#,status,type, member from v$logfile;col name format a65select file#,name,bytes/1024/1024 MB from v$datafile;select name fr...

weixin_30849279的博客 227

使用RmanWindows Oracle 11gR2 32位中数据恢复Windows Oracle 11gR2 64位 与 centos 6.5 Oracle 11gR2 32位

通过Rman备份数据方式为全备份命令: Rman>rman database 备份包括两份文件,其中一个是数据文件,另一个为控制文件。还需要我们从源中复制初始化文件(复制到目标数据相应地方),其通常在%Oracle_Home%\database目录下SpfileXXX.ora。 其中Spfile需要按照备份数据进行修改,但Spfile为二进制文件,需要先将其转换成pfile使用txt修

Fred、的窃窃私语 2816

oracle11g R2数据迁移(同windows系统迁移使用RMAN

实验环境:windows 2008 R2 &windows 2008 R2 Oracle版本:11.2.0.1.0 源数据端: 为保证在恢复之后的数据中得到一致的数据,应禁止用户对数据的访问 需要的备份文件:控制文件、参数文件、数据文件和归档日志 一、查询以下信息并记录: 1、连接数据 sqlplus /nolog C:\Users\Adminis...

weixin_30710457的博客 602

oracle11g 单机 RMAN备份恢复至单机(windows环境)

一、拷贝备份及归档日志至目标服务器 1) 目标端服务器仅安装数据软件,创建监听,不创建数据实例。 2) rman备份文件在新服务器的存放路径自定义,归档存放路径尽量与源端服务器相同。 3) 条件允许情况下,源端数据中3次执行alter system switch logfile;之后再进行rman备份(保证数据完整) 二、rman恢复数据参数文件 1)在源端数据rman备份日志,或rman命令中确认参数文件所在备份片 rman target / crossc

脑子进水养啥鱼?的博客 1386

Oracle数据迁移 Windows To Linux (RMAN异构迁移

:创建源的pfile文件 shutdown immediate startup mount create pfile='D:\oracle\oradata\protect\pfile0413.ora' from spfile; 源:备份数据 这里数据比较大,有1T的数据量。 这里备份是在数据mount模式下进行备份(冷备份)的 run{ allo...

ageeklet的博客 1205
上一篇: Kubernetes-为MySQL 提供持久化存储
下一篇: Bigdata-Hadoop 2.6集群安装
adson1987
博客等级 码龄10年 32粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值