导航

(1) 建立存放备用数据库相关文件的 OS 目录

(2) 建立例程服务

(3) 配置监听程序和网络服务名

(4) 准备主数据库参数文件

(5) 准备备用数据库参数文件

(6) 启用备用例程并建立备用数据库

(7) 启用备用数据库

先备份数据库:

C:\>rman target sys/orcl@demo nocatalog

恢复管理器: Release 10.2.0.1.0 - Production on 星期一 2月 16 18:11:41 2009

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

连接到目标数据库: DEMO (DBID=3411805505)
使用目标数据库控制文件替代恢复目录

RMAN> backup database plus archivelog
2> format='d:\backup\%d_%s.bak';

启动 backup 于 16-2月 -09
当前日志已存档
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=154 devtype=DISK
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =93 记录 ID=241 时间戳=678383978
输入存档日志线程 =1 序列 =94 记录 ID=243 时间戳=678968789
输入存档日志线程 =1 序列 =95 记录 ID=246 时间戳=678969070
输入存档日志线程 =1 序列 =96 记录 ID=247 时间戳=678974456
输入存档日志线程 =1 序列 =97 记录 ID=250 时间戳=678974463
输入存档日志线程 =1 序列 =98 记录 ID=253 时间戳=678974698
输入存档日志线程 =1 序列 =99 记录 ID=256 时间戳=678974716
输入存档日志线程 =1 序列 =100 记录 ID=259 时间戳=678991521
输入存档日志线程 =1 序列 =101 记录 ID=270 时间戳=678991647
输入存档日志线程 =1 序列 =102 记录 ID=274 时间戳=678997062
通道 ORA_DISK_1: 正在启动段 1 于 16-2月 -09
通道 ORA_DISK_1: 已完成段 1 于 16-2月 -09
段句柄=D:\BACKUP\DEMO_45.BAK 标记=TAG20090216T181743 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:09
完成 backup 于 16-2月 -09

启动 backup 于 16-2月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\DEMO\SYSTEM01.DBF
输入数据文件 fno=00004 name=D:\DEMO\USERS01.DBF
输入数据文件 fno=00003 name=D:\DEMO\SYSAUX01.DBF
输入数据文件 fno=00002 name=D:\DEMO\UNDOTBS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 16-2月 -09
通道 ORA_DISK_1: 已完成段 1 于 16-2月 -09
段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\DEMO\BACKUPSET\2009_02_16\O1
_MF_NNNDF_TAG20090216T181755_4SLHBNW6_.BKP 标记=TAG20090216T181755 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:55
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 16-2月 -09
通道 ORA_DISK_1: 已完成段 1 于 16-2月 -09
段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\DEMO\BACKUPSET\2009_02_16\O1
_MF_NCSNF_TAG20090216T181755_4SLHG91T_.BKP 标记=TAG20090216T181755 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:06
完成 backup 于 16-2月 -09

启动 backup 于 16-2月 -09
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =103 记录 ID=279 时间戳=678997197
通道 ORA_DISK_1: 正在启动段 1 于 16-2月 -09
通道 ORA_DISK_1: 已完成段 1 于 16-2月 -09
段句柄=D:\BACKUP\DEMO_48.BAK 标记=TAG20090216T181957 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 16-2月 -09

RMAN> backup current controlfile for standby
2> format='d:\backup\%d_%s.bak';

启动 backup 于 16-2月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括备用控制文件
通道 ORA_DISK_1: 正在启动段 1 于 16-2月 -09
通道 ORA_DISK_1: 已完成段 1 于 16-2月 -09
段句柄=D:\BACKUP\DEMO_49.BAK 标记=TAG20090216T182153 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 16-2月 -09

RMAN> exit

恢复管理器完成。

 

建立存放备用数据库相关文件的 OS 目录:

C:\>mkdir d:\standby3\adump

C:\>mkdir d:\standby3\bdump

C:\>mkdir d:\standby3\cdump

C:\>mkdir d:\standby3\udump

C:\>mkdir d:\standby3\archive

C:\>oradim -new -sid standby3 -syspwd orcl
实例已创建。

C:\>sqlplus sys/orcl@demo as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 2月 16 18:25:22 2009

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

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> create pfile from spfile;

文件已创建。

修改参数文件 initstandby1.ora:

fal_client='demo'
fal_server='standby1,standby2,standby3'
log_archive_config='dg_config=(demo,standby1,standby2,standby3)'
log_archive_dest_5='service=standby3 valid_for=(online_logfiles,primary_role) db_unique_name=standby3'
standby_file_management='auto'

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> create spfile from pfile;

文件已创建。

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  603979776 bytes
Fixed Size                  1250380 bytes
Variable Size             272632756 bytes
Database Buffers          322961408 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL> create pfile='%oracle_home%\database\initstandby3.ora'
  2  from spfile;

文件已创建。

修改参数文件 initstandby3.ora :

audit_file_dest='D:\standby3\adump'
background_dump_dest='D:\standby3\bdump'
control_files='d:\standby3\control01.ctl'
core_dump_dest='D:\standby3\cdump'
user_dump_dest='D:\standby3\udump'
standby_file_management='auto'
db_unique_name='standby3'
service_names=standby3
instance_name=standby3
fal_client='standby3'
fal_server='demo'
log_archive_config='dg_config=(demo,standby1,standby2,standby3)'
log_archive_dest_1='location=d:\standby3\archive valid_for=(all_logfiles,all_roles) db_unique_name=standby3'
log_archive_dest_2='service=demo valid_for=(online_logfiles,primary_role) db_unique_name=demo'
db_file_name_convert='d:\demo','d:\standby3'
log_file_name_convert='d:\demo\','d:\standby3','c:\demo','standby3'
standby_archive_dest='d:\standby3\archive' 

SQL> create spfile='%oracle_home%\database\spfilestandby3.ora'
  2  from pfile='%oracle_home%\database\initstandby3.ora';

文件已创建。

SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开

C:\>sqlplus sys/orcl@standby3 as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 2月 17 10:08:37 2009

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

已连接到空闲例程。

SQL> startup nomount
ORACLE 例程已经启动。

Total System Global Area  603979776 bytes
Fixed Size                  1250380 bytes
Variable Size             163580852 bytes
Database Buffers          432013312 bytes
Redo Buffers                7135232 bytes
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开

C:\>rman target sys/orcl@demo auxiliary sys/orcl@standby3

恢复管理器: Release 10.2.0.1.0 - Production on 星期二 2月 17 10:09:38 2009

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

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

RMAN> duplicate target database for standby dorecover;

启动 Duplicate Db 于 17-2月 -09
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=157 devtype=DISK

内存脚本的内容:
{
   set until scn  1869662;
   restore clone standby controlfile;
   sql clone 'alter database mount standby database';
}
正在执行内存脚本

正在执行命令: SET until clause

启动 restore 于 17-2月 -09
使用通道 ORA_AUX_DISK_1

通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在复原控制文件
通道 ORA_AUX_DISK_1: 正在读取备份段 D:\BACKUP\DEMO_49.BAK
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = D:\BACKUP\DEMO_49.BAK 标记 = TAG20090216T182153
通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:00:02
输出文件名=D:\STANDBY3\CONTROL01.CTL
完成 restore 于 17-2月 -09

sql 语句: alter database mount standby database
释放的通道: ORA_AUX_DISK_1

内存脚本的内容:
{
   set until scn  1869662;
   set newname for tempfile  1 to
"D:\STANDBY3\TEMP01.DBF";
   switch clone tempfile all;
   set newname for datafile  1 to
"D:\STANDBY3\SYSTEM01.DBF";
   set newname for datafile  2 to
"D:\STANDBY3\UNDOTBS01.DBF";
   set newname for datafile  3 to
"D:\STANDBY3\SYSAUX01.DBF";
   set newname for datafile  4 to
"D:\STANDBY3\USERS01.DBF";
   restore
   check readonly
   clone database
   ;
}
正在执行内存脚本

正在执行命令: SET until clause

正在执行命令: SET NEWNAME

临时文件 1 在控制文件中已重命名为 D:\STANDBY3\TEMP01.DBF

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

启动 restore 于 17-2月 -09
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=156 devtype=DISK

通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\STANDBY3\SYSTEM01.DBF
正将数据文件00002恢复到D:\STANDBY3\UNDOTBS01.DBF
正将数据文件00003恢复到D:\STANDBY3\SYSAUX01.DBF
正将数据文件00004恢复到D:\STANDBY3\USERS01.DBF
通道 ORA_AUX_DISK_1: 正在读取备份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA
\DEMO\BACKUPSET\2009_02_16\O1_MF_NNNDF_TAG20090216T181755_4SLHBNW6_.BKP
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\DEMO\BACKUPSET\2009_02_16\
O1_MF_NNNDF_TAG20090216T181755_4SLHBNW6_.BKP 标记 = TAG20090216T181755
通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:02:06
完成 restore 于 17-2月 -09

内存脚本的内容:
{
   switch clone datafile all;
}
正在执行内存脚本

数据文件 1 已转换成数据文件副本
输入数据文件副本 recid=30 stamp=679054458 文件名=D:\STANDBY3\SYSTEM01.DBF
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=31 stamp=679054459 文件名=D:\STANDBY3\UNDOTBS01.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=32 stamp=679054459 文件名=D:\STANDBY3\SYSAUX01.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 recid=33 stamp=679054459 文件名=D:\STANDBY3\USERS01.DBF

内存脚本的内容:
{
   set until scn  1869662;
   recover
   standby
   clone database
    delete archivelog
   ;
}
正在执行内存脚本

正在执行命令: SET until clause

启动 recover 于 17-2月 -09
使用通道 ORA_AUX_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 103 已作为文件 D:\DEMO\ARCHIVE\ARC00103_0674493001.001 存在
于磁盘上
存档日志线程 1 序列 104 已作为文件 D:\DEMO\ARCHIVE\ARC00104_0674493001.001 存在
于磁盘上
存档日志文件名 =D:\DEMO\ARCHIVE\ARC00103_0674493001.001 线程 =1 序列 =103
存档日志文件名 =D:\DEMO\ARCHIVE\ARC00104_0674493001.001 线程 =1 序列 =104
介质恢复完成, 用时: 00:00:05
完成 recover 于 17-2月 -09
完成 Duplicate Db 于 17-2月 -09

RMAN> exit

恢复管理器完成。

C:\>sqlplus sys/orcl@standby3 as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 2月 17 10:15:48 2009

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

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> select status from v$instance;

STATUS
------------
MOUNTED

SQL> conn sys/orcl@demo as sysdba
已连接。
SQL> alter system switch logfile;

系统已更改。

SQL> conn sys/orcl@standby3 as sysdba
已连接。
SQL> select name from v$archived_log;

NAME
--------------------------------------------------------------------------------

D:\STANDBY3\ARCHIVE\ARC00093_0674493001.001
D:\STANDBY3\ARCHIVE\ARC00094_0674493001.001
D:\STANDBY3\ARCHIVE\ARC00095_0674493001.001
D:\STANDBY3\ARCHIVE\ARC00096_0674493001.001
D:\STANDBY3\ARCHIVE\ARC00097_0674493001.001
D:\STANDBY3\ARCHIVE\ARC00098_0674493001.001
D:\STANDBY3\ARCHIVE\ARC00099_0674493001.001
D:\STANDBY3\ARCHIVE\ARC00100_0674493001.001
D:\STANDBY3\ARCHIVE\ARC00105_0674493001.001

已选择9行。

SQL> alter database open;

数据库已更改。

SQL> select name from v$tempfile;

NAME
--------------------------------------------------------------------------------

D:\STANDBY3\TEMP01.DBF