归档模式下RMAN备份的异机恢复

rman备份异机恢复 前提条件:两台机器数据库版本相同,备份路径相同,文件路径相同。目标库可以将数据文件,控制文件,闪回区,参数文件等清空,以方便后期恢复。(不删除也行,我习惯的是删除) ps:注意目录权限 第一步:rman整库备份 run { allocate channel ch1 type disk; allocate channel ch2 type disk; sql 'alter system archive log current'; backup as compressed backupset da.. 阅读详情

1、 关键过程

备份源数据库

a)      创建备份目录,用root用户登录源数据库,执行下列命令:

vmsdb1:~ # mkdir /opt/orabak/

vmsdb1:~ # chmod 775 /opt/orabak/

vmsdb1:~ # chown oracle:oinstall /opt/orabak/

 

b)     备份数据库、归档日志文件和控制文件:

vmsdb1:~ # su - oracle

--检查当前数据库实例是不是vmsdb1

oracle@vmsdb1:~> echo $ORACLE_SID

oracle@vmsdb1:~> rman target /

 

RMAN> run {

  #删除过期备份和归档日志

  crosscheck backup;

  delete expired backup;

  crosscheck archivelog all;

  delete expired archivelog all;

 

  #备份数据库和归档日志

  allocate channel t1 type disk;

  set limit channel t1 kbytes=1000000;

  backup

  incremental level 0

  skip inaccessible

  as compressed backupset

  # recommended format

  format '/opt/orabak/fullbackup_%T_%U.backup'

  database plus archivelog;

 

  #备份控制文件

  backup current controlfile format '/opt/orabak/ctlfile_backup.backup';

  release channel t1;

 }

 

c)      备份初始化参数文件

oracle@vmsdb1:/opt/orabak>sqlplus / as sysdba

sql>create pfile='/opt/orabak/VMSDB1_init.ora' from spfile;

 

d)     备份口令文件

oracle@vmsdb1:/opt/orabak>cp $ORACLE_HOME/dbs/orapwvmsdb1 /opt/orabak

 

当前实例的口令文件,存放在$ORACLE_HOME/dbs/路径下,文件命规则是:orapw$ORACLE_SID。

 

将备份文件传送到目标数据库机器

a)      使用SCP传送到目的服务器:10.137.19.155,在传送备份文件前,需要在目标数据库上建立好对应的路径和赋权,具体命令可以参考下面“创建存储RMAN备份的目录”命令。

vmsdb1:/opt/orabak # tar -zcvf vmsdb1_backup.tar.gz ./

vmsdb1:/opt/orabak # scp vmsdb1_backup.tar.gz oracle@10.137.19.155:/opt/orabak

 

 

在目标单板上恢复数据库

a)      创建存储RMAN备份的目录

linux155:~ # mkdir /opt/orabak/

linux155:~ # chmod 775 /opt/orabak/

linux155:~ # chown oracle:oinstall /opt/orabak/

 

b)     创建实例vmsdb1的相关目录

linux155:~ # su - oracle

oracle@linux155:~>mkdir -p /opt/oracle/admin/vmsdb1/{adump,dpdump,hdump,pfile,scripts}

oracle@linux155:~>mkdir -p /opt/oracle/diag/rdbms/vmsdb1/vmsdb1/{alert,cdump,hm,incident,incpkg,ir,lck,metadata,stage,sweep,trace}

 

oracle@linux155:~>mkdir -p /opt/oracle/oradata/vmsdb1

oracle@linux155:~>mkdir -p /opt/oracle/oradata/vmsdb1/archive_log

 

源数据库中,vmsdb1数据库的数据文件存放路径是“/opt/oracle/oradata/vmsdb1”,归档日志存放路径是“/opt/oracle/oradata/vmsdb1/archive_log”。

c)      创建口令文件

oracle@linux155:/opt/orabak> tar -zxvf vmsdb1_backup.tar.gz

oracle@linux155:/opt/orabak> cp orapwvmsdb1 $ORACLE_HOME/dbs/

 

d)     创建初始化参数文件

oracle@linux155:/opt/orabak> cp VMSDB1_init.ora $ORACLE_HOME/dbs/initvmsdb1.ora

 

Oracle11g数据库启动时,会搜索$ORACLE_HOME/dbs,先加载spfile,如果不存在spfile,则加载pfile,pfile的命名规则是:init$ORACLE_SID.ora。

e)     RMAN恢复

oracle@linux155:/opt/orabak> export ORACLE_SID=vmsdb1

oracle@linux155:/opt/orabak> echo $ORACLE_SID

oracle@linux155:/opt/orabak> rman target/

Recovery Manager: Release 11.1.0.7.0 - Production on Wed May 2 19:30:48 2012

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

connected to target database (not started)

 

RMAN> set dbid=2886533464;   //指定DBID,需要和源服务器的DBID一致,可以从源服务器中的v$database视图中查询得到

RMAN> startup nomount;

RMAN> restore controlfile from '/opt/orabak/ctlfile_backup.backup';    --恢复控制文件

RMAN> alter database mount;

RMAN> restore database;     --还原数据库文件

RMAN> recover database;     --恢复数据库文件,这里将报错,不需处理,继续根据本案例指导,进行后面的操作

 

Starting recover at 02-MAY-12

using channel ORA_DISK_1

starting media recovery

……

archived log thread=1 sequence=21

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 05/02/2012 20:02:58

RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 21 and starting SCN of 998298

 

RMAN> shutdown immediate;

 

f)      打开数据库

linux155:~ # su - oracle

oracle@linux155:~> export ORACLE_SID=vmsdb1

oracle@linux155:~> echo $ORACLE_SID

vmsdb1

oracle@linux155:~> sqlplus "/as sysdba"

SQL*Plus: Release 11.1.0.7.0 - Production on Thu May 3 08:29:00 2012

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

Connected to an idle instance.

SQL> startup;

ORACLE instance started.

 

Total System Global Area 1603411968 bytes

Fixed Size                  2160112 bytes

Variable Size             385878544 bytes

Database Buffers         1207959552 bytes

Redo Buffers                7413760 bytes

Database mounted.

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

 

SQL> alter database open resetlogs;

Database altered.

SQL> select status from v$instance;

STATUS

------------

OPEN

 

至此,数据库在目标单板上已成功恢复了。

 

3、 结论、解决方案及效果

本案例使用的典型场景如下:

a)      在局点搭建测试床,演练升级和调测业务。

b)     当现网数据库出现严重故障,需长时间修复时,可快速地在冗余、空闲数据库单板上恢复数据库,业务指向暂时数据库,快速恢复业务。

c)      在研发实验室快速搭建现场数据库镜像环境,进行业务开发和测试,以及问题重现等。

 

4、 经验总结、预防措施和规范建议

如果打开数据库的过程中,出现下列错误:

SQL> alter database open resetlogs;

alter database open resetlogs

*

ERROR at line 1:

ORA-01092: ORACLE instance terminated. Disconnection forced

Process ID: 2946

Session ID: 170 Serial number: 5

 

 

-- alert日志报错

Thu May 03 08:29:15 2012

ALTER DATABASE OPEN

ORA-1589 signalled during: ALTER DATABASE OPEN...

Thu May 03 08:29:33 2012

alter database open resetlogs

……

ORA-00704: bootstrap process failure

ORA-39700: database must be opened with UPGRADE option

Error 704 happened during db open, shutting down database

USER (ospid: 2946): terminating the instance due to error 704

Instance terminated by USER, pid = 2946

ORA-1092 signalled during: alter database open resetlogs...

ORA-1092 : opiodr aborting process unknown ospid (2946_47245946265184)

Thu May 03 08:29:41 2012

ORA-1092 : opitsk aborting process

 

    错误原因是:源数据库和目标数据库的版本不一致或Oracle补丁没有加载一致,所以请用下面的方法解决:

oracle@linux155:~> export ORACLE_SID=vmsdb1

oracle@linux155:~> echo $ORACLE_SID

vmsdb1

oracle@linux155:~> sqlplus "/as sysdba"

SQL*Plus: Release 11.1.0.7.0 - Production on Thu May 3 08:32:23 2012

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

Connected to an idle instance.

SQL> STARTUP UPGRADE;

ORACLE instance started.

Total System Global Area 1603411968 bytes

Fixed Size                  2160112 bytes

Variable Size             385878544 bytes

Database Buffers         1207959552 bytes

Redo Buffers                7413760 bytes

Database mounted.

Database opened.

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

 

-- 上述命令执行完毕后,数据库已关闭,所以执行下列命令

SQL> quit

oracle@linux155:~> sqlplus "/as sysdba"

SQL> startup;

-- 编译失效对象

SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql

 

数据库rman备份异机恢复 在源库执行sql,得到run{……},rman时使用,确认异机环境存在目录:/data/app/oracle/oradata/orcl/ 可以修改。需要修改参数 enable_pluggable_database 为TRUE,同时新建spfile切换为spfile启动。修改/tmp/pfile1.ora:*.db_block_size=32768。c-xxxxxxxx-xxxx 为控制文件名。PDB切换(PDB模式下需要)再次执行重新执行rman 阅读详情

相关推荐

RMAN异机恢复数据库详解

通过RMAN完成数据库异机恢复,保姆级教程

不专业的专业人士 2057

使用RMAN进行备份异机恢复

  服务器A(要备份的服务器):192.168.68.128   服务器B(把服务器A的备份还原到这里):192.168.68.129 1、RMAN创建恢复目录(服务器A执行) --1)创建恢复目录数据库 [oracle@localhost ~]$ sqlplus / as sysdba SQL> create tablespace rman_tbs datafile '/data/...

小灯数据 2529

出个AI8051U的PWM例程 | 3相互补SPWM变频驱动,PWMA-3个相位差120度的PWM互补输出

通道2输出: P2.2, PWMA2P输出, P2.3, PWMA2N输出, PWMA2相对PWMA1滞后120度相位.通道3输出: P2.4, PWMA3P输出, P2.5, PWMA3N输出, PWMA3相对PWMA1滞后240度相位.先别修改程序, 直接下载"Objects"里的"pwm.hex"测试, 下载时选择主频24MHz.主频32.768MHz, PWM周期1422, 刷新频率23040Hz,死区0.5us,通道1输出: P2.0, PWMA1P输出, P2.1, PWMA1N输出。

USB_CAN_8051的博客 666

oracle 主从库同步,oracle建立的dataguard主从库数据不能同步

环境:Win2003 sp2+oracle10.2.0+oracle dataguard问题:主从库数据不能同步状态:1.主从库监听正常.用oracle的tnsping工具可以互相ping通.2.查询两边的规档日志,在主库执行:select recid,name,applied from v$archived_log;10 rows selected.从库执行,没有记录select recid,n...

weixin_39609423的博客 852

归档模式RMAN备份异机恢复

1、 关键过程 备份源数据库 a)      创建备份目录,用root用户登录源数据库,执行下列命令: vmsdb1:~ # mkdir /opt/orabak/ vmsdb1:~ # chmod 775 /opt/orabak/ vmsdb1:~ # chown oracle:oinstall /opt/orabak/   b)     备份数据库和控制文件: vmsdb1:~

ZWWDLL的专栏 1411

oracle rman备份 归档模式,oracle技术之oracle归档模式下的Rman备份集在异机恢复

环境:OS:Red Hat Linux As 5DB:10.2.0.4有些时候因为测试环境需要,我们需要使用生产库的备份集在另外一台新的机器上做恢复(前提是新机器事先安装Oracle软件,版本跟原库一致),下面是恢复过程.1.在原库上做全备(在原库上操作)run{allocate channel c1 device type disk;allocate channel c2 device type...

weixin_29008805的博客 264

oracle技术之oracle归档模式下的Rman备份集在异机恢复

环境:OS:Red Hat Linux As 5DB:10.2.0.4有些时候因为测试环境需要,我们需要使用生产库的备份集在另外一台新的机器上做恢复(前提是新机器事先安装Oracle软件,版本跟原库一致),下面是恢复过程.1.在原库上做全备(在原库上操作)run{allocate channel c1 device type disk;allocate channel c2 ...

weixin_33779515的博客 217

金仓数据库&物理备份和还原

笔记

每天一小步,进步一大截 1812

RMAN 基于时间点的原机和异机恢复

1 Oracle RMAN备份恢复测试步骤 1.1数据库测试环境 RMAN恢复可以有原机恢复和异机恢复,这里我们将分别模拟这2种恢复场景。     主机1 主机2 操作系统 Centos6.5 64位 Centos6.5 64位 主机名 db1 db2 IP

雨花石 2739

oracle 10g rman恢复,Oracle 10g备份与恢复高级用户指南--第七章 RMAN备份过程与方法...

第七章RMAN恢复过程与方法1.非归档模式恢复非归档模式数据库恢复与归档模式下恢复相似,不同的是非归档模式下恢复只能使用冷备份,并且不能进行介质恢复(因为无归档日志);非归档模式下,使用增量备份恢复案例;场景,非归档模式数据库trgt,使用了catalog,在星期日做了一次一致性关闭后的0级增量备份,后在星期三和星期五一致性关闭后做了1级差异增量备份;数据库在星期六出现介质故障,一半数据文件和re...

weixin_39572442的博客 220

oracle 的路径不一致,归档模式下的Rman备份集在异机恢复(原库和目的库的路径不一致)...

环境:OS:Red Hat Linux As 5DB:10.2.0.4有些时候因为测试环境需要,我们需要使用生产库的备份集在另外一台新的机器上做恢复(前提是新机器事先安装Oracle软件,版本跟原库一致),下面是恢复过程.1.在原库上做全备(在原库上操作)run{allocate channel c1 device type disk;allocate channel c2 device type...

weixin_35803802的博客 685

oracle 安全备份rman_oracle 异机恢复小记

试验环境:操作系统:redhat 7.5数据库版本:oracle 11.2.0.4试验步骤:1、 异机恢复前,首先需要安装目标数据库,在新的服务器,可以选择只安装oracle软件。2、 源数据库开启有归档模式,若开启了归档模式,可以手动切换一下日志,确保归档可以正常运行。切换后,可以使用SQL:select name from v$archived_log;查看归档信息。3、 oracle默认是备...

weixin_31043555的博客 158

Linux下设置归档路径不生效,归档模式下的Rman备份集在异机恢复(原库和目的库的路径不一致)...

8.启动数据库到mount状态并注册备份RMAN> alter database mount;database mountedreleased channel: ORA_DISK_1注册备份集,因为控制文件中的保留的备份信息是原库的,我们这里需要重新注册新库路径下的备份RMAN> catalog start with '/u02/ftp/';Starting implicit cr...

weixin_28763005的博客 162

Oracle Data Guard环境中的RMAN备份和还原

Oracle Data Guard环境中的RMAN备份和还原

jetliu05的博客 4045

rman异地恢复oracle数据库

异机恢复oracle备份数据库

weixin_42136914的博客 1101

通过RMAN备份恢复数据库到其他服务器

本节演示如何通过RMAN创建的备份集,将数据库恢复到其他服务器。本小节执行的操作较多,一定要有一个清醒的大脑,因此赶紧把脑袋里那堆乱七八糟的东西清除清除,要不你一定会看晕的。设定环境如下:源库192.168.100.100,SID:jssbook。目录库192.168.100.101,已安装与源库相同版本的数据库软件(一定要相同版本哟)。准备工作如下:记录下源数据库的DBID,DBID的获取方式上节已讲过。创建完整备份集(含控制文件、数据文件、归档文件),源库为非归档模式也可以,只要确保创建的备份是一致备份

络客 5819

RMAN2:异机完全恢复

阶段1:准备 1.1 传送备份文件 目标服务器建目录/u01/app/oracle/rmanbak #mkdir –p /u01/app/oracle/rmanbak #scp -r /u01/app/oracle/rmanbak 192.168.56.113: /u01/app/oracle/rmanbak/ 1.2 确认备份集中的重要文件 RMAN> list backup of spfile; --参数文件 记下Piece N...

weixin_47745154的博客 1843

oracle进行rman异机备份与恢复_0级及1级备份异机恢复实验教程

oracle进行rman异机备份与恢复系列教程_0级及1级备份异机恢复实验

dhz66163的博客 3624

使用RMAN进行异机恢复Oracle数据库

1、安装碰见问题在所难免,kill掉就ok!2、注意操作细节!

weixin_39279663的博客 4628

浅谈银行内部户治理

为避免该问题的发生,对内部户入账类交易,或内部户是可透支的账户(如系统间往来),可考虑通过异步方式更新账户余额(当然,根本上还是要考虑银行业务量的实际,异步消息接口很多时候没有同步接口方便),另外,在进行内部户余额更新时,可以通过定时的借贷方发生额轧差的方式,将多次的锁请求,简化为一次(当然,发生额明细本身在加工账户交易历史时,是不能汇总的)。内部户在银行系统中,属于业务属性较少,实现相对简单,原理也很容易讲清的系统,但管中窥豹,越是基础的东西,越能看出一家银行业务、内控的专业程度。

银行信息系统架构详解 741

成熟FOC电机控制,电动自行车,滑板 车,电机FOC控制方案(原理图+PCB+程序)

成熟FOC电机控制代码 大厂成熟FOC电机控制图。可用于电动自行车,滑板 车,电机FOC控制等。大厂成熟方案,直接可用,不是一般的普通代码可比的。代码基于Stm031,国产很多芯片可以通用。以下功能:转把,高中低三速。刹车功能助力功能电子刹车功能欠压检测巡航功能铁塔王通讯一键通隐形限速防盗功能霍尔修复自学习故障显示等功能,不是普通的一般代码,是完整功能。

上一篇: RMAN进行表空间的备份和恢复
下一篇: 非归档模式下RMAN备份的异机恢复
ZWWDLL
博客等级 码龄19年 5粉丝 30原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值