dataguard跨平台linux,利用rman轻松搭建11g跨平台dataguard

http://www.itpub.net/viewthread.php?tid=1147333&extra=page=1&filter=digest

今天抽空建设了一套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

sys/admin@prim_11g

connected to target database: ORA11G

(DBID=4074416935)

RMAN> connect auxiliary

sys/admin@vstd_11g

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

接下来,你就慢慢的玩吧.

a4c26d1e5885305701be709a3d33442f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值