环境linux
Oracle10.2.0.1
归档日志在ASM磁盘组
恢复到原来的RAC节点

根据Oracle的RAC环境的不同,RMAN备份、恢复操作也是不同的。如果RAC环境是建立在CLUSTER文件系统上的,或者是建立在ASM上的,那么备份和恢复过程可能会很简单,基本上和普通的数据库环境没有太多的区别。如果RAC环境是建立在裸设备上的,由于归档日志无法存储在裸设备上,那么归档日志文件必须放在多个节点的本地硬盘上,这时备份和恢复就变得和普通的数据库环境有所差异。

这里先讨论一下ASM环境上建立的RAC数据库的备份。如果将归档日志放在ASM上,那么两个节点都是可以备份的,这个时候,备份和普通的单实例数据库没有差别。

第一步:背景
SQL> SHOW PARAMETER LOG_ARCHIVE_DEST_1

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string LOCATION=+RAC_DISK/demo/arch2
log_archive_dest_10 string
SQL>

SQL> SHOW PARAMETER LOG_ARCHIVE_DEST_1

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string LOCATION=+RAC_DISK/demo/arch1
log_archive_dest_10 string
SQL>

两个节点的数据库查询得到的都是下面的结果
SQL> select name from v$archived_log;

NAME
--------------------------------------------------------------------------------
/opt/ora10g/arch/2_2_733960822.dbf
/opt/ora10g/arch/1_22_733960822.dbf
/opt/ora10g/arch/1_23_733960822.dbf
/opt/ora10g/arch/1_24_733960822.arc
+RAC_DISK/demo/arch1/1_25_733960822.arc
+RAC_DISK/demo/arch1/2_3_733960822.arc
+RAC_DISK/demo/arch2/2_4_733960822.arc
+RAC_DISK/demo/arch1/1_26_733960822.arc

8 rows selected.

第二步,备份数据库
[oracle@node2 arch]$ rman target /
connected to target database: RACDB (DBID=731577590)
RMAN> configure channel device type disk format '/opt/ora10g/arch/%U';
RMAN> backup database plus archivelog delete all input;

Starting backup at 09-NOV-10
current log archived
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=151 instance=RACDB2 devtype=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup plus archivelog command at 11/09/2010 22:27:07
RMAN-06059: expected archived log not found, lost of archived log compromises recoverability
ORA-19625: error identifying file /opt/ora10g/arch/1_22_733960822.dbf
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3

RMAN> exit

我们这个数据库比较特殊,开始归档日志的时候放的是各服务器本地,后来又调整到了ASM磁盘组,
由于节点2上无法访问到节点1上的归档,所以出现了上面的错误。对于这种情况,可以使用带CONNECT语句的ALLOCATE来分配CHANNEL:
rman target /
run
{
allocate channel c1 device type disk format '/opt/ora10g/arch/%U' connect sys/tagal@racdb1;
allocate channel c2 device type disk format '/opt/ora10g/arch/%U' connect sys/tagal@racdb2;
backup database plus archivelog delete all input;
}

再备份就没有问题了

说明:因为开了两个channel,所以每个节点的服务器分别同时备份
在两个服务器的/opt/ora10g/arch/目录下都有备份文件,而且各不相同
节点1
[oracle@node1 arch]$ ls -ltr
total 406652
-rw-r----- 1 oracle oinstall 61632512 Nov 9 22:38 01lsjrq1_1_1
-rw-r----- 1 oracle oinstall 17735168 Nov 9 22:38 04lsjrr3_1_1
-rw-r----- 1 oracle oinstall 321167360 Nov 9 22:39 05lsjrrj_1_1
-rw-r----- 1 oracle oinstall 15335424 Nov 9 22:39 07lsjrtf_1_1
-rw-r----- 1 oracle oinstall 98304 Nov 9 22:40 08lsjru3_1_1
-rw-r----- 1 oracle oinstall 7168 Nov 9 22:41 09lsjs04_1_1
[oracle@node1 arch]$

节点2
[oracle@node2 arch]$ ls -ltr
total 334480
-rw-r----- 1 oracle oinstall 30736896 Nov 9 22:35 02lsjrl2_1_1
-rw-r----- 1 oracle oinstall 6253056 Nov 9 22:35 03lsjrlt_1_1
-rw-r----- 1 oracle oinstall 305152000 Nov 9 22:37 06lsjrml_1_1
-rw-r----- 1 oracle oinstall 6144 Nov 9 22:37 0alsjrp9_1_1
[oracle@node2 arch]$

注意看上面的结果,在原来归档日志的目录下,归档日志已经被删除了

SQL> select name from v$archived_log;

NAME
----------

16 rows selected.

SQL>

因为归档日志已经被归档走了,所以看不到name显示的结果,但是有16个归档日志

下面实验恢复操作

在恢复之前,需要将数据库关闭,通过rman启动实例并准备恢复:

[oracle@node2 arch]$ srvctl stop db -d racdb
[oracle@node2 arch]$

下面准备通过RMAN进行数据库的恢复。由于RAC的备份是同时备份到两个节点的本地硬盘上,
因此恢复的时候也应该两个节点同时进行RESTORE操作。

可以在两个节点上分别启动RMAN,将数据库处于STARTUP MOUNT状态,然后就可以在任意一个节点上执行RESTORE操作:

先启动某个节点到mount状态
sqlplus / as sysdba
startup mount

再在另一个节点进行恢复
[oracle@node2 arch]$ rman target /

Recovery Manager: Release 10.2.0.1.0 - Production on Tue Nov 9 23:07:01 2010

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

connected to target database (not started)

RMAN> startup mount
......
run
{
allocate channel c1 device type disk format '/opt/ora10g/arch/%U' connect sys/tagal@racdb1;
allocate channel c2 device type disk format '/opt/ora10g/arch/%U' connect sys/tagal@racdb2;
restore database;
}
......
run
{
allocate channel c1 device type disk format '/opt/ora10g/arch/%U' connect sys/tagal@racdb1;
allocate channel c2 device type disk format '/opt/ora10g/arch/%U' connect sys/tagal@racdb2;
recover database;
}

到此,算是备份恢复的脚本流程都浏览了一遍。

过程如下,没有问题
[oracle@node2 arch]$ srvctl stop db -d racdb
[oracle@node2 arch]$ rman target /

Recovery Manager: Release 10.2.0.1.0 - Production on Tue Nov 9 23:07:01 2010

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

connected to target database (not started)

RMAN> startup mount

Oracle instance started
database mounted

Total System Global Area 167772160 bytes

Fixed Size 1218316 bytes
Variable Size 113248500 bytes
Database Buffers 50331648 bytes
Redo Buffers 2973696 bytes

RMAN> run
{
allocate channel c1 device type disk format '/opt/ora10g/arch/%U' connect sys/tagal@racdb1;
allocate channel c2 device type disk format '/opt/ora10g/arch/%U' connect sys/tagal@racdb2;
restore database;
}2> 3> 4> 5> 6>

using target database control file instead of recovery catalog
allocated channel: c1
channel c1: sid=151 instance=RACDB1 devtype=DISK

allocated channel: c2
channel c2: sid=144 instance=RACDB2 devtype=DISK

Starting restore at 09-NOV-10

channel c2: starting datafile backupset restore
channel c2: specifying datafile(s) to restore from backup set
restoring datafile 00002 to +RAC_DISK/racdb/datafile/undotbs1.260.733960879
restoring datafile 00003 to +RAC_DISK/racdb/datafile/sysaux.261.733960895
restoring datafile 00006 to +RAC_DISK/racdb/datafile/test_d.271.734574993
channel c2: reading from backup piece /opt/ora10g/arch/06lsjrml_1_1
channel c1: starting datafile backupset restore
channel c1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to +RAC_DISK/racdb/datafile/system.259.733960845
restoring datafile 00004 to +RAC_DISK/racdb/datafile/undotbs2.263.733960921
restoring datafile 00005 to +RAC_DISK/racdb/datafile/users.264.733960933
channel c1: reading from backup piece /opt/ora10g/arch/05lsjrrj_1_1
channel c1: restored backup piece 1
piece handle=/opt/ora10g/arch/05lsjrrj_1_1 tag=TAG20101109T223604
channel c1: restore complete, elapsed time: 00:01:32
channel c2: restored backup piece 1
piece handle=/opt/ora10g/arch/06lsjrml_1_1 tag=TAG20101109T223604
channel c2: restore complete, elapsed time: 00:01:40
Finished restore at 09-NOV-10
released channel: c1
released channel: c2

RMAN> run
{
allocate channel c1 device type disk format '/opt/ora10g/arch/%U' connect sys/tagal@racdb1;
allocate channel c2 device type disk format '/opt/ora10g/arch/%U' connect sys/tagal@racdb2;
recover database;
}2> 3> 4> 5> 6>

allocated channel: c1
channel c1: sid=151 instance=RACDB1 devtype=DISK

allocated channel: c2
channel c2: sid=144 instance=RACDB2 devtype=DISK

Starting recover at 09-NOV-10

starting media recovery
media recovery complete, elapsed time: 00:00:09

Finished recover at 09-NOV-10
released channel: c1
released channel: c2

RMAN>

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10771/viewspace-1045842/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10771/viewspace-1045842/

RAC环境备份归档日志和恢复数据库方法相关推荐

  1. rac 火星舱如何备份oracle_Oracle RAC环境下归档日志的备份

    Oracle RAC环境中归档日志的存放方式有如下几种方式: 1. 本地文件系统 2. 集群文件系统 3. 网络文件系统(NFS) 4. 自动存储管理(ASM) 归档日志的存放方式决定了归档日志可以采 ...

  2. RAC环境备份归档日志和RMAN恢复启动数据库

    环境linux Oracle10.2.0.1 归档日志在ASM磁盘组 恢复到原来的RAC节点 根据Oracle的RAC环境的不同,RMAN备份.恢复操作也是不同的.如果RAC环境是建立在CLUSTER ...

  3. mysql 归档日志恢复_Oracle丢失归档日志文件的数据库恢复方法

    使用案例描述:ORDTAB表空间的一个数据文件ordtab03.dbf毁坏,其包含很多ORDERS表的分区,数据文件热备于July 4, 2004,July 4 丢失归档日志文件的数据库恢复方法,从一 ...

  4. RMAN备份归档日志时的not backed up与catalog数据库结合时的问题

    在客户现场实施备份软件时, 客户环境中存在N套primary + 异地DG的Oracle数据库,同时客户要求primary与异地DG都需要备份.  primary与异地DG都采用相同的catalog作 ...

  5. rman备份后为什么要同时备份归档日志

    今天在CU上看到有人问一个问题:rman备份后为什么要同时备份归档日志呢,既然rman是物理备份,所有数据已经都备份,再次备份归档日志何用? 思考了一下,认为有必要记录一下为什么要备份归档日志: 其实 ...

  6. 用Oracle归档日志进行恢复方法

    用Oracle归档日志进行恢复方法 联机重演日志没有丢失应使用完成恢复,如联机重演日志损坏,而又没有备份,就只能进行不完全恢复. 一.完全恢复: 1.使用命令"svrmgrl"调用 ...

  7. Sql Server实用操作-无数据库日志文件恢复数据库两种方法

    数据库日志文件的误删或别的原因引起数据库日志的损坏 方法一 1.新建一个同名的数据库 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文件覆盖掉这个新建的数据库 4.再重启s ...

  8. mysql 二进制日志 解析c++_mysql二进制日志文件恢复数据库

    二进制日志的文件的作用 mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句.如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所 ...

  9. android分享文件分享结果_干货分享丨DM删除归档日志文件的多种方法

    上一期我们讲解了DM数据库归档日志的切换,本期我们讲解DM数据库归档日志文件的删除. 本章内容已在如下环境上测试: ①操作系统:中标麒麟7: ②数据库版本:达梦8: 相关关键字:DM数据库.归档日志文 ...

最新文章

  1. PCLVisualizer可视化类
  2. php 函数 变量,PHP函数中变量的说明
  3. caffe 关于Deconvolution的初始化注意事项
  4. Android 性能优化提示
  5. STM32 HAL库使用IIC
  6. go-import下划线的作用
  7. 求树中某结点的父结点(长子-兄弟表示法)
  8. jamon java_JAMon监控web工程方法的调用性能
  9. Ubuntu和windows下修改hosts
  10. mysql hive的导数_记一次蛋疼的mongo to hive导数过程
  11. 前端工程师行业现状怎么样?前景如何?
  12. HDMI接口 PCB布线指南-4层板为例
  13. Intel CPU的型号漫谈
  14. 雷达感应智能窗帘,雷达感应模组方案,家居智能化交互体验
  15. Android开发k歌软件,安卓电视k歌软件哪个好?
  16. Linux下 安装白鹭(egret)引擎指南
  17. QT5百度地图开发学习——地图显示
  18. 【网络工程师】<软考中级>局域网与城域网
  19. java编程的英文_Java编程基础常见英语词汇总编
  20. 表面粗糙度的基本评定参数是_表面粗糙度最常用评定参数是什么?

热门文章

  1. Android中高级面试必知必会,绝对干货
  2. python flask上传Excel并把Excel的数据导入数据库
  3. AI 智能写情诗、藏头诗
  4. 手把手教你用JAVA实现“语音识别”功能(声音转文字)标贝科技
  5. 局域中找不到Synology (搜索不到NAS服务器)
  6. HaaS云端一体智能语音交互方案
  7. 1.EKL在项目中担当的位置
  8. 并发编程的三大特性——原子性,可见性,有序性
  9. 数据仓库-hive分区表
  10. 词霸天下---140 词根 【-us- = -uti(l)- = -ut- 使用 】