热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

DM归档的修复及应用场景

在DM数据库还原中很多时候需要应用归档将数据库恢复到最新状态或指定时间点,但有时可能会报归档日志不完整的错误,此时我们需要使用到归档修复。归档日志修复

在DM数据库还原中很多时候需要应用归档将数据库恢复到最新状态或指定时间点,但有时可能会报归档日志不完整的错误,此时我们需要使用到归档修复。

归档日志修复

表空间还原会自动应用归档日志,我们以DMHR表空间的备份还原为例,演示造成归档日志不完整的原因,及修复方法。

DM8只能联机备份表空间,执行如下命令备份DMHR表空间。

SQL> backup tablespace dmhr backupset '/dm8/backup/TS_DMHR_FULL_20201015';

此时,在指定的备份集目录下生成备份集文件。可以看出联机表空间备份只产生一个.bak备份文件,这是因为表空间备份只备份数据,不备份redo日志。

也可以使用show backupset命令查看备份集数据,执行如下命令:

RMAN>show backupset '/dm8/backup/TS_DMHR_FULL_20201015';

查看结果显示如下:

备份后我们做一些数据操作,产生重做日志(注意,最后一个插入未提交数据):

执行rm DMHR.DBF删除数据文件。

数据库正常关闭场景

使用shutdown immediate正常关闭数据库。

执行表空间还原操作:

RMAN>restore database '/dm8/data/DAMENG/dm.ini' tablespace dmhr frombackupset '/dm8/backup/TS_DMHR_FULL_20201015';

执行如下命令进行表空间恢复,表空间恢复会自动加载应用归档日志文件(dmarch.ini中配置的归档日志路径)恢复到最新的时间点:

RMAN>recover database '/dm8/data/DAMENG/dm.ini' tablespace dmhr;

恢复后启动数据库,查询表数据,可以看到已提交的数据已恢复,未提交的数据已回退。

数据库异常关闭场景

如何数据库不是正常关闭,而是异常关闭的,比如使用shutdown abort命令强制关闭数据库(或者kill -9结束数据库进程)。

执行表空间还原:

还原后执行表空间恢复,报错[-8216]:归档日志不完整。

这是因为数据库异常关闭,部分已提交的数据产生的redo日志还未写入归档文件(已写入联机日志文件)。

此时可以执行如下命令进行归档修复:

RMAN>repair archivelog database '/dm8/data/DAMENG/dm.ini';

再进行表空间恢复操作,表空间正常恢复,并应用归档日志恢复到最新时刻。

恢复后启动数据库,查询表数据,可以看到已提交的数据已恢复,未提交的数据已回退。

总结:

归档日志修复是利用联机日志修复dmarch.ini中配置的本地归档日志目录中的归档文件,执行修复时,目标库不能处于运行状态。

数据库正常关闭场景下,一般不需要归档修复,除非删除了历史归档日志造成归档日志不连续([-718]:收集到的归档日志不连续),此时需要从归档的备份中还原归档日志文件。

一般建议在数据库故障(非正常关闭)情况下,应立即执行归档修复,否则可能因为部分redo日志未及时写入本地归档文件,导致归档日志中REDO日志缺失(归档日志不连续),届时如果下次数据库故障需要还原和恢复,利用归档文件将无法恢复到故障前的最新状态。


推荐阅读
  • binlog2sql,你该知道的数据恢复工具
    binlog2sql,你该知道的数据恢复工具 ... [详细]
  • Windows环境下Oracle数据库迁移实践
    本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ... [详细]
  • 在Android应用开发过程中,开发者经常遇到诸如CPU使用率过高、内存泄漏等问题。本文将介绍几种常用的命令及其应用场景,帮助开发者有效定位并解决问题。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • 将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
    随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ... [详细]
  • 本文详细介绍了MySQL InnoDB存储引擎中的Redo Log和Undo Log,探讨了它们的工作原理、存储方式及其在事务处理中的关键作用。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • Hibernate全自动全映射ORM框架,旨在消除sql,是一个持久层的ORM框架1)、基础概念DAO(DataAccessorOb ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文详细介绍了在MyBatis框架中如何通过#和$两种方式来传递SQL查询参数。使用#方式可以提高执行效率,而使用$则有助于在复杂SQL语句中更好地查看日志。此外,文章还探讨了不同场景下的参数传递方法,包括实体对象、基本数据类型以及混合参数的使用。 ... [详细]
  • 本文深入探讨了MySQL中的高级特性,包括索引机制、锁的使用及管理、以及如何利用慢查询日志优化性能。适合有一定MySQL基础的读者进一步提升技能。 ... [详细]
  • 在使用mybatis进行mapper.xml测试的时候发生必须为元素类型“mapper”声明属性“namespace”的错误项目目录结构UserMapper和UserMappe ... [详细]
  • 面对众多的数据分析工具,如何选择最适合自己的那一个?对于初学者而言,了解并掌握几种核心工具是快速入门的关键。本文将从数据处理的不同阶段出发,推荐三种广泛使用的数据分析工具。 ... [详细]
  • Awk是一款功能强大的文本分析与处理工具,尤其在数据解析和报告生成方面表现突出。它通过读取由换行符分隔的记录,并按照指定的字段分隔符来划分和处理这些记录,从而实现复杂的数据操作。 ... [详细]
author-avatar
翡翠雕刻师李贵
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有