Oracle以TSPITR方式恢复表空间数据一例

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

举一个例子:一个 Oracle 数据库运行在归档模式下,在夜间22点保留一份完全备份。早上8点时候,某个特定表空间上数据表(单个表独占表空间)发生一个误操作,数据损坏。要求在不伤害其他数据表数据的情况下,将表空间数据恢复到早上5点。 这样部分数据恢复的场景,就是 TSPITR 的典型应用。 在实际场景中,常常希望恢复部分的数据到过去时间点上。

TSPITR 目前最方便的方法是使用 RMAN 进行自动的恢复。

其使用前提为两个:

1. 必须存在相应的备份集合

2. 表空间对象是子包含的 ,也就是其他表空间中不包括与这个表空间对象相关的对象数据(互相独立)

恢复步骤和原理如下:

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 操作也是对这个过程的完全自动化运行。

下面通过实验来进行演示操作:

--创建测试用户zlm并赋予权限

时间: 2024-11-08 15:35:24

Oracle以TSPITR方式恢复表空间数据一例的相关文章

以TSPITR方式恢复表空间数据一例

通常见到的还原操作,都是将所有的表空间和数据还原到相同的一个时间点上,无论是否是故障恢复点.而TSPITR则是以表空间为粒度单元,单独将某个表空间内容还原到一个特定可恢复时间点上. 举一个例子:一个Oracle数据库运行在归档模式下,在夜间22点保留一份完全备份.早上8点时候,某个特定表空间上数据表(单个表独占表空间)发生一个误操作,数据损坏.要求在不伤害其他数据表数据的情况下,将表空间数据恢复到早上5点.这样部分数据恢复的场景,就是TSPITR的典型应用.在实际场景中,常常希望恢复部分的数据到

Oracle Table连接方式分析

Oracle Table连接方式分析 表连接基本知识: 1.哪张表将驱动查询(即访问的第一张表)?按照指定的路径查询,何时将访问到没一张表?可选的驱动路径有哪些? 2.可能出现哪些Oracle连接?记住:在Oracle中,连接顺序.可选的索引.用于排序和建立散列表的可用内存的不同都会导致不同的结果. 3.哪些索引是可用的?哪些索引是可选的?索引的选择不仅仅将导致优化器使用或者限制一个索引,还将改变驱动查询的方式,并可能决定使用或者限制查询中其他的索引. 4.哪些提示提供了可选的路径?哪些提示限制

ORACLE 12C使用RMAN进行表恢复

在12C以前的版本中rman可以进行db,tablespace,datafile,block级别和TSPITR的恢复,12C引入了table级别的恢复在没有打开flashback的时候可以进行单个表的恢复. 例,创建表 SQL>  alter session set container=pdb2; Session altered. SQL> create table frank.t1 as select * from dba_tables; Table created. 备份数据库 RMAN&

Oracle 12C 新特性之 恢复表

RMAN的表级和表分区级恢复应用场景: 1.You need to recover a very small number of tables to a particular point in time. In this situation, TSPITR is not the most effective solution because it moves all the objects in the tablespace to a specified point in time.2.You

如何恢复oracle中已删除的表

在9i中Oracle引入了flashback的概念,可以将数据返回到某个时间点,但对于诸如drop/truncate等DDL语句却尚不支持.进入Oracle10g,这一缺陷得到了弥补.可以将丢失掉的表,通过flashback命令直接找回.非常简单且易用. 1.首先,可以查看当前schema中的表: SQL> select * from tab; TNAME                    TABTYPE  CLUSTERID ------------------------ -------

Oracle恢复表数据

Oracle恢复数据 在oracle 10g以及之后的版本,提供了回收站的机制,为了防止误操作将表数据清空而有回收机制. 换句话说,我们删除的表不会立马消失,而是进入回收站.下面我们可以查看回收站 查看回收站 --查看回收站 SHOW RECYCLEBIN; 恢复数据 如果回收站中有我们误删除的表,我们可以通过flashback将表数据恢复 --恢复表数据 FLASHBACK TABLE 表名称 TO BEFORE DROP; 从回收站中清空表 我们也可以从回收站中把表清空 --清空回收站中的某

Oracle中Drop,Delete,Truancate表恢复

Oracle中Drop,delete,truancate表恢复 oracle中,常常会由于一些失误导致表的删除,以下是我写的一些表恢复的方法. 闪回模式得满足条件(启用闪回区和启用归档): 1.检查是否启动了flash recovery area show parameter db_recovery_file 2.检查是否启用了归档 archive log list; (一)Drop表的恢复 如果按照平时删除表的方法:(Drop table tablename;)的话.表不会立即被删除,而是存放

Oracle表空间数据文件移动

Oracle表空间数据文件移动 系统:windows oracle:10g 实现把用户表空间中的数据文件从某一个路径移动到里一个路径 一.针对可offline的非系统表空间 本例移动oracle的案例表空间(EXAMPLE表空间),将其从 D:\ORADATA\ORCL\ 移动到 D:\ORACLE\ORADATA\ 1.查看要改变的表空间的数据文件信息 SQL> select tablespace_name,file_name,online_status from dba_data_files

oracle表空间数据文件的移动

需求:把用户的某一个表空间中的数据文件由于某种原因从一个路径移动到里一个路径原因:(1)当前实例中的表空间文件及系统表空间文件全在一块硬盘上,导致IO增加.装数据库表空间移走.减少IO.(2)磁盘空间有限,这个磁盘空间太小了,随着数据的增长,需要换一块大的磁盘可行性:linux的文件都是通过挂载,到一个目录下,磁盘的移动就只是文件路径的改变. 实现此方法有两种方法1.alter tablespace(1)查看要改变的这个表空间所对应的数据文件信息SQL> select tablespace_na