ITPub博客

首页 > 数据库 > Oracle > 11g physical standby datafile lost, use rman backup to recover

11g physical standby datafile lost, use rman backup to recover

原创 Oracle 作者:sdusun 时间:2019-06-29 11:15:05 0 删除 编辑

恢复步骤和单实例基本一样。

需要注意的是,用rman open数据库的时候,有可能会触发ora-600。

[@more@]

1 备份主库
C:Documents and SettingsAdministrator>rman target sys/oracle@primary catalog r
man_bak/rman_bak@orabak

恢复管理器: Release 11.1.0.6.0 - Production on 星期四 8月 28 14:34:47 2008

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

连接到目标数据库: PRIMARY (DBID=1498826162)
连接到恢复目录数据库

RMAN>

RMAN> show all;

db_unique_name 为 PRIMARY 的数据库的 RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BZIP2'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:APPADMINISTRATORPRODUCT11.1.0DB_2
DATABASESNCFPRIMARY.ORA'; # default

RMAN>

RMAN> backup as backupset database format 'd:rmanbackupdb_%U.bak';

启动 backup 于 28-8月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=97 设备类型=DISK
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00002 名称=D:APPADMINISTRATORPRIMARYORADATAPRIMARYSYS
AUX01.DBF
输入数据文件: 文件号=00001 名称=D:APPADMINISTRATORPRIMARYORADATAPRIMARYSYS
TEM01.DBF
输入数据文件: 文件号=00003 名称=D:APPADMINISTRATORPRIMARYORADATAPRIMARYUND
OTBS01.DBF
输入数据文件: 文件号=00005 名称=D:APPADMINISTRATORPRIMARYORADATAPRIMARYEXA
MPLE01.DBF
输入数据文件: 文件号=00006 名称=D:APPADMINISTRATORPRIMARYORADATAPRIMARYTES
T_STDBY.DBF
输入数据文件: 文件号=00007 名称=D:APPADMINISTRATORPRIMARYORADATAPRIMARYTES
T_STDBY02.DBF
输入数据文件: 文件号=00004 名称=D:APPADMINISTRATORPRIMARYORADATAPRIMARYUSE
RS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 28-8月 -08
通道 ORA_DISK_1: 已完成段 1 于 28-8月 -08
段句柄=D:RMANBACKUPDB_0SJP66EA_1_1.BAK 标记=TAG20080828T150338 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:04:38
完成 backup 于 28-8月 -08

启动 Control File and SPFILE Autobackup 于 28-8月 -08
段 handle=D:APPADMINISTRATORFLASH_RECOVERY_AREAPRIMARYAUTOBACKUP2008_08_28
O1_MF_S_663952109_4CDMQQDP_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 28-8月 -08
正在启动全部恢复目录的 resync
完成全部 resync

RMAN>

2 主库数据文件丢失
SQL>
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 535662592 bytes
Fixed Size 1334380 bytes
Variable Size 293602196 bytes
Database Buffers 234881024 bytes
Redo Buffers 5844992 bytes
数据库装载完毕。
SQL>
SQL> select database_role from v$database;

DATABASE_ROLE
--------------------------------
PRIMARY

SQL>
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 7: 'D:APPADMINISTRATORPRIMARYORADATAPRIMARYTEST_STDBY02.DBF'


SQL>
SQL>


3 restore and recovery
C:Documents and SettingsAdministrator>rman target sys/oracle@primary catalog r
man_bak/rman_bak@orabak

恢复管理器: Release 11.1.0.6.0 - Production on 星期四 8月 28 15:12:28 2008

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

已连接到目标数据库: PRIMARY (DBID=1498826162, 未打开)
连接到恢复目录数据库

RMAN> restore datafile 7;

启动 restore 于 28-8月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=155 设备类型=DISK

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00007 还原到 D:APPADMINISTRATORPRIMARYORADATAPR
IMARYTEST_STDBY02.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:RMANBACKUPDB_0SJP66EA_1_1.BAK
通道 ORA_DISK_1: 段句柄 = D:RMANBACKUPDB_0SJP66EA_1_1.BAK 标记 = TAG20080828T1
50338
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:03
完成 restore 于 28-8月 -08

RMAN> recover datafile 7;

启动 recover 于 28-8月 -08
使用通道 ORA_DISK_1

正在开始介质的恢复
介质恢复完成, 用时: 00:00:00

完成 recover 于 28-8月 -08

RMAN>

RMAN> alter database open;

数据库已打开

SQL>
SQL> select status from v$instance;

STATUS
------------------------
OPEN

SQL>

4 可能会触发Ora-600,还是用sqlplus Open数据库比较保险
RMAN> alter database open;

数据库已打开
RPC 调用似乎无法在通道default上启动
在通道 default 上 RPC 调用成功
RMAN-06900: 警告: 无法生成 V$RMAN_STATUS 或 V$RMAN_OUTPUT 行
RMAN-06901: 警告: 禁止更新 V$RMAN_STATUS 和 V$RMAN_OUTPUT 行
来自目标数据库的 ORACLE 错误:
ORA-03123: 操作将阻塞

DBGANY: Mismatched message length! [15:15:09.484] (krmiduem)
DBGANY: Mismatched message length! [15:15:09.484] (krmiduem)

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00600: internal error, arguments [3045] [] [] [] []
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03008: 在执行恢复目录的自动重新同步时出错
ORA-03127: no new operations allowed until the active operation ends
ORA-03127: no new operations allowed until the active operation ends

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

请登录后发表评论 登录
全部评论

注册时间:2005-09-13

  • 博文量
    116
  • 访问量
    118267