我的编程空间,编程开发者的网络收藏夹
学习永远不晚

oracle dataguard archive gap后恢复

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

oracle dataguard archive gap后恢复

起因:源端数据库应用程序逻辑错误,导致重大量重试回滚,日产生归档300GB,异地备份在10Mbps的网速下,产生了archive gap;
解决流程:
1 查出备库当前的scn号

select current_scn from v$database;
1612480746

2 在主库生成基于备库scn的增量备份

--primary
show all;
run{
ALLOCATE CHANNEL d1 TYPE disk;
set limit channel d1 kbytes=104857600;
BACKUP  INCREMENTAL FROM SCN 1612480746 DATABASE FORMAT 'J:\%U_for_stb.bk' include current controlfile for standby;
}

3 传送日志到备库

--standby
catalog start with 'e:\inc';

4 应用control file,增量备份集

restore standby controlfile to 'e:\control01.ctl' ;
shutdown immediate;
copy   e:\control01.ctl   E:\ORADATA\TCIS\CONTROL01.CTL
copy    e:\control01.ctl  E:\ORADATA\TCIS\CONTROL02.CTL
copy    e:\control01.ctl  E:\ORADATA\TCIS\CONTROL03.CTL

recover database noredo;
报错:

RMAN-03002: recover 命令 (在 07/08/2018 10:49:09 上) 失败
RMAN-06094: 数据文件5必须重新存储

启动原先的备库,select name from v$datafile
发现文件有重新rename的;有点梗;
5 修改数据文件位置

alter system set standby_file_management=manual;   
alter database rename file 'E:\ORADATA\TCIS\UBSS_INDX01.DBF' to 'd:\oradata\tcis\ubss_indx01.dbf';
alter database rename file 'E:\ORADATA\TCIS\UBSS_INDX02.DBF' to 'd:\oradata\tcis\ubss_indx02.dbf';

6 再次recover database noredo

又报错,第16号文件不存在
RMAN-03002: recover 命令 (在 07/08/2018 10:49:09 上) 失败
RMAN-06094: 数据文件16必须重新存储

以老的控制文件启动,发现第16号文件是之后添加的
7 主库上备份16号文件
backup datafile 16 format 'j:\16.bak';
8 备库上恢复16文件

--primary
catalog start with 'e:\inc';
restore datafile 16 ;
recover database noredo;
RMAN-03002: recover 命令 (在 07/07/2018 10:44:11 上) 失败
ORA-19693: 已包括备份片段 E:\INC\CDT7BHIL_1_1_FOR_STB.BK
recover失败,很名显,这个16号文件是之后恢复的,其scn大于之前做的备份片集

9 清理无效的备份片,再次重复2之后的步骤,backup ,restore controlfile,rename datafile,recover database ;

10 恢复完成后检查
复原参数
alter system set standby_file_management=auto;
启动recover
alter database recover managed standby database disconnect;
检查日志应用情况

SQL> select status,blocks,process,sequence# from v$managed_standby;

STATUS           BLOCKS PROCESS    SEQUENCE#
------------ ---------- --------- ----------
CONNECTED             0 ARCH               0
CONNECTED             0 ARCH               0
CONNECTED             0 ARCH               0
CONNECTED             0 ARCH               0
IDLE              20480 RFS            45261
IDLE              20480 RFS            45262
IDLE                  0 RFS                0
APPLYING_LOG      81560 MRP0           45248

检查归档,删除已应用的归档

select a.thread#, a.sequence#, a.applied,a.name
from v$archived_log a, v$database d
where a.activation# = d.activation#
and a.applied='YES' order by 2;

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

oracle dataguard archive gap后恢复

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

oracle删除后怎么恢复

要恢复已删除的 oracle 数据,可以使用以下步骤:1. 确认数据已删除;2. 检查备份;3. 使用 flashback 工具;4. 从回收站表中恢复;5. 使用 undo 表空间。始终备份数据库,启用 flashback 功能和 und
oracle删除后怎么恢复
2024-04-18

oracle中truncate后还能恢复吗

截断 (truncate) 后无法直接恢复数据。截断绕过日志记录,因此无法使用回滚或闪回查询恢复数据。为了避免数据丢失,请定期备份数据库并仔细考虑截断操作。Oracle 中截断 (truncate) 后能否恢复?截断 (truncate)
oracle中truncate后还能恢复吗
2024-04-30

oracle误删用户后怎么恢复

当Oracle数据库中的用户被误删后,可以通过以下步骤来尝试恢复该用户:1. 使用管理员账户登录到Oracle数据库。2. 确保数据库开启了归档模式(archive mode),这样可以恢复到误删除用户之前的状态。3. 执行以下命令查询目标
2023-08-31

oracle删除数据后怎么恢复

oracle 数据恢复:删除后如何恢复?如果在事务过程中删除数据,可以通过回滚段恢复数据。如果启用了闪回区域,可以通过闪回查询恢复数据。如果定期备份数据库,可以通过备份恢复数据。Oracle 数据恢复:删除后如何恢复直接回答:删除 Or
oracle删除数据后怎么恢复
2024-04-18

编程热搜

目录