我申请这个blog是为了督促自己,把自己平时的一些想法和思考结果保留下来。 本博客所有内容均为原创,如有转载请注明作者和出处

利用RMAN建立10GRAC数据库的DATA GUARD

上一篇 / 下一篇  2007-11-07 00:00:00 / 个人分类:ORACLE

本文介绍如何使用RMAN建立10G的RAC环境的DATA GUARD

ITPUB个人空间bYha%vt N.wC

由于环境所限,DATA GUARDSTANDBY数据库是一个单实例数据库。

首先进行准备工作,在STANDBY数据库服务器上安装Oracle10201软件,然后打上10203的补丁。

下面利用RMANRAC环境进行备份:

RMAN> run
+@{-N;r#^ _ U6x02> {
,^.{2D%|;Zr/FPQ03> allocate channel c1 device type disk format '/data1/backup/%U' connect sys/test@testrac1;ITPUB个人空间^&g#]WW n?-Bf
4> allocate channel c2 device type disk format '/data1/backup/%U' connect sys/test@testrac2;ITPUB个人空间q;puR2UyW
5> backup database plus archivelog delete all input;
Lx#f,[-@.Mxh06> }

释放的通道: ORA_DISK_1释放的通道: ORA_DISK_2分配的通道: c1通道 c1: sid=311 实例=testrac1 devtype=DISK

分配的通道: c2通道 c2: sid=311 实例=testrac2 devtype=DISK

启动 backup 30-6 -07当前日志已存档通道 c1: 正在启动存档日志备份集通道 c1: 正在指定备份集中的存档日志输入存档日志线程 =1 序列 =551 记录 ID=1869 时间戳=626640738输入存档日志线程 =1 序列 =552 记录 ID=1872 时间戳=626641030通道 c1: 正在启动段 1 30-6 -07通道 c2: 正在启动存档日志备份集通道 c2: 正在指定备份集中的存档日志输入存档日志线程 =2 序列 =328 记录 ID=1871 时间戳=626640739输入存档日志线程 =2 序列 =329 记录 ID=1874 时间戳=626641032通道 c2: 正在启动段 1 30-6 -07通道 c1: 已完成段 1 30-6 -07段句柄=/data1/backup/u9ilji10_1_1 标记=TAG20070630T185712 注释=NONE通道 c1: 备份集已完成, 经过时间:00:00:01通道 c1: 正在删除存档日志存档日志文件名 =/data1/archivelog/1_551_626291662.dbf 记录 ID=1869 时间戳 =626640738存档日志文件名 =/data1/archivelog/1_551_626291662.dbf 记录 ID=1870 时间戳 =626640633存档日志文件名 =/data1/archivelog/1_552_626291662.dbf 记录 ID=1872 时间戳 =626641030存档日志文件名 =/data1/archivelog/1_552_626291662.dbf 记录 ID=1873 时间戳 =626640924通道 c2: 已完成段 1 30-6 -07段句柄=/data1/backup/uailji49_1_1 标记=TAG20070630T185712 注释=NONE通道 c2: 备份集已完成, 经过时间:00:00:01通道 c2: 正在删除存档日志存档日志文件名 =/data1/archivelog/2_328_626291662.dbf 记录 ID=1871 时间戳 =626640739存档日志文件名 =/data1/archivelog/2_329_626291662.dbf 记录 ID=1874 时间戳 =626641032完成 backup 30-6 -07

启动 backup 30-6 -07通道 c1: 启动全部数据文件备份集通道 c1: 正在指定备份集中的数据文件输入数据文件 fno=00006 name=+DISK/testrac/datafile/zhejiang01.dbf输入数据文件 fno=00009 name=+DISK/testrac/datafile/zhejiang03.dbf输入数据文件 fno=00012 name=+DISK/testrac/datafile/zhejiang05.dbf输入数据文件 fno=00008 name=+DISK/testrac/datafile/ndmain01.dbf输入数据文件 fno=00002 name=+DISK/testrac/datafile/undotbs1.263.618591197输入数据文件 fno=00010 name=+DISK/testrac/datafile/ndindex01.dbf输入数据文件 fno=00001 name=+DISK/testrac/datafile/system.262.618591167输入数据文件 fno=00005 name=+DISK/testrac/datafile/users.267.618591279通道 c1: 正在启动段 1 30-6 -07通道 c2: 启动全部数据文件备份集通道 c2: 正在指定备份集中的数据文件输入数据文件 fno=00007 name=+DISK/testrac/datafile/zhejiang02.dbf输入数据文件 fno=00011 name=+DISK/testrac/datafile/zhejiang04.dbf输入数据文件 fno=00014 name=+DISK/testrac/datafile/zhejiang06.dbf输入数据文件 fno=00015 name=+DISK/testrac/datafile/gpo.367.624623443输入数据文件 fno=00004 name=+DISK/testrac/datafile/undotbs2.266.618591249输入数据文件 fno=00013 name=+DISK/testrac/datafile/lt_index_ts01.dbf输入数据文件 fno=00003 name=+DISK/testrac/datafile/sysaux.264.618591225通道 c2: 正在启动段 1 30-6 -07通道 c2: 已完成段 1 30-6 -07段句柄=/data1/backup/ucilji4d_1_1 标记=TAG20070630T185716 注释=NONE通道 c2: 备份集已完成, 经过时间:00:12:56通道 c1: 已完成段 1 30-6 -07段句柄=/data1/backup/ubilji13_1_1 标记=TAG20070630T185716 注释=NONE通道 c1: 备份集已完成, 经过时间:00:17:32完成 backup 30-6 -07

启动 backup 30-6 -07当前日志已存档通道 c1: 正在启动存档日志备份集通道 c1: 正在指定备份集中的存档日志输入存档日志线程 =1 序列 =553 记录 ID=1875 时间戳=626642093通道 c1: 正在启动段 1 30-6 -07通道 c2: 正在启动存档日志备份集通道 c2: 正在指定备份集中的存档日志输入存档日志线程 =2 序列 =330 记录 ID=1877 时间戳=626642093通道 c2: 正在启动段 1 30-6 -07通道 c1: 已完成段 1 30-6 -07段句柄=/data1/backup/udiljj28_1_1 标记=TAG20070630T191457 注释=NONE通道 c1: 备份集已完成, 经过时间:00:00:01通道 c1: 正在删除存档日志存档日志文件名 =/data1/archivelog/1_553_626291662.dbf 记录 ID=1875 时间戳 =626642093存档日志文件名 =/data1/archivelog/1_553_626291662.dbf 记录 ID=1876 时间戳 =626641988通道 c2: 已完成段 1 30-6 -07段句柄=/data1/backup/ueiljj5i_1_1 标记=TAG20070630T191457 注释=NONE通道 c2: 备份集已完成, 经过时间:00:00:01通道 c2: 正在删除存档日志存档日志文件名 =/data1/archivelog/2_330_626291662.dbf 记录 ID=1877 时间戳 =626642093完成 backup 30-6 -07

启动 Control File and SPFILE Autobackup 30-6 -07 handle=+DISK/testrac/autobackup/2007_06_30/s_626641994.377.626641997 comment=NONE完成 Control File and SPFILE Autobackup 30-6 -07释放的通道: c1释放的通道: c2

还可以利用RMAN备份STANDBY CONTROLFILE

RMAN> run
.Tj\oV$c#]9^02> {
.r})m~3I0b*l03> allocate channel c1 device type disk format '/data1/backup/%U';ITPUB个人空间-@9{g$`;A3{
4> backup current controlfile for standby;ITPUB个人空间Jq+{V@.EH
5> }

分配的通道: c1通道 c1: sid=295 实例=testrac2 devtype=DISK

启动 backup 30-6 -07通道 c1: 启动全部数据文件备份集通道 c1: 正在指定备份集中的数据文件备份集中包括备用控制文件通道 c1: 正在启动段 1 30-6 -07通道 c1: 已完成段 1 30-6 -07段句柄=/data1/backup/ugilk27m_1_1 标记=TAG20070630T233206 注释=NONE通道 c1: 备份集已完成, 经过时间:00:00:02完成 backup 30-6 -07

启动 Control File and SPFILE Autobackup 30-6 -07 handle=+DISK/testrac/autobackup/2007_06_30/s_626657528.388.626657531 comment=NONE完成 Control File and SPFILE Autobackup 30-6 -07释放的通道: c1

然后通过ftp将备份文件拷贝到STANDBY数据库的等同位置上。拷贝密码文件,根据STANDBY数据库的DB_UNIQUE_NAME,对其重命名。

设置PRIMARY数据库的FORCE LOGGING:

SQL> ALTER DATABASE FORCE LOGGING;

数据库已更改。

配置主库的初始化参数

SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(testrac,testrac_standby)';

系统已更改。

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/data1/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=testrac';

系统已更改。

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=testrac_standby LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=testrac_standby';

系统已更改。

SQL> ALTER SYSTEM SET FAL_SERVER=testrac_standby;

系统已更改。

SQL> ALTER SYSTEM SET FAL_CLIENT=testrac;

系统已更改。

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

系统已更改。

然后利用CREATE PFILE创建STANDBY数据库所需的初始化文件。将初始化参数ftpSTANDBY服务器的$ORACLE_HOME/dbs目录下,并编辑初始化文件。

主要编辑两方面的内容,一方面是修改STANDBYDATA GUARD相关内容,另一方面是去掉和RAC相关的初始化信息。

一个简单的修改后的初始化参数例子如下:

*.audit_file_dest='/data/oracle/admin/testrac/adump'ITPUB个人空间dD'z)?-VF
*.background_dump_dest='/data/oracle/admin/testrac/bdump'
*P:x:f8d4{/TZb0*.backup_tape_io_slaves=TRUE
9twK1Dt!o&J;G0*.compatible='10.2.0.1.0'ITPUB个人空间,v'W!G'[ms
*.control_files='/export/home/oracle/oradata/testrac/current.256.618591133','/export/home/oracle/oradata/testrac/current.257.618591137'
0D)k'[8YT[ my Lxe$G0*.core_dump_dest='/data/oracle/admin/testrac/cdump'
W,u)?'F6Sq&\#^)o0*.db_block_size=8192ITPUB个人空间9{ | n7H,D.w@@ NB)KK
*.db_create_file_dest='/data1/oradata/testrac'
@*t*z Vz&g A1~0*.db_domain=''ITPUB个人空间Q,g`?v-dm
*.db_file_multiblock_read_count=16ITPUB个人空间.~U M8J3y.WoSM3[
*.db_name='testrac'ITPUB个人空间 },U k9u fn%D'i$sz
*.dispatchers='(PROTOCOL=TCP) (SERVICE=testracXDB)'
fE#wO&G[9u A0jt0*.fal_client='TESTRAC_STANDBY'
2g)X)g E(cH*z D.o0*.fal_server='TESTRAC'ITPUB个人空间1A8j.e zJ,["dvp
*.job_queue_processes=10
.ELpVnE7N)[A0*.log_archive_config='DG_CONFIG=(testrac,testrac_standby)'ITPUB个人空间7l3H]Q#rsA V A
*.log_archive_dest_1='LOCATION=/data1/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=testrac_standby'
Y9H7z f%qXy`P0*.log_archive_dest_2='SERVICE=testrac1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=testrac'ITPUB个人空间S2FCm9N.Q K
*.log_archive_dest_state_2='ENABLE'
6@td*j0s*HE0*.log_archive_format='%t_%s_%r.dbf'ITPUB个人空间f2axcFO}[G
*.log_archive_local_first=FALSEITPUB个人空间6Q!qT1v3^'B@;?2UZ
*.open_cursors=5000ITPUB个人空间@^x'x6~W k*ho
*.pga_aggregate_target=536870912ITPUB个人空间^ekC9U4~
*.processes=300ITPUB个人空间r Ro]E
*.remote_login_passwordfile='EXCLUSIVE'
gh0B ^#|2R(^0*.session_max_open_files=20
"DY$O2UaOu+R!hBS9U0*.sga_target=2147483648
4]%KC7f*G0*.standby_archive_dest='/data1/archivelog'ITPUB个人空间$E3G WF$fb~E/B }
*.standby_file_management='AUTO'ITPUB个人空间_ Id[%Zpl
*.streams_pool_size=50331648
k:yrk3Ev [0*.undo_management='AUTO'
z%M;rpr'g0*.undo_tablespace='UNDOTBS1'
}pJ J6EV0*.user_dump_dest='/data/oracle/admin/testrac/udump'
$AS&K*G/LKL0db_unique_name='testrac_standby'ITPUB个人空间a3t~ a)Z KJk(U
log_file_name_convert=('+DISK/testrac/onlinelog','/export/home/oracle/oradata/testrac/')
r8?J e/F J+V8e Wo0db_file_name_convert=('+DISK/testrac/datafile/g', '/data1/oradata/testrac/g', '+DISK/testrac/datafile/l', '/data/oradata/testrac/l', '+DISK/testrac/datafile/n', '/data1/oradata/testrac/n', '+DISK/testrac/datafile/s', '/data1/oradata/testrac/s', '+DISK/testrac/datafile/u', '/data1/oradata/testrac/u', '+DISK/testrac/tempfile/t', '/export/home/oracle/oradata/testrac/t', '+DISK/testrac/datafile/zhejiang01.dbf', '/export/home/oracle/oradata/testrac/zhejiang01.dbf', '+DISK/testrac/datafile/zhejiang02.dbf', '/export/home/oracle/oradata/testrac/zhejiang02.dbf', '+DISK/testrac/datafile/zhejiang03.dbf', '/export/home/oracle/oradata/testrac/zhejiang03.dbf', '+DISK/testrac/datafile/zhejiang04.dbf', '/export/home/oracle/oradata/testrac/zhejiang04.dbf', '+DISK/testrac/datafile/zhejiang05.dbf', '/data1/oradata/testrac/zhejiang05.dbf', '+DISK/testrac/datafile/zhejiang06.dbf', '/opt/oracle/oradata/testrac/zhejiang06.dbf')

例子中设置log_file_name_convertdb_file_name_convert是出于两方面考虑,一是将ASM转化为文件系统,另一方面是测试环境空间不足。

建立STANDBY数据库所需的目录结构,包括udumpbdumpcdumpadump目录。

设置网络配置文件tnsnames.oralistener.ora,并启动监听。

通过PFILE创建STANDBYSPFILE,并将数据库启动到NOMOUNT状态:

$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期四 8 30 18:59:27 2007

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

已连接到空闲例程。

SQL> CREATE SPFILE FROM PFILE = '/data/oracle/product/10.2/database/dbs/inittestrac.ora';

文件已创建。

SQL> STARTUP NOMOUNTITPUB个人空间3]f4q i7`c
ORACLE
例程已经启动。

Total System Global Area 2147483648 bytes
1q7SZb!y+]D0Fixed Size 2031480 bytesITPUB个人空间)k%@#U.{~+e
Variable Size 520093832 bytesITPUB个人空间/pw*pz*QJ(N
Database Buffers 1610612736 bytesITPUB个人空间o:p.OEL)Hc'j3u7s
Redo Buffers 14745600 bytesITPUB个人空间(OQ_1Z Q,e
SQL>

在主库上配置从库的网络服务名,然后就可以利用RMAN进行STANDBY的恢复了:

$ rman target / auxiliary sys/test@testrac_standby

恢复管理器: Release 10.2.0.3.0 - Production on 星期日 7 1 18:06:06 2007

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

连接到目标数据库: TESTRAC (DBID=4291216984)已连接到辅助数据库: TESTRAC (未装载)

RMAN> run
8EIs x}T.\02> {ITPUB个人空间v(YY&|9h Y7g
3> allocate channel c1 device type disk format '/data1/backup/%U' connect sys/test@testrac1;ITPUB个人空间 D)Nv&p2M
4> allocate channel c2 device type disk format '/data1/backup/%U' connect sys/test@testrac2;
n^*Q8Pv`9Wa-o7WbL7f05> allocate auxiliary channel ac1 device type disk format '/data1/backup/%U'; ITPUB个人空间![D)kV sz$fr6Fs!r
6> allocate auxiliary channel ac2 device type disk format '/data1/backup/%U';
^/j%KPABir07> duplicate target database for standby;
{ s F} a$o.\08> }

使用目标数据库控制文件替代恢复目录分配的通道: c1通道 c1: sid=296 实例=testrac1 devtype=DISK

分配的通道: c2通道 c2: sid=311 实例=testrac2 devtype=DISK

分配的通道: ac1通道 ac1: sid=320 devtype=DISK

分配的通道: ac2通道 ac2: sid=319 devtype=DISK

启动 Duplicate Db 01-7 -07

内存脚本的内容:ITPUB个人空间b(mc3q3arL
{ITPUB个人空间)p9Ps u.UI }']
restore clone standby controlfile;
,A(Iy+oae8i6~d _0 sql clone 'alter database mount standby database';
f9Wc `R I\:W0}
正在执行内存脚本

启动 restore 01-7 -07

通道 ac1: 正在开始恢复数据文件备份集通道 ac1: 正在复原控制文件通道 ac1: 正在读取备份段 /data1/backup/ugilk27m_1_1通道 ac1: 已恢复备份段 1段句柄 = /data1/backup/ugilk27m_1_1 标记 = TAG20070630T233206通道 ac1: 恢复完成, 用时: 00:00:04输出文件名=/export/home/oracle/oradata/testrac/current.256.618591133输出文件名=/export/home/oracle/oradata/testrac/current.257.618591137完成 restore 01-7 -07

sql 语句: alter database mount standby database

内存脚本的内容:ITPUB个人空间!`oWBgizz.r.qT"^
{ITPUB个人空间(H'M3?*@o J
set newname for tempfile 1 to ITPUB个人空间qf(S tF
"/export/home/oracle/oradata/testrac/temp.265.618591239";ITPUB个人空间\+aw/N)@(R7BM
switch clone tempfile all;ITPUB个人空间H Rs,Q&B/t,Q
set newname for datafile 1 to ITPUB个人空间&T0g3pe$yexK"m ~s O
"/data1/oradata/testrac/system.262.618591167";
#V,Vj_ll1c0 set newname for datafile 2 to ITPUB个人空间Z7?:?FNl
"/data1/oradata/testrac/undotbs1.263.618591197";
1P"J`/XPE0 set newname for datafile 3 to ITPUB个人空间+ioQ3b { A5^qx
"/data1/oradata/testrac/sysaux.264.618591225";
4Quz)`8m4p/_q a0 set newname for datafile 4 to ITPUB个人空间7y5I"P3pVX
"/data1/oradata/testrac/undotbs2.266.618591249";
8N-M+iK2P0 set newname for datafile 5 to
6IN6iZ-dv0 "/data1/oradata/testrac/users.267.618591279";
*lV`t+e(tX0 set newname for datafile 6 to ITPUB个人空间$Q] {(fxkLbi eV
"/export/home/oracle/oradata/testrac/zhejiang01.dbf";ITPUB个人空间0GPi:UJ\ D
set newname for datafile 7 to
0_Eeyn"?#q4y0 "/export/home/oracle/oradata/testrac/zhejiang02.dbf";
-~9{ky)O&n0 set newname for datafile 8 to ITPUB个人空间a'c;[ }\,l,{%i"ZX
"/data1/oradata/testrac/ndmain01.dbf";ITPUB个人空间ilOD*@8@E,c ]8v
set newname for datafile 9 to ITPUB个人空间2XZ E&b8plV3R
"/export/home/oracle/oradata/testrac/zhejiang03.dbf";ITPUB个人空间b"X{2u1}%s
set newname for datafile 10 to
(Xp8D#t xU.]#GU0 "/data1/oradata/testrac/ndindex01.dbf";
;m9E-[z*O"x"_k0 set newname for datafile 11 to ITPUB个人空间,t4i7H;s1` }+L
"/export/home/oracle/oradata/testrac/zhejiang04.dbf";ITPUB个人空间+N{n5Yj5sU@r:sd
set newname for datafile 12 to ITPUB个人空间TO\3?(G-I8a ]0@
"/data1/oradata/testrac/zhejiang05.dbf";
0d+`s/OR J[Lj0 set newname for datafile 13 to
c9fZ;u*SLN0 "/data/oradata/testrac/lt_index_ts01.dbf";ITPUB个人空间+O x-fmJL$p
set newname for datafile 14 to
BV `&aui,G-y6_k7zc7G0 "/opt/oracle/oradata/testrac/zhejiang06.dbf";
8eav6yhYY"Q0 set newname for datafile 15 to
T(T:uqqL+atu#@ _0 "/data1/oradata/testrac/gpo.367.624623443";
)s'g$kTT+Z @"^E R;c0 restoreITPUB个人空间'i&y2B D;]v2b^
check readonlyITPUB个人空间7gPR~o
clone databaseITPUB个人空间-L4wJ+s9PW O`.E
;
8@$e-[/TY0}
正在执行内存脚本

正在执行命令: SET NEWNAME

临时文件 1 在控制文件中已重命名为 /export/home/oracle/oradata/testrac/temp.265.618591239

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

启动 restore 01-7 -07

通道 ac1: 正在开始恢复数据文件备份集通道 ac1: 正在指定从备份集恢复的数据文件正将数据文件00003恢复到/data1/oradata/testrac/sysaux.264.618591225正将数据文件00004恢复到/data1/oradata/testrac/undotbs2.266.618591249正将数据文件00007恢复到/export/home/oracle/oradata/testrac/zhejiang02.dbf正将数据文件00011恢复到/export/home/oracle/oradata/testrac/zhejiang04.dbf正将数据文件00013恢复到/data/oradata/testrac/lt_index_ts01.dbf正将数据文件00014恢复到/opt/oracle/oradata/testrac/zhejiang06.dbf正将数据文件00015恢复到/data1/oradata/testrac/gpo.367.624623443通道 ac1: 正在读取备份段 /data1/backup/ucilji4d_1_1通道 ac2: 正在开始恢复数据文件备份集通道 ac2: 正在指定从备份集恢复的数据文件正将数据文件00001恢复到/data1/oradata/testrac/system.262.618591167正将数据文件00002恢复到/data1/oradata/testrac/undotbs1.263.618591197正将数据文件00005恢复到/data1/oradata/testrac/users.267.618591279正将数据文件00006恢复到/export/home/oracle/oradata/testrac/zhejiang01.dbf正将数据文件00008恢复到/data1/oradata/testrac/ndmain01.dbf正将数据文件00009恢复到/export/home/oracle/oradata/testrac/zhejiang03.dbf正将数据文件00010恢复到/data1/oradata/testrac/ndindex01.dbf正将数据文件00012恢复到/data1/oradata/testrac/zhejiang05.dbf通道 ac2: 正在读取备份段 /data1/backup/ubilji13_1_1通道 ac1: 已恢复备份段 1段句柄 = /data1/backup/ucilji4d_1_1 标记 = TAG20070630T185716通道 ac1: 恢复完成, 用时: 00:38:55通道 ac2: 已恢复备份段 1段句柄 = /data1/backup/ubilji13_1_1 标记 = TAG20070630T185716通道 ac2: 恢复完成, 用时: 00:40:30完成 restore 01-7 -07

内存脚本的内容:ITPUB个人空间vu~WC ~V7xx
{ITPUB个人空间%ZG*sudT#XMi
switch clone datafile all;
w+}S5K{8a3Q0}
正在执行内存脚本

数据文件 1 已转换成数据文件副本输入数据文件副本 recid=390 stamp=632054607 文件名=/data1/oradata/testrac/system.262.618591167数据文件 2 已转换成数据文件副本输入数据文件副本 recid=391 stamp=632054607 文件名=/data1/oradata/testrac/undotbs1.263.618591197数据文件 3 已转换成数据文件副本输入数据文件副本 recid=392 stamp=632054607 文件名=/data1/oradata/testrac/sysaux.264.618591225数据文件 4 已转换成数据文件副本输入数据文件副本 recid=393 stamp=632054608 文件名=/data1/oradata/testrac/undotbs2.266.618591249数据文件 5 已转换成数据文件副本输入数据文件副本 recid=394 stamp=632054608 文件名=/data1/oradata/testrac/users.267.618591279数据文件 6 已转换成数据文件副本输入数据文件副本 recid=395 stamp=632054608 文件名=/export/home/oracle/oradata/testrac/zhejiang01.dbf数据文件 7 已转换成数据文件副本输入数据文件副本 recid=396 stamp=632054608 文件名=/export/home/oracle/oradata/testrac/zhejiang02.dbf数据文件 8 已转换成数据文件副本输入数据文件副本 recid=397 stamp=632054608 文件名=/data1/oradata/testrac/ndmain01.dbf数据文件 9 已转换成数据文件副本输入数据文件副本 recid=398 stamp=632054608 文件名=/export/home/oracle/oradata/testrac/zhejiang03.dbf数据文件 10 已转换成数据文件副本输入数据文件副本 recid=399 stamp=632054608 文件名=/data1/oradata/testrac/ndindex01.dbf数据文件 11 已转换成数据文件副本输入数据文件副本 recid=400 stamp=632054608 文件名=/export/home/oracle/oradata/testrac/zhejiang04.dbf数据文件 12 已转换成数据文件副本输入数据文件副本 recid=401 stamp=632054608 文件名=/data1/oradata/testrac/zhejiang05.dbf数据文件 13 已转换成数据文件副本输入数据文件副本 recid=402 stamp=632054609 文件名=/data/oradata/testrac/lt_index_ts01.dbf数据文件 14 已转换成数据文件副本输入数据文件副本 recid=403 stamp=632054609 文件名=/opt/oracle/oradata/testrac/zhejiang06.dbf数据文件 15 已转换成数据文件副本输入数据文件副本 recid=404 stamp=632054609 文件名=/data1/oradata/testrac/gpo.367.624623443完成 Duplicate Db 01-7 -07释放的通道: c1释放的通道: c2释放的通道: ac1释放的通道: ac2

数据库恢复完成,下面就可以在STANDBY服务器上启动服务日志的应用了:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

数据库已更改。

SQL> SELECT SEQUENCE#, THREAD# FROM V$ARCHIVED_LOG ORDER BY FIRST_TIME;

未选定行

SQL> CONN SYS/TEST@TESTRAC1 AS SYSDBA已连接。ITPUB个人空间5_!s"j$|_S'E4D#N
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

系统已更改。

SQL> CONN / AS SYSDBA已连接。
NcU pfGN z_0SQL> SELECT SEQUENCE#, THREAD# FROM V$ARCHIVED_LOG ORDER BY FIRST_TIME;

SEQUENCE# THREAD#
1o1?"Y/Q0N,I }:v`0---------- ----------ITPUB个人空间6iB*Vz5a ?
554 1ITPUB个人空间%B LR wE#w6y
331 2

至此,RAC环境的DATA GUARD配置初步完成。

为了保证切换后文件的修改可以自动同步到现在的主库,还需要修改一下PRIMARY数据库的初始化参数log_file_name_convertdb_file_name_convert

SQL> ALTER SYSTEM SET LOG_FILE_NAME_CONVERT = '/export/home/oracle/oradata/testrac/', '+DISK/testrac/onlinelog' SCOPE = SPFILE;

系统已更改。

SQL> ALTER SYSTEM SET DB_FILE_NAME_CONVERT='/data1/oradata/testrac/g', '+DISK/testrac/datafile/g',
dlk/aL-zr&K5iW0 2 '/data/oradata/testrac/l', '+DISK/testrac/datafile/l',
a)]i8q8j$E0 3 '/data1/oradata/testrac/n', '+DISK/testrac/datafile/n', ITPUB个人空间F5b$c;G0_lE
4 '/data1/oradata/testrac/s', '+DISK/testrac/datafile/s',
l` `*TgD$R/o+s~0 5 '/data1/oradata/testrac/u', '+DISK/testrac/datafile/u',
\Q$i~8X;AO2v0 6 '/export/home/oracle/oradata/testrac/t', '+DISK/testrac/tempfile/t', ITPUB个人空间-R$a&g$v'i8_
7 '/export/home/oracle/oradata/testrac/zhejiang01.dbf', '+DISK/testrac/datafile/zhejiang01.dbf', ITPUB个人空间(G3B6Z:Q LcfD+d
8 '/export/home/oracle/oradata/testrac/zhejiang02.dbf', '+DISK/testrac/datafile/zhejiang02.dbf',
H2Y(]6Y B0 9 '/export/home/oracle/oradata/testrac/zhejiang03.dbf', '+DISK/testrac/datafile/zhejiang03.dbf', ITPUB个人空间Y#f$n?[|/S
10 '/export/home/oracle/oradata/testrac/zhejiang04.dbf', '+DISK/testrac/datafile/zhejiang04.dbf',
iZ9R5K8w\+m[d W;vj4j0 11 '/data1/oradata/testrac/zhejiang05.dbf', '+DISK/testrac/datafile/zhejiang05.dbf', ITPUB个人空间q?5V8vKSWUT
12 '/opt/oracle/oradata/testrac/zhejiang06.dbf', '+DISK/testrac/datafile/zhejiang06.dbf'ITPUB个人空间5A J$p ~'g#~9A
13 SCOPE = SPFILE;

系统已更改。

最后总结一下可能会碰到错误,以及整个过程需要注意的地方。

首先,由于是RAC环境到单实例的STANDBY,利用RAC环境重建的初始化参数需要将所有RAC相关的内容去掉,确保单实例数据库可以正常启动。

第二,对于RAC环境的每个实例,都必须能归档到STANDBY数据库,否则DATA GUARD配置会存在问题。检查初始化参数,确保对全体实例初始化参数的修改没有被指定实例初始化参数修改所覆盖。

第三,根据Oracle RAC环境的备份情况,决定DUPLICATE过程中channel的分配。如果备份过程是两个实例同时完成,那么DUPLICATE的时候也需要通过连接RAC的两个过程,否则很可能会报错。

第四,对于RUN模式下记得分配AUXILIARY CHANNEL,这个CHANNEL的分配最好和备份时CHANNEL的分配数量一致,这样可以获得最佳的性能。如果忘记分配AUXILIARY CHANNEL可能会导致错误:

RMAN-05503: 必须至少分配一个辅助通道来执行此命令

第五,记得在STANDBY服务器上启动数据库到NOMOUNT模式。否则可能会报错:

RMAN-03002: Duplicate Db 命令 ( 07/01/2007 02:52:39 ) 失败ITPUB个人空间qd#r@d
RMAN-06403:
无法获得完全授权的会话
|$m,iF3{7_0RMAN-04006:
来自辅助数据库的错误: ORA-01034: ORACLE 不可用

第六,如果出现下面的错误,说明密码文件设置有问题,确认密码文件已经拷贝到STANDBY数据库的$ORACLE_HOME/dbs目录下,并且文件名复合orapw + $ORACLE_SID

RMAN-00554: 内部恢复管理器程序包初始化失败ITPUB个人空间S&C/l$JW@;v7sd4\
RMAN-04006:
来自辅助数据库的错误: ORA-01031: insufficient privileges

最后,如果备份全库的时候将归档日志一起备份,并从主机删除,那么在建立好DATA GUARD环境后,需要认为的在PRIMARY数据库恢复已经备份的归档,否则会导致ARCHIVELOG GAP的产生,除非指定UNTIL语句,否则RMAN进行DUPLICATE的时候是不会应用已经被归档的日志的。


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar