使用RMAN在线创建dataguard

1、   准备工作
Dg上安装软件,可以使用clone的方法,从生产tar一个文件到dg上克隆
从生产拷贝pfile,这个其实也可以从备份中恢复,不过直接拷贝更方便,修改相关参数,修改完成之后创建spfile
从生产库拷贝密码文件,如果不知道生产库sys用户密码需要重建密码文件,因为后面需要sys用户密码
配置生产库和dg库的连接串,相互tnsping可以通
在dg库创建相关路径,创建dg相关的路径:adump,bdump,cdump,udump等
将dg启动到nomount状态,因为此时已经有spfile可以起库了

2、生产库做rman备份

=========================================在生产库执行备份==================================
rman target /
RMAN>
run{
allocate channel d1 type disk;                     -----最好加上该语句,减少对生产库的影响
backup full database format '/paic/bank/berrbs/data/oradata/rman_full/db_%U.bak'         ------做全库备份
--plus archivelog format '/paic/bank/berrbs/data/oradata/rman_full/arc_%U.bak';               ------备份日志,其实我们做的备份立马就用了,没必要备份日志,可以省略
sql 'alter system archive log current';                                                                                           
release channel d1;}

……………….
Starting backup at 2010-11-26 00:16:15
channel d1: starting full datafile backupset
channel d1: specifying datafile(s) in backupset
input datafile fno=00003 name=/paic/bank/berrbs/data/oradata/berrbs/sysaux01.dbf
input datafile fno=00001 name=/paic/bank/berrbs/data/oradata/berrbs/system01.dbf
input datafile fno=00002 name=/paic/bank/berrbs/data/oradata/berrbs/undotbs01.dbf
input datafile fno=00009 name=/paic/bank/berrbs/data/oradata/berrbs/errbsdata01.dbf
input datafile fno=00005 name=/paic/bank/berrbs/data/oradata/berrbs/auddata01.dbf
input datafile fno=00007 name=/paic/bank/berrbs/data/oradata/berrbs/pauser01.dbf
input datafile fno=00008 name=/paic/bank/berrbs/data/oradata/berrbs/dmlbakdata01.dbf
input datafile fno=00010 name=/paic/bank/berrbs/data/oradata/berrbs/errbsidx01.dbf
input datafile fno=00006 name=/paic/bank/berrbs/data/oradata/berrbs/dbadata01.dbf
input datafile fno=00004 name=/paic/bank/berrbs/data/oradata/berrbs/users01.dbf
channel d1: starting piece 1 at 2010-11-26 00:16:15
channel d1: finished piece 1 at 2010-11-26 00:16:22
piece handle=/paic/bank/berrbs/data/oradata/rman_full/db_2fltu7if_1_1.bak tag=TAG20101126T001615 comment=NONE
channel d1: backup set complete, elapsed time: 00:00:07
channel d1: starting full datafile backupset
channel d1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel d1: starting piece 1 at 2010-11-26 00:16:23
channel d1: finished piece 1 at 2010-11-26 00:16:24
piece handle=/paic/bank/berrbs/data/oradata/rman_full/db_2gltu7im_1_1.bak tag=TAG20101126T001615 comment=NONE
channel d1: backup set complete, elapsed time: 00:00:02
Finished backup at 2010-11-26 00:16:24

Starting backup at 2010-11-26 00:16:24
current log archived
channel d1: starting archive log backupset
channel d1: specifying archive log(s) in backup set
input archive log thread=1 sequence=361 recid=323 stamp=736042584
channel d1: starting piece 1 at 2010-11-26 00:16:25
channel d1: finished piece 1 at 2010-11-26 00:16:26
piece handle=/paic/bank/berrbs/data/oradata/rman_full/arc_2hltu7io_1_1.bak tag=TAG20101126T001624 comment=NONE
channel d1: backup set complete, elapsed time: 00:00:02
Finished backup at 2010-11-26 00:16:26

sql statement: alter system archive log current

released channel: d1

RMAN> copy current controlfile for standby to '/paic/bank/berrbs/data/oradata/rman_full/newstd_control.ctl';             --------备份控制文件,作用相当于dg手册中的:alter database create standby controlfile as '/tmp/stbycf$ORACLE_SID.f'语句

Starting backup at 2010-11-26 00:17:46
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1610 devtype=DISK
channel ORA_DISK_1: starting datafile copy
copying standby control file
output filename=/paic/bank/berrbs/data/oradata/rman_full/newstd_control.ctl tag=TAG20101126T001746 recid=10 stamp=736042666
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 2010-11-26 00:17:47

3、把备份片传到dg上相同目录,注意一定要和生产做备份的目录相同

z4as8021:10g:sberrbs > scp palog@berrbs.db.paic.com.cn:/paic/bank/berrbs/data/oradata/rman_full/db* .
Authorized uses only. All activity may be monitored and reported.
Password:
db_2fltu7if_1_1.bak  100% |**********************************************************|   541 MB    06:56  
db_2gltu7im_1_1.bak  100% |**********************************************************|  7392 KB    00:05  
z4as8021:10g:sberrbs > scp palog@berrbs.db.paic.com.cn:/paic/bank/berrbs/data/oradata/rman_full/n* .
Authorized uses only. All activity may be monitored and reported.
Password:
newstd_control.ctl   100% |**********************************************************|  7312 KB    00:05  
z4as8021:10g:sberrbs > ls -l
total 1143232
-rwxr-xr-x   1 osberrbs dba      567844864 Nov 26 00:26 db_2fltu7if_1_1.bak
-rwxr-xr-x   1 osberrbs dba      7569408 Nov 26 00:26 db_2gltu7im_1_1.bak
-rw-r--r--   1 osberrbs dba         1531 Nov 25 02:40 initberrbs.ora
-rwxr-xr-x   1 osberrbs dba      7487488 Nov 26 00:28 newstd_control.ctl
z4as8021:10g:sberrbs > sqlplus '/as sysdba'

SQL*Plus: Release 10.2.0.4.0 - Production on Fri Nov 26 00:14:44 2010

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

Connected to an idle instance.

SQL> startup nomount;
ORACLE instance started.

Total System Global Area 3154116608 bytes
Fixed Size                  2043904 bytes
Variable Size             637538304 bytes
Database Buffers         2499805184 bytes
Redo Buffers               14729216 bytes
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Oracle Label Security, Data Mining and Real Application Testing options

===========================================生产库执行下面命令====================================

4、在生产库执行复制,注意要在生产库执行,执行下面命令前要先把standby启动到nomount状态,如果准备时已经启动了就ok

g2cs8020:10g:berrbs > rman target / auxiliary sys/paic1234@sberrbs                       --------注意红色的地方,意识是在生产连接到dg

Recovery Manager: Release 10.2.0.4.0 - Production on Fri Nov 26 00:38:18 2010

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

connected to target database: BERRBS (DBID=762769109)
connected to auxiliary database: BERRBS (not mounted)

RMAN> run{
2> duplicate target database for standby nofilenamecheck;                                           -------复制过程只有这一条命令,很智能,下面过程数据库自动完成
3> }

Starting Duplicate Db at 2010-11-26 00:38:33
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: sid=1637 devtype=DISK

contents of Memory Script.:
{
   restore clone standby controlfile;
   sql clone 'alter database mount standby database';
}
executing Memory Script

Starting restore at 2010-11-26 00:38:36
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: copied control file copy
input filename=/paic/bank/berrbs/data/oradata/rman_full/newstd_control.ctl
output filename=/paic/bank/berrbs/data/oradata/berrbs/control01.ctl
output filename=/paic/bank/berrbs/data/oradata/berrbs/control02.ctl
output filename=/paic/bank/berrbs/data/oradata/berrbs/control03.ctl
Finished restore at 2010-11-26 00:38:38

sql statement: alter database mount standby database
released channel: ORA_AUX_DISK_1

contents of Memory Script.:
{
   set newname for tempfile  1 to
 "/paic/bank/berrbs/data/oradata/berrbs/temp01.dbf";
   switch clone tempfile all;
   set newname for datafile  1 to
 "/paic/bank/berrbs/data/oradata/berrbs/system01.dbf";
   set newname for datafile  2 to
 "/paic/bank/berrbs/data/oradata/berrbs/undotbs01.dbf";
   set newname for datafile  3 to
 "/paic/bank/berrbs/data/oradata/berrbs/sysaux01.dbf";
   set newname for datafile  4 to
 "/paic/bank/berrbs/data/oradata/berrbs/users01.dbf";
   set newname for datafile  5 to
 "/paic/bank/berrbs/data/oradata/berrbs/auddata01.dbf";
   set newname for datafile  6 to
 "/paic/bank/berrbs/data/oradata/berrbs/dbadata01.dbf";
   set newname for datafile  7 to
 "/paic/bank/berrbs/data/oradata/berrbs/pauser01.dbf";
   set newname for datafile  8 to
 "/paic/bank/berrbs/data/oradata/berrbs/dmlbakdata01.dbf";
   set newname for datafile  9 to
 "/paic/bank/berrbs/data/oradata/berrbs/errbsdata01.dbf";
   set newname for datafile  10 to
 "/paic/bank/berrbs/data/oradata/berrbs/errbsidx01.dbf";
   restore
   check readonly
   clone database
   ;
}
executing Memory Script

executing command: SET NEWNAME

renamed temporary file 1 to /paic/bank/berrbs/data/oradata/berrbs/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

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 2010-11-26 00:38:52
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: sid=1637 devtype=DISK

channel ORA_AUX_DISK_1: starting datafile backupset restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /paic/bank/berrbs/data/oradata/berrbs/system01.dbf
restoring datafile 00002 to /paic/bank/berrbs/data/oradata/berrbs/undotbs01.dbf
restoring datafile 00003 to /paic/bank/berrbs/data/oradata/berrbs/sysaux01.dbf
restoring datafile 00004 to /paic/bank/berrbs/data/oradata/berrbs/users01.dbf
restoring datafile 00005 to /paic/bank/berrbs/data/oradata/berrbs/auddata01.dbf
restoring datafile 00006 to /paic/bank/berrbs/data/oradata/berrbs/dbadata01.dbf
restoring datafile 00007 to /paic/bank/berrbs/data/oradata/berrbs/pauser01.dbf
restoring datafile 00008 to /paic/bank/berrbs/data/oradata/berrbs/dmlbakdata01.dbf
restoring datafile 00009 to /paic/bank/berrbs/data/oradata/berrbs/errbsdata01.dbf
restoring datafile 00010 to /paic/bank/berrbs/data/oradata/berrbs/errbsidx01.dbf
channel ORA_AUX_DISK_1: reading from backup piece /paic/bank/berrbs/data/oradata/rman_full/db_2fltu7if_1_1.bak
channel ORA_AUX_DISK_1: restored backup piece 1
piece handle=/paic/bank/berrbs/data/oradata/rman_full/db_2fltu7if_1_1.bak tag=TAG20101126T001615
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:03:38
Finished restore at 2010-11-26 00:42:34

contents of Memory Script.:
{
   switch clone datafile all;
}
executing Memory Script

datafile 1 switched to datafile copy
input datafile copy recid=20 stamp=736044155 filename=/paic/bank/berrbs/data/oradata/berrbs/system01.dbf
datafile 2 switched to datafile copy
input datafile copy recid=21 stamp=736044155 filename=/paic/bank/berrbs/data/oradata/berrbs/undotbs01.dbf
datafile 3 switched to datafile copy
input datafile copy recid=22 stamp=736044155 filename=/paic/bank/berrbs/data/oradata/berrbs/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy recid=23 stamp=736044155 filename=/paic/bank/berrbs/data/oradata/berrbs/users01.dbf
datafile 5 switched to datafile copy
input datafile copy recid=24 stamp=736044155 filename=/paic/bank/berrbs/data/oradata/berrbs/auddata01.dbf
datafile 6 switched to datafile copy
input datafile copy recid=25 stamp=736044155 filename=/paic/bank/berrbs/data/oradata/berrbs/dbadata01.dbf
datafile 7 switched to datafile copy
input datafile copy recid=26 stamp=736044155 filename=/paic/bank/berrbs/data/oradata/berrbs/pauser01.dbf
datafile 8 switched to datafile copy
input datafile copy recid=27 stamp=736044155 filename=/paic/bank/berrbs/data/oradata/berrbs/dmlbakdata01.dbf
datafile 9 switched to datafile copy
input datafile copy recid=28 stamp=736044155 filename=/paic/bank/berrbs/data/oradata/berrbs/errbsdata01.dbf
datafile 10 switched to datafile copy
input datafile copy recid=29 stamp=736044155 filename=/paic/bank/berrbs/data/oradata/berrbs/errbsidx01.dbf
Finished Duplicate Db at 2010-11-26 00:42:36

5、验证dg是否ok,在生产switch 几个log,看是否自动传过来了

SQL> select open_mode,database_role from v$database;

OPEN_MODE                      DATABASE_ROLE
------------------------------ ------------------------------------------------
MOUNTED                        PHYSICAL STANDBY

SQL> alter database recover managed standby database disconnect from session;

Database altered.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15779287/viewspace-680433/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15779287/viewspace-680433/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值