WINDOWS下的程序员出身,偶尔也写一些linux平台下小程序, 后转行数据库行业,专注于ORACLE和DB2的运维和优化。 同时也是ios移动开发者。欢迎志同道合的朋友一起研究技术。 数据库技术交流群:58308065,23618606
全部博文(599)
分类: Oracle
2009-12-15 22:30:23
RAC环境的备份、恢复和普通数据库的备份、恢复是有一些区别的。
RMAN备份恢复——RAC环境数据库的备份(一):http://yangtingkun.itpub.net/post/468/285260
RMAN备份恢复——RAC环境数据库的备份(二):http://yangtingkun.itpub.net/post/468/287076
RMAN备份恢复——RAC环境数据库的备份(三):http://yangtingkun.itpub.net/post/468/287617
RMAN备份恢复——RAC环境数据库的备份(四):http://yangtingkun.itpub.net/post/468/288295
RMAN备份恢复——RAC环境数据库的备份(五):http://yangtingkun.itpub.net/post/468/288557
RMAN备份恢复——RAC环境数据库的备份(六):http://yangtingkun.itpub.net/post/468/288973
RMAN备份恢复——RAC环境数据库的备份(七):http://yangtingkun.itpub.net/post/468/289665
RMAN备份恢复——RAC环境数据库的备份(八):http://yangtingkun.itpub.net/post/468/290599
RMAN备份恢复——RAC环境数据库的备份(九):http://yangtingkun.itpub.net/post/468/291018
RMAN备份恢复——RAC环境数据库的备份(十):
http://pub.itpub.net/post/468/291415这个区别主要体现在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=+DISK/testrac/
log_archive_dest_10 string
$ rman target /
恢复管理器: Release 10.2.0.3.0 - Production on 星期三 4月 25 17:23:01 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: TESTRAC (DBID=4291216984)
RMAN> configure channel device type disk format '/data1/backup/%U';
使用目标数据库控制文件替代恢复目录旧的 RMAN 配置参数:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/data/backup/testrac/%U';新的 RMAN 配置参数:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/data1/backup/%U';已成功存储新的 RMAN 配置参数
RMAN> backup database plus archivelog delete all input;
启动 backup 于 25-4月 -07当前日志已存档分配的通道: ORA_DISK_1通道 ORA_DISK_1: sid=312 实例=testrac1 devtype=DISK通道 ORA_DISK_1: 正在启动存档日志备份集通道 ORA_DISK_1: 正在指定备份集中的存档日志输入存档日志线程 =1 序列 =134 记录 ID=220 时间戳=620832208输入存档日志线程 =1 序列 =135 记录 ID=221 时间戳=620846651输入存档日志线程 =2 序列 =56 记录 ID=219 时间戳=620831921输入存档日志线程 =2 序列 =57 记录 ID=222 时间戳=620846652通道 ORA_DISK_1: 正在启动段 1 于 25-4月 -07通道 ORA_DISK_1: 已完成段 1 于 25-4月 -07段句柄=/data1/backup/08ig2nhv_1_1 标记=TAG20070425T172413 注释=NONE通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:07通道 ORA_DISK_1: 正在删除存档日志存档日志文件名 =+DISK/testrac/1_134_618591128.dbf 记录 ID=220 时间戳 =620832208存档日志文件名 =+DISK/testrac/1_135_618591128.dbf 记录 ID=221 时间戳 =620846651存档日志文件名 =+DISK/testrac/2_56_618591128.dbf 记录 ID=219 时间戳 =620831921存档日志文件名 =+DISK/testrac/2_57_618591128.dbf 记录 ID=222 时间戳 =620846652完成 backup 于 25-4月 -07
启动 backup 于 25-4月 -07使用通道 ORA_DISK_1通道 ORA_DISK_1: 启动全部数据文件备份集通道 ORA_DISK_1: 正在指定备份集中的数据文件输入数据文件 fno=00006 name=+DISK/testrac/datafile/zhejiang01.dbf输入数据文件 fno=00007 name=+DISK/testrac/datafile/zhejiang02.dbf输入数据文件 fno=00009 name=+DISK/testrac/datafile/zhejiang03.dbf输入数据文件 fno=00011 name=+DISK/testrac/datafile/zhejiang04.dbf输入数据文件 fno=00012 name=+DISK/testrac/datafile/zhejiang05.dbf输入数据文件 fno=00014 name=+DISK/testrac/datafile/zhejiang06.dbf输入数据文件 fno=00008 name=+DISK/testrac/datafile/ndmain01.dbf输入数据文件 fno=00002 name=+DISK/testrac/datafile/undotbs1.263.618591197输入数据文件 fno=00004 name=+DISK/testrac/datafile/undotbs2.266.618591249输入数据文件 fno=00010 name=+DISK/testrac/datafile/ndindex01.dbf输入数据文件 fno=00013 name=+DISK/testrac/datafile/lt_index_ts01.dbf输入数据文件 fno=00001 name=+DISK/testrac/datafile/system.262.618591167输入数据文件 fno=00003 name=+DISK/testrac/datafile/sysaux.264.618591225输入数据文件 fno=00005 name=+DISK/testrac/datafile/users.267.618591279通道 ORA_DISK_1: 正在启动段 1 于 25-4月 -07通道 ORA_DISK_1: 已完成段 1 于 25-4月 -07段句柄=/data1/backup/09ig2ni9_1_1 标记=TAG20070425T172424 注释=NONE通道 ORA_DISK_1: 备份集已完成, 经过时间:00:15:05通道 ORA_DISK_1: 启动全部数据文件备份集通道 ORA_DISK_1: 正在指定备份集中的数据文件备份集中包括当前控制文件在备份集中包含当前的 SPFILE通道 ORA_DISK_1: 正在启动段 1 于 25-4月 -07通道 ORA_DISK_1: 已完成段 1 于 25-4月 -07段句柄=/data1/backup/0aig2oej_1_1 标记=TAG20070425T172424 注释=NONE通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03完成 backup 于 25-4月 -07
启动 backup 于 25-4月 -07当前日志已存档使用通道 ORA_DISK_1通道 ORA_DISK_1: 正在启动存档日志备份集通道 ORA_DISK_1: 正在指定备份集中的存档日志输入存档日志线程 =1 序列 =136 记录 ID=223 时间戳=620847576输入存档日志线程 =2 序列 =58 记录 ID=224 时间戳=620847576通道 ORA_DISK_1: 正在启动段 1 于 25-4月 -07通道 ORA_DISK_1: 已完成段 1 于 25-4月 -07段句柄=/data1/backup/0big2oes_1_1 标记=TAG20070425T173940 注释=NONE通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02通道 ORA_DISK_1: 正在删除存档日志存档日志文件名 =+DISK/testrac/1_136_618591128.dbf 记录 ID=223 时间戳 =620847576存档日志文件名 =+DISK/testrac/2_58_618591128.dbf 记录 ID=224 时间戳 =620847576完成 backup 于 25-4月 -07
数据库的恢复也很简单,先修改一些数据:
SQL> CONN TEST/TEST已连接。
SQL> SELECT COUNT(*) FROM T;
COUNT(*)
----------
0
SQL> INSERT INTO T SELECT ROWNUM FROM DBA_OBJECTS;
已创建51880行。
SQL> COMMIT;
提交完成。
下面开始还原和恢复:
$ rman target /
恢复管理器: Release 10.2.0.3.0 - Production on 星期四 4月 26 11:21:29 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到目标数据库 (未启动)
RMAN> startup mount
Oracle 实例已启动数据库已装载
系统全局区域总计 2147483648 字节
Fixed Size 2031480 字节
Variable Size 318767240 字节
Database Buffers 1811939328 字节
Redo Buffers 14745600 字节
RMAN> restore database;
启动 restore 于 26-4月 -07使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复数据文件备份集通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件正将数据文件00001恢复到+DISK/testrac/datafile/system.262.618591167正将数据文件00002恢复到+DISK/testrac/datafile/undotbs1.263.618591197正将数据文件00003恢复到+DISK/testrac/datafile/sysaux.264.618591225正将数据文件00004恢复到+DISK/testrac/datafile/undotbs2.266.618591249正将数据文件00005恢复到+DISK/testrac/datafile/users.267.618591279正将数据文件00006恢复到+DISK/testrac/datafile/zhejiang01.dbf正将数据文件00007恢复到+DISK/testrac/datafile/zhejiang02.dbf正将数据文件00008恢复到+DISK/testrac/datafile/ndmain01.dbf正将数据文件00009恢复到+DISK/testrac/datafile/zhejiang03.dbf正将数据文件00010恢复到+DISK/testrac/datafile/ndindex01.dbf正将数据文件00011恢复到+DISK/testrac/datafile/zhejiang04.dbf正将数据文件00012恢复到+DISK/testrac/datafile/zhejiang05.dbf正将数据文件00013恢复到+DISK/testrac/datafile/lt_index_ts01.dbf正将数据文件00014恢复到+DISK/testrac/datafile/zhejiang06.dbf通道 ORA_DISK_1: 正在读取备份段 /data1/backup/09ig2ni9_1_1通道 ORA_DISK_1: 已恢复备份段 1段句柄 = /data1/backup/09ig2ni9_1_1 标记 = TAG20070425T172424通道 ORA_DISK_1: 恢复完成, 用时: 00:20:26完成 restore 于 26-4月 -07
RMAN> restore archivelog sequence between 134 and 136 thread 1;
启动 restore 于 26-4月 -07使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动到默认目标的存档日志恢复通道 ORA_DISK_1: 正在恢复存档日志存档日志线程 =1 序列=134通道 ORA_DISK_1: 正在恢复存档日志存档日志线程 =1 序列=135通道 ORA_DISK_1: 正在读取备份段 /data1/backup/08ig2nhv_1_1通道 ORA_DISK_1: 已恢复备份段 1段句柄 = /data1/backup/08ig2nhv_1_1 标记 = TAG20070425T172413通道 ORA_DISK_1: 恢复完成, 用时: 00:00:07通道 ORA_DISK_1: 正在启动到默认目标的存档日志恢复通道 ORA_DISK_1: 正在恢复存档日志存档日志线程 =1 序列=136通道 ORA_DISK_1: 正在读取备份段 /data1/backup/0big2oes_1_1通道 ORA_DISK_1: 已恢复备份段 1段句柄 = /data1/backup/0big2oes_1_1 标记 = TAG20070425T173940通道 ORA_DISK_1: 恢复完成, 用时: 00:00:01完成 restore 于 26-4月 -07
RMAN> restore archivelog sequence between 56 and 58 thread 2;
启动 restore 于 26-4月 -07使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动到默认目标的存档日志恢复通道 ORA_DISK_1: 正在恢复存档日志存档日志线程 =2 序列=56通道 ORA_DISK_1: 正在恢复存档日志存档日志线程 =2 序列=57通道 ORA_DISK_1: 正在读取备份段 /data1/backup/08ig2nhv_1_1通道 ORA_DISK_1: 已恢复备份段 1段句柄 = /data1/backup/08ig2nhv_1_1 标记 = TAG20070425T172413通道 ORA_DISK_1: 恢复完成, 用时: 00:00:03通道 ORA_DISK_1: 正在启动到默认目标的存档日志恢复通道 ORA_DISK_1: 正在恢复存档日志存档日志线程 =2 序列=58通道 ORA_DISK_1: 正在读取备份段 /data1/backup/0big2oes_1_1通道 ORA_DISK_1: 已恢复备份段 1段句柄 = /data1/backup/0big2oes_1_1 标记 = TAG20070425T173940通道 ORA_DISK_1: 恢复完成, 用时: 00:00:01完成 restore 于 26-4月 -07
RMAN> recover database;
启动 recover 于 26-4月 -07使用通道 ORA_DISK_1
正在开始介质的恢复介质恢复完成, 用时: 00:00:38
完成 recover 于 26-4月 -07
RMAN> alter database open;
数据库已打开
检查恢复是否已经完成:
$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.3.0 - Production on 星期四 4月 26 13:29:14 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 2147483648 bytes
Fixed Size 2031480 bytes
Variable Size 318767240 bytes
Database Buffers 1811939328 bytes
Redo Buffers 14745600 bytes数据库装载完毕。数据库已经打开。
SQL> CONN TEST/TEST已连接。
SQL> SELECT COUNT(*) FROM T;
COUNT(*)
----------
51880