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

使用RMAN进行表空间TSPITR自动恢复

Oracle发展到今天,在备份还原领域已经构建了完善的解决方案体系。绝大多数情况下,我们的备份还原需求都可以用Oracle成熟方案实

Oracle发展到今天,在备份还原领域已经构建了完善的解决方案体系。绝大多数情况下,我们的备份还原需求都可以用Oracle成熟方案实

Oracle发展到今天,在备份还原领域已经构建了完善的解决方案体系。绝大多数情况下,我们的备份还原需求都可以用Oracle成熟方案实现的。TSPITR(Tablespace Point In Time Recover)数据表空间定点恢复是我们在实践中偶尔会使用的一种恢复场景。本篇就围绕这个问题进行讨论实验。

--------------------------------------分割线 --------------------------------------

推荐阅读:

RMAN 配置归档日志删除策略

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

--------------------------------------分割线 --------------------------------------

1、聊聊TSPITR

严格的说TSPITR是一种相对细粒度的不完全恢复技术。我们通常见到的还原操作,都是将所有的表空间和数据还原到相同的一个时间点上,无论是否是故障恢复点。而TSPITR则是以表空间为粒度单元,单独将某个表空间内容还原到一个特定可恢复时间点上。

举一个例子:一个Oracle数据库运行在归档模式下,在夜间零时保留一份完全备份。早上七点时候,某个特定表空间上数据表(单个表独占表空间)发生一个误操作,数据损坏。要求在不伤害其他数据表数据的情况下,,将表空间数据恢复到早上六点。

这样部分数据恢复的场景,就是TSPITR的典型应用。我们在实际场景中,常常希望恢复部分的数据到过去时间点上,而不希望对现有数据进行补录。

TSPITR目前最方便的方法是使用RMAN进行自动的恢复。其使用前提为两个,一个是必须存在相应的备份集合,另一个是表空间对象是“self-contain”,也就是其他表空间中不包括与这个表空间对象相关的对象数据。

恢复步骤和原理如下:

ü RMAN三个对象集合:catalog、target和auxiliary。其中auxiliary就是用于辅助target各种备份还原要求的操作数据库。这个库在TSPITR中扮演临时数据还原作用的;

ü 首先完成数据检查工作,确定备份集合和表空间完整性;

ü 当前时间是T1,如果需要将数据还原为T0。使用RMAN提取备份数据集合,还原到auxiliary上形成一个新的实例数据库。选择性应用归档日志序列,还原auxiliary到TO时间点;

ü 使用expdp工具从auxiliary中导出目标表空间为dump对象。注意:还原auxiliary并不是100%重建target,而是选择系统运行表空间和目标表空间;

ü 在target数据库中删除原表空间。使用impdp工具导入dump文件进入target数据库;

ü 清理环境,将创建的auxiliary数据库删除;

这种系列操作,我们如果使用RMAN命令系列是可以逐步完成的。自动化RMAN的TSPITR操作也是对这个过程的完全自动化运行。下面我们通过实验来进行演示操作。

2、环境准备

我们选择Oracle 11gR2进行试验。

SQL> select * from v$version;

BANNER

-----------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 - Production

CORE 11.2.0.1.0 Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 – Production

SQL> select log_mode from v$database;

LOG_MODE

------------

ARCHIVELOG

创建实验表空间和实验数据表T。注意:由于我们使用的是11.2.0.1版本,如果使用sys用户进行测试,会引起Bug 12411104 : RMAN DUPLICATE RMAN-05548 WHEN CONNECTED TO TARGET。为避免问题,我们切换入scott用户执行。

SQL> create tablespace tsptiptbl datafile size 100m autoextend off

2 extent management local uniform size 1m

3 segment space management auto;

Tablespace created

--切换到scott用户进行试验,这个很重要!!(在11.2.0.1版本上)

SQL> conn scott/tiger@wilson ;

Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0

Connected as scott

SQL> create table t tablespace tsptiptbl as select * from dba_objects;

Table created

保留一个备份集合。

BS Key Type LV Size Device Type Elapsed Time Completion Time

------- ---- -- ---------- ----------- ------------ ---------------

142 Full 1.33G DISK 00:02:52 16-FEB-14

BP Key: 142 Status: AVAILABLE Compressed: NO Tag: TAG20140216T191156

Piece Name: /u01/flash_recovery_area/WILSON/backupset/2014_02_16/o1_mf_nnndf_TAG20140216T191156_9j177yk1_.bkp

List of Datafiles in backup set 142

(篇幅原因,有省略……)

BS Key Size Device Type Elapsed Time Completion Time

------- ---------- ----------- ------------ ---------------

143 21.50K DISK 00:00:00 16-FEB-14

推荐阅读
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 本文详细介绍了HTML中标签的使用方法和作用。通过具体示例,解释了如何利用标签为网页中的缩写和简称提供完整解释,并探讨了其在提高可读性和搜索引擎优化方面的优势。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 如何在PostgreSQL中查看数据表
    本文将指导您使用pgAdmin工具连接到PostgreSQL数据库,并展示如何浏览和查找其中的数据表。通过简单的步骤,您可以轻松访问所需的表结构和数据。 ... [详细]
  • 在即将迎来26岁生日之际,作者的人生陷入了低谷。经过近三年的硕士学习后,最终决定退学,并且面临没有工作经验的困境。尽管如此,作者依然坚定地选择为自己的人生负责。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 本文详细介绍了美国最具影响力的十大财团,包括洛克菲勒、摩根、花旗银行等。这些财团在历史发展过程中逐渐形成,并对美国的经济、政治和社会产生深远影响。 ... [详细]
author-avatar
mobiledu2402851203
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有