【RAC】将RAC备份集恢复为单实例数据库
一.1 BLOG文档结构图
一.2.1 导读
各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~:
① rac数据库的备份集是如何恢复到单实例的数据库
② ASM文件系统到OS文件系统的转换
③ 一般的备份恢复过程
本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力。
一.2.2 实验环境介绍
源库:11.2.0.1 rac库 2个节点
目标库:11.2.0.1 RHEL6.5
一.2.3 相关参考文章链接
RAC系列
【推荐】 【RAC】如何让Oracle RAC crs_stat 命令显示完整
http://blog.itpub.net/26736162/viewspace-1610957/
【推荐】 一步一步搭建11gR2 rac+dg之结尾篇(十)
http://blog.itpub.net/26736162/viewspace-1328156/
【推荐】 一步一步搭建11gR2 rac+dg之DG SWITCHOVER功能(九)
http://blog.itpub.net/26736162/viewspace-1328050/
一步一步搭建11gR2 rac+dg之配置单实例的DG(八)
http://blog.itpub.net/26736162/viewspace-1298735/
一步一步搭建11gR2 rac+dg之DG 机器配置(七)
http://blog.itpub.net/26736162/viewspace-1298733/
一步一步搭建11gR2 rac+dg之安装rac出现问题解决(六)
http://blog.itpub.net/26736162/viewspace-1297128/
一步一步搭建oracle 11gR2 rac+dg之database安装(五)
http://blog.itpub.net/26736162/viewspace-1297113/
一步一步搭建 oracle 11gR2 rac+dg之grid安装(四)
http://blog.itpub.net/26736162/viewspace-1297101/
【推荐】 一步一步搭建oracle 11gR2 rac+dg之共享磁盘设置(三)
http://blog.itpub.net/26736162/viewspace-1291144/
【推荐】 一步一步搭建oracle 11gR2 rac+dg之环境准备(二)
http://blog.itpub.net/26736162/viewspace-1290416/
【推荐】 一步一步搭建 oracle 11gR2 rac + dg 之前传 (一)
http://blog.itpub.net/26736162/viewspace-1290405/
RMAN 备份恢复系列
【推荐】 【RMAN】rm -rf 误操作的恢复过程
http://blog.itpub.net/26736162/viewspace-1623938/
【推荐】 【RMAN】利用备份片还原数据库(中)-附加
http://blog.itpub.net/26736162/viewspace-1621938/
【推荐】 【RMAN】利用备份片还原数据库(下)
http://blog.itpub.net/26736162/viewspace-1621672/
【推荐】 【RMAN】利用备份片还原数据库(中)
http://blog.itpub.net/26736162/viewspace-1621661/
【推荐】 【RMAN】利用备份片还原数据库(上)
http://blog.itpub.net/26736162/viewspace-1621581/
【推荐】 【RMAN】RMAN跨版本恢复(下)
http://blog.itpub.net/26736162/viewspace-1562583/
【推荐】 Oracle 组件 系列 小结
http://blog.itpub.net/26736162/viewspace-1562441/
【推荐】 【RMAN】RMAN跨版本恢复(中)
http://blog.itpub.net/26736162/viewspace-1561352/
【推荐】 【RMAN】RMAN跨版本恢复(上)
http://blog.itpub.net/26736162/viewspace-1561185/
【推荐】 关于在不同版本和平台之间进行还原或复制的常见问题
http://blog.itpub.net/26736162/viewspace-1549041/
【推荐】 undo表空间文件丢失恢复(4)--无备份无recover的情况下恢复
http://blog.itpub.net/26736162/viewspace-1458787/
【推荐】 undo表空间文件丢失恢复(3)--无备份无redo的情况下恢复
http://blog.itpub.net/26736162/viewspace-1458750/
【推荐】 undo表空间文件丢失恢复(2)--无备份有redo的情况下恢复
http://blog.itpub.net/26736162/viewspace-1458663/
【推荐】 undo表空间文件丢失恢复(1)--有备份
http://blog.itpub.net/26736162/viewspace-1458654/
【推荐】 ORACLE 数据泵之NETWORK_LINK
http://blog.itpub.net/26736162/viewspace-1432591/
【推荐】 oracle控制文件在缺失归档日志的情况下的恢复
http://blog.itpub.net/26736162/viewspace-1426552/
【推荐】 ORACLE 只读数据文件备份与恢复
http://blog.itpub.net/26736162/viewspace-1425283/
【推荐】 热备下的测试库搭建
http://blog.itpub.net/26736162/viewspace-1405324/
【推荐】 oracle 异构平台迁移之传输表空间一例
http://blog.itpub.net/26736162/viewspace-1391913/
【推荐】 oracle 传输表空间一例
http://blog.itpub.net/26736162/viewspace-1375260/
【推荐】 利用rman来实现linux平台数据库复制到windows平台数据库
http://blog.itpub.net/26736162/viewspace-1352436/
【推荐】 直接复制数据文件实现linux平台数据库复制到windows平台数据库
http://blog.itpub.net/26736162/viewspace-1352243/
【推荐】 使用OEM复制数据库
http://blog.itpub.net/26736162/viewspace-1224865/
【推荐】 采用DUPLICATE 把asm数据库复制到文件系统
http://blog.itpub.net/26736162/viewspace-1224861/
Duplicating a Database Without Recovery Catalog or Target Connection
http://blog.itpub.net/26736162/viewspace-1223253/
【推荐】 Duplicating an Active Database
http://blog.itpub.net/26736162/viewspace-1223247/
一.2.4 本文简介
本文也可以理解成rac环境下的如何数据库迁移到单实例的数据库环境下,默认目标库已经安装好了同源库一样的数据库版本。
另外注意,BLOG中代码部分需要特别关注的地方我都用黄色背景和红色字体来表示,比如下边的例子中,thread 1的最大归档日志号为33,thread 2的最大归档日志号为43是需要特别关注的地方。
List of Archived Logs in backup set 11
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- ------------------- ---------- ---------
1 32 1621589 2015-05-29 11:09:52 1625242 2015-05-29 11:15:48
1 33 1625242 2015-05-29 11:15:48 1625293 2015-05-29 11:15:58
2 42 1613951 2015-05-29 10:41:18 1625245 2015-05-29 11:15:49
2 43 1625245 2015-05-29 11:15:49 1625253 2015-05-29 11:15:53
一.3 实验部分
一.3.1 实验目标
将11.2.0.1下的rac库备份并恢复到11.2.0.1下的单实例环境下。
一.3.2 源rac库执行
rac库需要执行备份并传递到目标库。
一.3.2.1 查看rac环境及创建测试表
[root@node2 ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
#public
192.168.1.31 node1
192.168.1.32 node2
#vip
192.168.1.131 node1-vip
192.168.1.132 node2-vip
#priv
9.9.9.31 node1-priv
9.9.9.32 node2-priv
#scan
192.168.1.35 cluster-scan
[root@node2 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:79:BA:86
inet addr:192.168.1.32 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:150190 errors:0 dropped:0 overruns:0 frame:0
TX packets:109804 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:205303912 (195.7 MiB) TX bytes:20182601 (19.2 MiB)
eth0:1 Link encap:Ethernet HWaddr 00:0C:29:79:BA:86
inet addr:192.168.1.132 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth1 Link encap:Ethernet HWaddr 00:0C:29:79:BA:90
inet addr:9.9.9.32 Bcast:9.9.9.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:49075 errors:0 dropped:0 overruns:0 frame:0
TX packets:49811 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23642469 (22.5 MiB) TX bytes:31528595 (30.0 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:16496 errors:0 dropped:0 overruns:0 frame:0
TX packets:16496 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:15118447 (14.4 MiB) TX bytes:15118447 (14.4 MiB)
[root@node2 ~]#
[root@node2 ~]# crsstat
Name Type Target State Host
------------------------------ -------------------------- ---------- --------- -------
ora.ARCH.dg ora.diskgroup.type ONLINE ONLINE node1
ora.DATA.dg ora.diskgroup.type ONLINE ONLINE node1
ora.LISTENER.lsnr ora.listener.type ONLINE ONLINE node1
ora.LISTENER_SCAN1.lsnr ora.scan_listener.type ONLINE ONLINE node1
ora.OVDISK.dg ora.diskgroup.type ONLINE ONLINE node1
ora.TEST.dg ora.diskgroup.type ONLINE ONLINE node1
ora.asm ora.asm.type ONLINE ONLINE node1
ora.db.db ora.database.type OFFLINE OFFLINE
ora.eons ora.eons.type ONLINE ONLINE node1
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora.jmrac.db ora.database.type ONLINE ONLINE node1
ora.jmrac.haha.svc ora.service.type ONLINE ONLINE node1
ora.net1.network ora.network.type ONLINE ONLINE node1
ora.node1.ASM1.asm application ONLINE ONLINE node1
ora.node1.LISTENER_NODE1.lsnr application ONLINE ONLINE node1
ora.node1.gsd application OFFLINE OFFLINE
ora.node1.ons application ONLINE ONLINE node1
ora.node1.vip ora.cluster_vip_net1.type ONLINE ONLINE node1
ora.node2.ASM2.asm application ONLINE ONLINE node2
ora.node2.LISTENER_NODE2.lsnr application ONLINE ONLINE node2
ora.node2.gsd application OFFLINE OFFLINE
ora.node2.ons application ONLINE ONLINE node2
ora.node2.vip ora.cluster_vip_net1.type ONLINE ONLINE node2
ora.oc4j ora.oc4j.type OFFLINE OFFLINE
ora.ons ora.ons.type ONLINE ONLINE node1
ora.ora11g.db ora.database.type OFFLINE OFFLINE
ora.registry.acfs ora.registry.acfs.type ONLINE ONLINE node1
ora.scan1.vip ora.scan_vip.type ONLINE ONLINE node1
[root@node2 ~]#
[oracle@node2 ~]$ ORACLE_SID=jmrac2
[oracle@node2 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Fri May 29 10:58:42 2015
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL> show parameter cluster
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean TRUE
cluster_database_instances integer 2
cluster_interconnects string
SQL> show parameter name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
db_name string jmrac
db_unique_name string jmrac
global_names boolean FALSE
instance_name string jmrac2
lock_name_space string
log_file_name_convert string
service_names string HAHA
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 41
Next log sequence to archive 42
Current log sequence 42
SQL>
SQL> create table lhr.rac_to_single_test as select * from dba_objects;
Table created.
SQL> select count(1) from lhr.rac_to_single_test ;
COUNT(1)
----------
72510
SQL>
SQL> set line 9999 pagesize 9999
SQL> col FILE_NAME format a60
SQL> select 'datafile' file_type, file#,name FILE_NAME,status,enabled from v$datafile
2 union all
3 select 'tempfile',file#,name FILE_NAME,status,enabled from v$tempfile
4 union all
5 select 'logfile',group# file#,member FILE_NAME,status,'' from v$logfile
6 union all
7 select 'controlfile', to_number('') ,name FILE_NAME,status,'' from v$controlfile
8 ;
FILE_TYPE FILE# FILE_NAME STATUS ENABLED
----------- ---------- ------------------------------------------------------------ ------- ----------
datafile 1 +DATA/jmrac/datafile/system.268.877470209 SYSTEM READ WRITE
datafile 2 +DATA/jmrac/datafile/sysaux.269.877470211 ONLINE READ WRITE
datafile 3 +DATA/jmrac/datafile/undotbs1.270.877470213 ONLINE READ WRITE
datafile 4 +DATA/jmrac/datafile/users.271.877470213 ONLINE READ WRITE
datafile 5 +DATA/jmrac/datafile/example.279.877470401 ONLINE READ WRITE
datafile 6 +DATA/jmrac/datafile/undotbs2.280.877470779 ONLINE READ WRITE
tempfile 1 +DATA/jmrac/tempfile/temp.278.877470381 ONLINE READ WRITE
logfile 2 +DATA/jmrac/onlinelog/group_2.276.877470349
logfile 2 +DATA/jmrac/onlinelog/group_2.277.877470349
logfile 1 +DATA/jmrac/onlinelog/group_1.274.877470345
logfile 1 +DATA/jmrac/onlinelog/group_1.275.877470345
logfile 3 +DATA/jmrac/onlinelog/group_3.281.877470929
logfile 3 +DATA/jmrac/onlinelog/group_3.282.877470931
logfile 4 +DATA/jmrac/onlinelog/group_4.283.877470937
logfile 4 +DATA/jmrac/onlinelog/group_4.284.877470943
controlfile +DATA/jmrac/controlfile/current.273.877470341
controlfile +DATA/jmrac/controlfile/current.272.877470343
17 rows selected.
SQL>
我后续将在192.168.1.32即rac的第二个节点上执行操作,db_name为jmrac,数据库为归档模式,创建测试表lhr.rac_to_single_test,数据量为72510 行,其中有个crsstat命令,可以参考:【RAC】如何让Oracle RAC crs_stat 命令显示完整