RAC环境备份归档日志和恢复数据库方法
环境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环境备份归档日志和恢复数据库方法相关推荐
- rac 火星舱如何备份oracle_Oracle RAC环境下归档日志的备份
Oracle RAC环境中归档日志的存放方式有如下几种方式: 1. 本地文件系统 2. 集群文件系统 3. 网络文件系统(NFS) 4. 自动存储管理(ASM) 归档日志的存放方式决定了归档日志可以采 ...
- RAC环境备份归档日志和RMAN恢复启动数据库
环境linux Oracle10.2.0.1 归档日志在ASM磁盘组 恢复到原来的RAC节点 根据Oracle的RAC环境的不同,RMAN备份.恢复操作也是不同的.如果RAC环境是建立在CLUSTER ...
- mysql 归档日志恢复_Oracle丢失归档日志文件的数据库恢复方法
使用案例描述:ORDTAB表空间的一个数据文件ordtab03.dbf毁坏,其包含很多ORDERS表的分区,数据文件热备于July 4, 2004,July 4 丢失归档日志文件的数据库恢复方法,从一 ...
- RMAN备份归档日志时的not backed up与catalog数据库结合时的问题
在客户现场实施备份软件时, 客户环境中存在N套primary + 异地DG的Oracle数据库,同时客户要求primary与异地DG都需要备份. primary与异地DG都采用相同的catalog作 ...
- rman备份后为什么要同时备份归档日志
今天在CU上看到有人问一个问题:rman备份后为什么要同时备份归档日志呢,既然rman是物理备份,所有数据已经都备份,再次备份归档日志何用? 思考了一下,认为有必要记录一下为什么要备份归档日志: 其实 ...
- 用Oracle归档日志进行恢复方法
用Oracle归档日志进行恢复方法 联机重演日志没有丢失应使用完成恢复,如联机重演日志损坏,而又没有备份,就只能进行不完全恢复. 一.完全恢复: 1.使用命令"svrmgrl"调用 ...
- Sql Server实用操作-无数据库日志文件恢复数据库两种方法
数据库日志文件的误删或别的原因引起数据库日志的损坏 方法一 1.新建一个同名的数据库 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文件覆盖掉这个新建的数据库 4.再重启s ...
- mysql 二进制日志 解析c++_mysql二进制日志文件恢复数据库
二进制日志的文件的作用 mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句.如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所 ...
- android分享文件分享结果_干货分享丨DM删除归档日志文件的多种方法
上一期我们讲解了DM数据库归档日志的切换,本期我们讲解DM数据库归档日志文件的删除. 本章内容已在如下环境上测试: ①操作系统:中标麒麟7: ②数据库版本:达梦8: 相关关键字:DM数据库.归档日志文 ...
最新文章
- PCLVisualizer可视化类
- php 函数 变量,PHP函数中变量的说明
- caffe 关于Deconvolution的初始化注意事项
- Android 性能优化提示
- STM32 HAL库使用IIC
- go-import下划线的作用
- 求树中某结点的父结点(长子-兄弟表示法)
- jamon java_JAMon监控web工程方法的调用性能
- Ubuntu和windows下修改hosts
- mysql hive的导数_记一次蛋疼的mongo to hive导数过程
- 前端工程师行业现状怎么样?前景如何?
- HDMI接口 PCB布线指南-4层板为例
- Intel CPU的型号漫谈
- 雷达感应智能窗帘,雷达感应模组方案,家居智能化交互体验
- Android开发k歌软件,安卓电视k歌软件哪个好?
- Linux下 安装白鹭(egret)引擎指南
- QT5百度地图开发学习——地图显示
- 【网络工程师】<软考中级>局域网与城域网
- java编程的英文_Java编程基础常见英语词汇总编
- 表面粗糙度的基本评定参数是_表面粗糙度最常用评定参数是什么?
热门文章
- Android中高级面试必知必会,绝对干货
- python flask上传Excel并把Excel的数据导入数据库
- AI 智能写情诗、藏头诗
- 手把手教你用JAVA实现“语音识别”功能(声音转文字)标贝科技
- 局域中找不到Synology (搜索不到NAS服务器)
- HaaS云端一体智能语音交互方案
- 1.EKL在项目中担当的位置
- 并发编程的三大特性——原子性,可见性,有序性
- 数据仓库-hive分区表
- 词霸天下---140 词根 【-us- = -uti(l)- = -ut- 使用 】