本节中将演示下rac环境下的数据的备份和完全恢复,rac的备份和恢复同单实例数据库对比,只是在处理归档日志上有些扩展,一般来讲,可以将归档日志存储在ASM磁盘组中,或者存储在集群文件系统上,NFS以及本地文件系统上,当归档日志存储在ASM,集群文件系统或者NFS上的时候,rac备份和恢复和单实例下的操作基本一致,下面的场景归档日志存储在ASM上!

一:查看rac归档的设置

[oracle@rac1 ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.5.0 - Production on Mon Dec 12 20:09:56 2011
Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

SQL> conn /as sysdba
Connected.
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            +FRA
Oldest online log sequence     38
Next log sequence to archive   39
Current log sequence           39
SQL> alter system switch logfile;
System altered.

SQL> conn sys/123456@racdb2 as sysdba
Connected.
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            +FRA
Oldest online log sequence     14
Next log sequence to archive   15
Current log sequence           15
SQL> alter system switch logfile;
System altered.

二:查看ASM磁盘组中的归档日志

[oracle@rac1 ~]$ export ORACLE_SID=+ASM1
[oracle@rac1 ~]$ asmcmd
ASMCMD> cd FRA
ASMCMD> ls
RACDB/
ASMCMD> cd racdb
ASMCMD> ls 
ARCHIVELOG/
BACKUPSET/
CONTROLFILE/
ONLINELOG/
ASMCMD> ls archivelog
2011_12_12/
ASMCMD> ls archivelog/2011_12_12/
thread_1_seq_39.261.769724057
thread_2_seq_15.265.769695387

三:使用rman备份数据库

[oracle@rac1 ~]$ rman target /
Recovery Manager: Release 10.2.0.5.0 - Production on Mon Dec 12 20:17:53 2011
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
connected to target database: RACDB (DBID=766822397)
RMAN> delete noprompt backupset;
RMAN> delete noprompt archivelog all;

RMAN> run {
2> allocate channel c1 device type disk;
3> allocate channel c2 device type disk;
4> backup incremental level 0
5> tag 'racdb_bak_20121212'
6> format '/home/oracle/backup/racdb%U'
7> database plus archivelog
8> delete all input;
9> release channel c1;
10> release channel c2;
11> }

RMAN> list backup of database summary;

List of Backups
===============
Key     TY LV S Device Type Completion Time     #Pieces #Copies Compressed Tag
------- -- -- - ----------- ------------------- ------- ------- ---------- ---
7       B  0  A DISK        2011-12-12 20:34:22 1       1       NO         RACDB_BAK_20121212
8       B  0  A DISK        2011-12-12 20:34:22 1       1       NO         RACDB_BAK_20121212

四:创建基础数据

[oracle@rac1 ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.5.0 - Production on Mon Dec 12 20:57:01 2011
Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.
SQL> conn /as sysdba
Connected.

SQL> create user test identified by hr account unlock
  2  default tablespace users;
User created.

SQL> grant connect,resource to test;
Grant succeeded.

SQL> conn test/hr@racdb2
Connected.
SQL> show user;
USER is "TEST"

SQL> create table t1 (a number);
Table created.

SQL> insert into t1 values (1);
1 row created.

SQL> commit;
Commit complete.

SQL> conn /as sysdba
Connected.
SQL> select file_name from dba_data_files where tablespace_name='USERS';

FILE_NAME
----------------------------------------
+DATA/racdb/datafile/users.259.769205541

五:删除users表空间数据文件

[oracle@rac2 ~]$ export ORACLE_SID=+ASM2
[oracle@rac2 ~]$ asmcmd rm -rf +DATA/RACDB/datafile/USERS.259.769205541
ORA-15032: not all alterations performed
ORA-15028: ASM file '+DATA/RACDB/datafile/USERS.259.769205541' not dropped; currently being accessed (DBD ERROR: OCIStmtExecute)
上面的错误,据说是oracle的bug,很遗憾的是在10.2.0.5的版本中,这个问题没能解决,只能停止rac实例后删除数据文件

[oracle@rac2 ~]$ srvctl stop database -d racdb
[oracle@rac2 ~]$ srvctl status database -d racdb
Instance racdb1 is not running on node rac1
Instance racdb2 is not running on node rac2
[oracle@rac2 ~]$ asmcmd rm -rf +DATA/RACDB/datafile/USERS.259.769205541

六:进行恢复
在接下来的启动数据库操作将会失败,日志里面明显的告诉我们4号数据文件不存在

[oracle@rac2 ~]$ srvctl  start database -d racdb
PRKP-1001 : Error starting instance racdb1 on node rac1
CRS-0215: Could not start resource 'ora.racdb.racdb1.inst'.
PRKP-1001 : Error starting instance racdb2 on node rac2
CRS-0215: Could not start resource 'ora.racdb.racdb2.inst'.

[oracle@rac1 ~]$ tail -f /u01/app/oracle/admin/racdb/bdump/alert_racdb1.log
Errors in file /u01/app/oracle/admin/racdb/bdump/racdb1_dbw0_18977.trc:
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '+DATA/racdb/datafile/users.259.769205541'
ORA-17503: ksfdopn:2 Failed to open file +DATA/racdb/datafile/users.259.769205541
ORA-15012: ASM file '+DATA/racdb/datafile/users.259.769205541' does not exist
ORA-1157 signalled during: ALTER DATABASE OPEN...
Mon Dec 12 21:31:41 CST 2011

Shutting down instance (abort)
License high water mark = 1
Instance terminated by USER, pid = 19192

将数据库启动到mount状态,利用rman进行还原和恢复
[oracle@rac2 ~]$ srvctl start database -d racdb -o mount

[oracle@rac1 ~]$ rman target /
Recovery Manager: Release 10.2.0.5.0 - Production on Mon Dec 12 21:33:17 2011
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
connected to target database: RACDB (DBID=766822397, not open)

RMAN> restore datafile 4;
Starting restore at 2011-12-12 21:34:08
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=145 instance=racdb1 devtype=DISK

channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00004 to +DATA/racdb/datafile/users.259.769205541
channel ORA_DISK_1: reading from backup piece /home/oracle/backup/racdb07mu24a1_1_1
channel ORA_DISK_1: restored backup piece 1
piece handle=/home/oracle/backup/racdb07mu24a1_1_1 tag=RACDB_BAK_20121212
channel ORA_DISK_1: restore complete, elapsed time: 00:00:04
Finished restore at 2011-12-12 21:34:14

RMAN> recover datafile 4;
Starting recover at 2011-12-12 21:34:41
using channel ORA_DISK_1

starting media recovery

archive log thread 1 sequence 42 is already on disk as file +FRA/racdb/archivelog/2011_12_12/thread_1_seq_42.265.769726867
archive log thread 2 sequence 18 is already on disk as file +FRA/racdb/archivelog/2011_12_12/thread_2_seq_18.261.769725271
channel ORA_DISK_1: starting archive log restore to default destination
channel ORA_DISK_1: restoring archive log
archive log thread=1 sequence=41
channel ORA_DISK_1: reading from backup piece /home/oracle/backup/racdb0bmu24qo_1_1
channel ORA_DISK_1: restored backup piece 1
piece handle=/home/oracle/backup/racdb0bmu24qo_1_1 tag=RACDB_BAK_20121212
channel ORA_DISK_1: restore complete, elapsed time: 00:00:02
archive log filename=+FRA/racdb/archivelog/2011_12_12/thread_1_seq_41.266.769728883 thread=1 sequence=41
channel ORA_DISK_1: starting archive log restore to default destination
channel ORA_DISK_1: restoring archive log
archive log thread=2 sequence=17
channel ORA_DISK_1: reading from backup piece /home/oracle/backup/racdb0cmu24qo_1_1
channel ORA_DISK_1: restored backup piece 1
piece handle=/home/oracle/backup/racdb0cmu24qo_1_1 tag=RACDB_BAK_20121212
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
archive log filename=+FRA/racdb/archivelog/2011_12_12/thread_2_seq_17.262.769728885 thread=2 sequence=17
media recovery complete, elapsed time: 00:00:01
Finished recover at 2011-12-12 21:34:46

七:验证

[oracle@rac2 ~]$ srvctl stop database -d racdb -o immediate
[oracle@rac2 ~]$ srvctl start database -d racdb

[oracle@rac2 ~]$ srvctl status database -d racdb
Instance racdb1 is running on node rac1
Instance racdb2 is running on node rac2

[oracle@rac2 ~]$ sqlplus sys/123456@racdb2 as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Mon Dec 12 13:37:07 2011
Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> select * from test.t1;

A
----------
         1

八:表决盘和ocr的备份

[oracle@rac1 ~]$ crsctl query css votedisk
 0.     0    /dev/raw/raw7
 1.     0    /dev/raw/raw8
 2.     0    /dev/raw/raw9

located 3 votedisk(s).

[oracle@rac1 ~]$ dd if=/dev/raw/raw7 of=vote.dbf
587744+0 records in
587744+0 records out
[oracle@rac1 ~]$ file vote.dbf
vote.dbf: binary Computer Graphics Metafile

[oracle@rac1 ~]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          2
         Total space (kbytes)     :     293624
         Used space (kbytes)      :       3824
         Available space (kbytes) :     289800
         ID                       :    7468264
         Device/File Name         : /dev/raw/raw5
                                    Device/File integrity check succeeded
         Device/File Name         : /dev/raw/raw6
                                    Device/File integrity check succeeded

Cluster registry integrity check succeeded
         Cluster registry integrity check succeeded

导出ocr,需要使用root用户
[oracle@rac1 ~]$  /u01/app/oracle/product/10.2.0/crs_1/bin/ocrconfig -export 1.ocr
PROT-20: Insufficient permission to proceed. Require privileged user
[root@rac1 ~]# /u01/app/oracle/product/10.2.0/crs_1/bin/ocrconfig -export 1.ocr
[root@rac1 ~]# file 1.ocr
1.ocr: data

RAC环境下的备份与恢复(一)相关推荐

  1. RAC环境下的备份与恢复(四)

    上一讲介绍了rac环境下,当归档日志存储在本地文件系统时的备份与恢复操作,比较麻烦的是需要同步rac各个节点的归档日志,这无疑给备份和恢复操作增加了难度和需要的时间,因而本节中介绍使用多路归档的方式来 ...

  2. RAC环境下的备份与恢复(二)

    本节将简要的介绍下,rac环境下将归档日志存放到集群文件系统场景下的备份和恢复操作,集群文件系统采用oracle的ocfs2; 一:环境介绍 节点1 IP:192.168.1.41/24 操作系统:c ...

  3. RAC环境下的备份与恢复(五)

    在前面的几个章节中,简要的介绍了在rac环境下对数据库执行备份和完全恢复,rac环境同单实例环境相比,除了需要备份控制文件,日志文件,数据文件和参数文件外,还需要对ocr和表决盘进行日常备份!下面来简 ...

  4. Oracle RAC环境下如何更新patch(Rolling Patch)

    Oracle RAC数据库环境与单实例数据库环境有很多共性,也有很多异性.对于数据库补丁的更新同样如此,都可以通过opatch来完成.但RAC环境的补丁更新有几种不同的更新方式,甚至于可以在零停机的情 ...

  5. Oracle RAC 环境下的连接管理(转) --- 防止原文连接失效

    崔华老师的文章!!! 这篇文章详细介绍了Oracle RAC环境下的连接管理,分别介绍了什么是 Connect Time Load Balancing.Runtime Connection Load ...

  6. Oracle RAC 环境下的连接管理

    转自 http://www.oracle.com/technetwork/cn/articles/database-performance/oracle-rac-connection-mgmt-165 ...

  7. RAC环境下创建本地数据文件的解决方法

    引用收藏:http://blog.itpub.net/501889/viewspace-1083311/ 同事不小心,在RAC环境下创建了本地数据文件,这个肯定会出问题的,节点2不能访问此数据文件.其 ...

  8. Oracle-11g-R2 RAC 环境下 GPnP Profile 文件

    GPnP Profile 文件的作用: GPnP Profile 文件是一个保存于 $GRID_HOME/gpnp/<hostname>/profiles/peer 目录下的小型 XML ...

  9. Oracle RAC环境下如何定位并杀掉最终阻塞的会话

    ‍ ‍ 导读:Oracle RAC环境下定位并杀掉最终阻塞的会话,本文通过一个测试demo来具体介绍. 实验环境: Oracle RAC 11.2.0.4 (2节点) 1.模拟故障:会话被级联阻塞 2 ...

最新文章

  1. 实践App内存优化:如何有序地做内存分析与优化
  2. git gui怎么拉取项目代码_Git可视化极简易教程 — Git GUI使用方法
  3. 多角度分析平台即服务?PaaS的类型和用例
  4. 双系统重装win7/Xp后如何恢复ubuntu引导--转载
  5. mysql创建表时报150_Mysql创建表时报错error150
  6. 从零开始学前端:CSS引入 --- 今天你学习了吗?(CSS:Day07)
  7. java开发实战经典学习笔记第2部分
  8. [转]CSS3 Media Query实现响应布局
  9. 电脑怎么找到tomcat端口_更换内存条的时候我怎么找到自己电脑配置的详细信息...
  10. 安装Ubuntu系统时硬盘分区最合理的方法
  11. UK EU 码对照表,USA EURO SIZE码对照表,国外衣服码对照表
  12. 微x模块怎么导入主题_WESHOP | 基于微服务的小程序商城系统
  13. 数据治理与数据安全治理的区别
  14. PDF文件简介及PDF文档加密方法
  15. 表格查询(去除重复数据)
  16. 计算机启动突然断电,电脑启动运行过程主机突然断电怎么办
  17. linux设备驱动归纳总结(六):3.中断下半部之tasklet
  18. 马平福为华侨创作中国书法艺术品受好评
  19. vue开发环境、正式环境的配置及原理
  20. gog百度百科_游戏百科,gog游戏百科

热门文章

  1. 《剑指offer》分解让复杂问题更简单
  2. 写给MongoDB开发者的50条建议Tip25
  3. SAP卢东明:大数据同样需要小身材
  4. python 去掉字符串的
  5. java课程第七天,匿名内部类以及异常处理
  6. Android开发:第五日番外——过时的函数和被横杠的函数
  7. 关于交换机SVI(转)
  8. xpwin7下的CMD命令
  9. freemarker中boolean变量的读取
  10. 小猿圈之Linux初学者掌握的基本命令