18.3.2 在不同主机上使用 RMAN 备份建立物理备用数据库

本文详细介绍了一个Oracle备用数据库的搭建过程,包括创建必要的操作系统目录、配置监听程序和服务名、准备参数文件、复制文件到备用主机、启动及配置备用数据库等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

(2) 建立例程服务

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

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

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

(6) 复制相关文件到备用主机

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

(8) 启动备用数据库

备份数据库:

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

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

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

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

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

启动 backup 于 17-2月 -09
当前日志已存档
使用通道 ORA_DISK_1
通道 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
输入存档日志线程 =1 序列 =103 记录 ID=278 时间戳=678997197
输入存档日志线程 =1 序列 =104 记录 ID=282 时间戳=679053757
输入存档日志线程 =1 序列 =105 记录 ID=292 时间戳=679054584
输入存档日志线程 =1 序列 =106 记录 ID=295 时间戳=679055783
输入存档日志线程 =1 序列 =107 记录 ID=298 时间戳=679055906
输入存档日志线程 =1 序列 =108 记录 ID=301 时间戳=679060674
通道 ORA_DISK_1: 正在启动段 1 于 17-2月 -09
通道 ORA_DISK_1: 已完成段 1 于 17-2月 -09
段句柄=D:/BACKUP/DEMO_55.BAK 标记=TAG20090217T115755 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:10
完成 backup 于 17-2月 -09

启动 backup 于 17-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 于 17-2月 -09
通道 ORA_DISK_1: 已完成段 1 于 17-2月 -09
段句柄=D:/BACKUP/DEMO_56.BAK 标记=TAG20090217T115808 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:55
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 17-2月 -09
通道 ORA_DISK_1: 已完成段 1 于 17-2月 -09
段句柄=D:/BACKUP/DEMO_57.BAK 标记=TAG20090217T115808 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
完成 backup 于 17-2月 -09

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

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

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

RMAN> exit

恢复管理器完成。

 

复制数据库所在主机操作:

C:/>mkdir d:/standby4

C:/>mkdir d:/standby4/adump

C:/>mkdir d:/standby4/bdump

C:/>mkdir d:/standby4/cdump

C:/>mkdir d:/standby4/udump

C:/>mkdir d:/standby4/archive

C:/>oradim -new -sid standby4 -syspwd orcl
实例已创建。

修改 listener.ora:

(SID_DESC =
  (GLOBAL_DBNAME = standby4)
  (ORACLE_HOME = D:/oracle/product/10.2.0/db_1)
  (SID_NAME = standby4)
)

修改 tnsnames.ora:

STANDBY4 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = testpc)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = standby4)
    )
  )

 

主数据库所在主机操作:

修改 tnsnames.ora:

STANDBY4 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = testpc)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = standby4)
    )
  )

 

SQL> conn sys/orcl@demo as sysdba
已连接。
SQL> create pfile from spfile;

文件已创建。

修改initdemo.ora:

fal_client='demo'
fal_server='standby1,standby2,standby3,standby4'
log_archive_config='dg_config=(demo,standby1,standby2,standby3,standby4)'
log_archive_dest_6='service=standby4 valid_for=(online_logfiles,primary_role) db_unique_name=standby4'

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

文件已创建。

SQL> create pfile='%oracle_home%/database/initstandby4.ora'
  2  from spfile;

文件已创建。

修改initstandby4.ora:

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

SQL> create spfile='%oracle_home%/database/spfilestandby4.ora'
  2  from pfile='%oracle_home%/database/initstandby4.ora';

文件已创建。

SQL> host copy d:/backup/*.* //testpc/backup/*.*
d:/backup/DEMO_50.BAK
d:/backup/DEMO_51.BAK
d:/backup/DEMO_52.BAK
d:/backup/DEMO_53.BAK
d:/backup/DEMO_54.BAK
已复制         5 个文件。

SQL> host copy %oracle_home%/database/spfilestandby4.ora //testpc/oracle_home/da
tabase/spfilestandby4.ora

已复制         1 个文件。
SQL> conn sys/orcl@standby4 as sysdba
已连接到空闲例程。
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:/>sqlplus sys/orcl@demo as sysdba

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

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

已连接到空闲例程。

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  603979776 bytes
Fixed Size                  1250380 bytes
Variable Size             281021364 bytes
Database Buffers          314572800 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@standby4

恢复管理器: Release 10.2.0.1.0 - Production on 星期二 2月 17 12:08:04 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=155 devtype=DISK

内存脚本的内容:
{
   set until scn  1873968;
   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: 正在复原控制文件

故障转移到上一个备份

…………………………………………………………………………………………

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
D:/STANDBY3/ARCHIVE/ARC00106_0674493001.001
D:/STANDBY3/ARCHIVE/ARC00107_0674493001.001

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

D:/STANDBY3/ARCHIVE/ARC00108_0674493001.001
D:/STANDBY3/ARCHIVE/ARC00109_0674493001.001
D:/STANDBY3/ARCHIVE/ARC00110_0674493001.001

已选择14行。

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
D:/STANDBY3/ARCHIVE/ARC00106_0674493001.001
D:/STANDBY3/ARCHIVE/ARC00107_0674493001.001

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

D:/STANDBY3/ARCHIVE/ARC00108_0674493001.001
D:/STANDBY3/ARCHIVE/ARC00109_0674493001.001
D:/STANDBY3/ARCHIVE/ARC00110_0674493001.001
D:/STANDBY3/ARCHIVE/ARC00111_0674493001.001

已选择15行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值