|
今天抽空建设了一套Windows XP和Linux x86平台上的一套DG的环境,下面的配置的详细过程.
环境说明
环境准备
一台已经装好Windows XP的PC
预装好的Oracle 11gR1(11.1.0.6)企业版数据库
一台已经装好Linux x86的VM
预先装好Oracle 11gR1(11.1.0.6)企业版数据库软件,不建库,但要准备要相应的环境变量和文件系统及目录结构并授予相应的权限(略)
在接下来的测试中,我对一个主库配置了2个physical dataguard,一个是在同平台的windows下,一个是在Linux下.
预备搭建的场景
数据库 | DB_NAME | DB_UNIQUE_NAME | INSTANCE_NAME | IP | 网络服务名 | ORACLE_HOME | 主数据库 | ora11g | Prim_11g | ora11g | 192.168.100.1 | Prim_11g | d:\oracle11g | 物理备用数据库1 | ora11g | Std_11g | sora11g | 192.168.100.1 | Std_11g | d:\oracle11g | 物理备用数据库2 | ora11g | vstd_11g | vora11g | 192.168.100.60 | vstd_11g | /oracle/product/11.1/db_1 |
这两个dg均是通过rman直接复制而来,下面给出linux那个备库的rman脚本和执行过程,windows下同平台的那个和这个脚本类似.
[oracle@vm11g] /oracle> rman
Recovery Manager: Release 11.1.0.6.0 - Production on Thu Apr 2 16:50:12 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
RMAN> connect target [email=sys/admin@prim_11g]sys/admin@prim_11g[/email]
connected to target database: ORA11G (DBID=4074416935)
RMAN> connect auxiliary [email=sys/admin@vstd_11g]sys/admin@vstd_11g[/email]
connected to auxiliary database: ORA11G (not mounted)
RMAN> run
2> {
3> allocate channel c1 type disk;
4> allocate auxiliary channel s1 type disk;
5> allocate auxiliary channel s2 type disk;
6> duplicate target database for standby dorecover nofilenamecheck
7> from active database
8> spfile
9> parameter_value_convert 'ora11g','vora11g'
10> set db_unique_name='vstd_11g'
11> set db_file_name_convert='D:\ORACLE11G\ORADATA\ORA11G\','/oracle/oradata/vora11g/'
12> set log_file_name_convert='D:\ORACLE11G\ORADATA\ORA11G\','/oracle/oradata/vora11g/'
13> set control_files='/oracle/oradata/vora11g/control01.ctl'
14> set fal_client='vstd_11g'
15> set fal_server='prim_11g'
16> set standby_file_management='AUTO'
17> set log_archive_config='dg_config=(prim_11g,vstd_11g)'
18> set log_archive_dest_1='LOCATION=/oracle/oradata/arch valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=vstd_11g'
19> set log_archive_dest_2='service=prim_11g LGWR ASYNC valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=prim_11g'
20> set log_archive_dest_3='LOCATION=/oracle/oradata/arc_std valid_for=(STANDBY_LOGFILE,STANDBY_ROLE) DB_UNIQUE_NAME=vstd_11g'
21> set log_archive_format='vora11g_%t_%s_%r.arc'
22> set diagnostic_dest='/oracle/product/11.1/db_1'
23> set db_recovery_file_dest='/oracle/oradata/flash_area'
24> set db_recovery_file_dest_size='536870912'
25> set audit_file_dest='/oracle/admin/vora11g/adump'
26> ;
27> sql channel c1 "alter system archive log current";
28> }
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=145 device type=DISK
allocated channel: s1
channel s1: SID=97 device type=DISK
allocated channel: s2
channel s2: SID=96 device type=DISK
Starting Duplicate Db at 02-APR-09
contents of Memory Script:
{
backup as copy reuse
file 'd:\oracle11g\DATABASE\PWDora11g.ORA' auxiliary format
'/oracle/product/11.1/db_1/dbs/orapwvora11g' file
'D:\ORACLE11G\DATABASE\SPFILEORA11G.ORA' auxiliary format
'/oracle/product/11.1/db_1/dbs/spfilevora11g.ora' ;
sql clone "alter system set spfile= ''/oracle/product/11.1/db_1/dbs/spfilevora11g.ora''";
}
executing Memory Script
Starting backup at 02-APR-09
Finished backup at 02-APR-09
sql statement: alter system set spfile= ''/oracle/product/11.1/db_1/dbs/spfilevora11g.ora''
contents of Memory Script:
{
sql clone "alter system set dispatchers =
''(PROTOCOL=TCP) (SERVICE=vora11gXDB)'' comment=
'''' scope=spfile";
sql clone "alter system set db_unique_name =
''vstd_11g'' comment=
'''' scope=spfile";
sql clone "alter system set db_file_name_convert =
''D:\ORACLE11G\ORADATA\ORA11G\'', ''/oracle/oradata/vora11g/'' comment=
'''' scope=spfile";
sql clone "alter system set log_file_name_convert =
''D:\ORACLE11G\ORADATA\ORA11G\'', ''/oracle/oradata/vora11g/'' comment=
'''' scope=spfile";
sql clone "alter system set control_files =
''/oracle/oradata/vora11g/control01.ctl'' comment=
'''' scope=spfile";
sql clone "alter system set fal_client =
''vstd_11g'' comment=
'''' scope=spfile";
sql clone "alter system set fal_server =
''prim_11g'' comment=
'''' scope=spfile";
sql clone "alter system set standby_file_management =
''AUTO'' comment=
'''' scope=spfile";
sql clone "alter system set log_archive_config =
''dg_config=(prim_11g,vstd_11g)'' comment=
'''' scope=spfile";
sql clone "alter system set log_archive_dest_1 =
''LOCATION=/oracle/oradata/arch valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=vstd_11g'' comment=
'''' scope=spfile";
sql clone "alter system set log_archive_dest_2 =
''service=prim_11g LGWR ASYNC valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=prim_11g'' comment=
'''' scope=spfile";
sql clone "alter system set log_archive_dest_3 =
''LOCATION=/oracle/oradata/arc_std valid_for=(STANDBY_LOGFILE,STANDBY_ROLE) DB_UNIQUE_NAME=vstd_11g'' comment=
'''' scope=spfile";
sql clone "alter system set log_archive_format =
''vora11g_%t_%s_%r.arc'' comment=
'''' scope=spfile";
sql clone "alter system set diagnostic_dest =
''/oracle/product/11.1/db_1'' comment=
'''' scope=spfile";
sql clone "alter system set db_recovery_file_dest =
''/oracle/oradata/flash_area'' comment=
'''' scope=spfile";
sql clone "alter system set db_recovery_file_dest_size =
536870912 comment=
'''' scope=spfile";
sql clone "alter system set audit_file_dest =
''/oracle/admin/vora11g/adump'' comment=
'''' scope=spfile";
shutdown clone immediate;
startup clone nomount ;
}
executing Memory Script
sql statement: alter system set dispatchers = ''(PROTOCOL=TCP) (SERVICE=vora11gXDB)'' comment= '''' scope=spfile
sql statement: alter system set db_unique_name = ''vstd_11g'' comment= '''' scope=spfile
sql statement: alter system set db_file_name_convert = ''D:\ORACLE11G\ORADATA\ORA11G\'', ''/oracle/oradata/vora11g/'' comment= '''' scope=spfile
sql statement: alter system set log_file_name_convert = ''D:\ORACLE11G\ORADATA\ORA11G\'', ''/oracle/oradata/vora11g/'' comment= '''' scope=spfile
sql statement: alter system set control_files = ''/oracle/oradata/vora11g/control01.ctl'' comment= '''' scope=spfile
sql statement: alter system set fal_client = ''vstd_11g'' comment= '''' scope=spfile
sql statement: alter system set fal_server = ''prim_11g'' comment= '''' scope=spfile
sql statement: alter system set standby_file_management = ''AUTO'' comment= '''' scope=spfile
sql statement: alter system set log_archive_config = ''dg_config=(prim_11g,vstd_11g)'' comment= '''' scope=spfile
sql statement: alter system set log_archive_dest_1 = ''LOCATION=/oracle/oradata/arch valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=vstd_11g'' comment= '''' scope=spfile
sql statement: alter system set log_archive_dest_2 = ''service=prim_11g LGWR ASYNC valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=prim_11g'' comment= '''' scope=spfile
sql statement: alter system set log_archive_dest_3 = ''LOCATION=/oracle/oradata/arc_std valid_for=(STANDBY_LOGFILE,STANDBY_ROLE) DB_UNIQUE_NAME=vstd_11g'' comment= '''' scope=spfile
sql statement: alter system set log_archive_format = ''vora11g_%t_%s_%r.arc'' comment= '''' scope=spfile
sql statement: alter system set diagnostic_dest = ''/oracle/product/11.1/db_1'' comment= '''' scope=spfile
sql statement: alter system set db_recovery_file_dest = ''/oracle/oradata/flash_area'' comment= '''' scope=spfile
sql statement: alter system set db_recovery_file_dest_size = 536870912 comment= '''' scope=spfile
sql statement: alter system set audit_file_dest = ''/oracle/admin/vora11g/adump'' comment= '''' scope=spfile
Oracle instance shut down
connected to auxiliary database (not started)
Oracle instance started
Total System Global Area 318054400 bytes
Fixed Size 1299624 bytes
Variable Size 96471896 bytes
Database Buffers 213909504 bytes
Redo Buffers 6373376 bytes
contents of Memory Script:
{
backup as copy current controlfile for standby auxiliary format '/oracle/oradata/vora11g/control01.ctl';
sql clone 'alter database mount standby database';
}
executing Memory Script
Starting backup at 02-APR-09
channel c1: starting datafile copy
copying standby control file
output file name=D:\ORACLE11G\DATABASE\SNCFORA11G.ORA tag=TAG20090402T194705 RECID=24 STAMP=683149633
channel c1: datafile copy complete, elapsed time: 00:00:04
Finished backup at 02-APR-09
sql statement: alter database mount standby database
contents of Memory Script:
{
set newname for tempfile 1 to
"/oracle/oradata/vora11g/TEMP01.DBF";
switch clone tempfile all;
set newname for datafile 1 to
"/oracle/oradata/vora11g/SYSTEM01.DBF";
set newname for datafile 2 to
"/oracle/oradata/vora11g/SYSAUX01.DBF";
set newname for datafile 3 to
"/oracle/oradata/vora11g/UNDOTBS01.DBF";
set newname for datafile 4 to
"/oracle/oradata/vora11g/USERS01.DBF";
set newname for datafile 5 to
"/oracle/oradata/vora11g/DATA_01.DBF";
backup as copy reuse
datafile 1 auxiliary format
"/oracle/oradata/vora11g/SYSTEM01.DBF" datafile
2 auxiliary format
"/oracle/oradata/vora11g/SYSAUX01.DBF" datafile
3 auxiliary format
"/oracle/oradata/vora11g/UNDOTBS01.DBF" datafile
4 auxiliary format
"/oracle/oradata/vora11g/USERS01.DBF" datafile
5 auxiliary format
"/oracle/oradata/vora11g/DATA_01.DBF" ;
sql 'alter system archive log current';
}
executing Memory Script
executing command: SET NEWNAME
renamed tempfile 1 to /oracle/oradata/vora11g/TEMP01.DBF in control file
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting backup at 02-APR-09
channel c1: starting datafile copy
input datafile file number=00001 name=D:\ORACLE11G\ORADATA\ORA11G\SYSTEM01.DBF
output file name=/oracle/oradata/vora11g/SYSTEM01.DBF tag=TAG20090402T194723 RECID=0 STAMP=0
channel c1: datafile copy complete, elapsed time: 00:00:44
channel c1: starting datafile copy
input datafile file number=00002 name=D:\ORACLE11G\ORADATA\ORA11G\SYSAUX01.DBF
output file name=/oracle/oradata/vora11g/SYSAUX01.DBF tag=TAG20090402T194723 RECID=0 STAMP=0
channel c1: datafile copy complete, elapsed time: 00:00:49
channel c1: starting datafile copy
input datafile file number=00005 name=D:\ORACLE11G\ORADATA\ORA11G\DATA_01.DBF
output file name=/oracle/oradata/vora11g/DATA_01.DBF tag=TAG20090402T194723 RECID=0 STAMP=0
channel c1: datafile copy complete, elapsed time: 00:00:27
channel c1: starting datafile copy
input datafile file number=00003 name=D:\ORACLE11G\ORADATA\ORA11G\UNDOTBS01.DBF
output file name=/oracle/oradata/vora11g/UNDOTBS01.DBF tag=TAG20090402T194723 RECID=0 STAMP=0
channel c1: datafile copy complete, elapsed time: 00:00:16
channel c1: starting datafile copy
input datafile file number=00004 name=D:\ORACLE11G\ORADATA\ORA11G\USERS01.DBF
output file name=/oracle/oradata/vora11g/USERS01.DBF tag=TAG20090402T194723 RECID=0 STAMP=0
channel c1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 02-APR-09
sql statement: alter system archive log current
contents of Memory Script:
{
backup as copy reuse
archivelog like "D:\ORACLE11G\ORADATA\ARCH\ORA11G_1_48_678216811.ARC" auxiliary format
"/oracle/oradata/arc_stdvora11g_1_48_678216811.arc" ;
catalog clone archivelog "/oracle/oradata/arc_stdvora11g_1_48_678216811.arc";
switch clone datafile all;
}
executing Memory Script
Starting backup at 02-APR-09
channel c1: starting archived log copy
input archived log thread=1 sequence=48 RECID=71 STAMP=683149809
output file name=/oracle/oradata/arc_stdvora11g_1_48_678216811.arc RECID=0 STAMP=0
channel c1: archived log copy complete, elapsed time: 00:00:01
Finished backup at 02-APR-09
cataloged archived log
archived log file name=/oracle/oradata/arc_stdvora11g_1_48_678216811.arc RECID=1 STAMP=683139230
datafile 1 switched to datafile copy
input datafile copy RECID=24 STAMP=683139230 file name=/oracle/oradata/vora11g/SYSTEM01.DBF
datafile 2 switched to datafile copy
input datafile copy RECID=25 STAMP=683139230 file name=/oracle/oradata/vora11g/SYSAUX01.DBF
datafile 3 switched to datafile copy
input datafile copy RECID=26 STAMP=683139231 file name=/oracle/oradata/vora11g/UNDOTBS01.DBF
datafile 4 switched to datafile copy
input datafile copy RECID=27 STAMP=683139231 file name=/oracle/oradata/vora11g/USERS01.DBF
datafile 5 switched to datafile copy
input datafile copy RECID=28 STAMP=683139231 file name=/oracle/oradata/vora11g/DATA_01.DBF
contents of Memory Script:
{
set until scn 1104554;
recover
standby
clone database
delete archivelog
;
}
executing Memory Script
executing command: SET until clause
Starting recover at 02-APR-09
starting media recovery
archived log for thread 1 with sequence 48 is already on disk as file /oracle/oradata/arc_stdvora11g_1_48_678216811.arc
archived log file name=/oracle/oradata/arc_stdvora11g_1_48_678216811.arc thread=1 sequence=48
media recovery complete, elapsed time: 00:00:01
Finished recover at 02-APR-09
Finished Duplicate Db at 02-APR-09
sql statement: alter system archive log current
released channel: c1
OK,到这里linux下那个physical dataguard就建好了.进入到恢复模式
SQL> recover managed standby database disconnect;
Media recovery complete.
SQL>
看一下日志:
Primary database is in MAXIMUM PERFORMANCE mode
RFS[3]: Successfully opened standby log 11: '/oracle/oradata/vora11g/STDREDO01.LOG'
Thu Apr 02 16:57:24 2009
kcrrvslf: active RFS archival for log 11 thread 1 sequence 51
RFS[2]: Successfully opened standby log 12: '/oracle/oradata/vora11g/STDREDO02.LOG'
Thu Apr 02 16:57:50 2009
Media Recovery Log /oracle/oradata/arc_stdvora11g_1_50_678216811.arc
Media Recovery Waiting for thread 1 sequence 51 (in transit)
OK了.
主库的归档路径配置:
SQL> select dest_name,status,target,archiver,destination,db_unique_name
2 from v$archive_dest
3 where db_unique_name<>'NONE';
DEST_NAME STATUS TARGET ARCHIVER DESTINATION DB_UNIQUE_NAME
-------------------- --------- ------- ---------- ------------------------------- ----------------
LOG_ARCHIVE_DEST_1 VALID PRIMARY ARCH D:\oracle11g\oradata\arch prim_11g
LOG_ARCHIVE_DEST_2 VALID STANDBY LGWR std_11g std_11g
LOG_ARCHIVE_DEST_3 VALID PRIMARY ARCH D:\oracle11g\oradata\arch_std prim_11g
LOG_ARCHIVE_DEST_4 VALID STANDBY LGWR vstd_11g vstd_11g
接下来,你就慢慢的玩吧.
|
|