表空间时间点恢复
以下部分内容适只用于10g
一、TSPITR简介
TSPITR(表空间时间点恢复)用于将一个或多个表空间恢复到过去某个时间点的状态,而其他表空间仍然保持现有状态。
(1)TSPITR(Tablespace Point-In-Time Recovery),只适用于ARCHIVELOG模式。
(2)TSPITR实现方法,建议使用RMAN实现表空间时间点恢复。
(3)DBPITR(Database Point-In-TIme Recovery),数据库时间点恢复;表示将数据库的所有表空间恢复到过去时间颠倒俄状态,只适用于ARCHIVELOG模式。
(4)主数据库(Primary Database),用于存放应用系统数据的Oracle数据库。当执行TSPITR时,主数据库是指包含有被恢复表空间的数据库。
(5)恢复集(Recovery Set),是指在主数据库上需要执行TSPITR的表空间集合。注意,当在恢复集的表空间上执行TSPITR时,要求这些表空间必须是自包含的。
(6)辅助数据库(Auxiliary Database),是主数据库的一个副本数据库。当执行TSPITR时,辅助数据库用于将恢复集表空间恢复到过去时间点。注意,辅助数据库的所有物理文件都是从主数据库备份中取得,并且辅助数据库必须包含SYSTEM表空间、UNDO表空间、恢复集表空间的备份文件。
(7)辅助集(Auxiliary Set),是指辅助数据库所需要的、除了恢复集表空间文件之外地饿其他文件集合。当执行TSPITR时,辅助数据库除了需要恢复表空间的备份文件之外,还需要备份控制文件、SYSTEM表空间的备份文件、UNDO表空间的备份文件。
二、准备TSPITR
1、确定TSPITR需求
(1)检查恢复集表空间是否为自包含
自包含表空间集合是指具有关联关系的表空间集合。假定,表空间A包含表EMP,表空间B包含表EMP的索引IND_EMP;如果要在表空间B上执行TSPITR,则必须同时在表空间A上执行TSPITR,此时表空间A和B为自包含表空间。
违反自包含表空间集合的常见情况如下:
1> 表空间集合包含有SYS方案对象
2> 表空间集合包含了索引所在的表空间,但没有包含索引基表所在的表空间
3> 表空间集合没有包含分区表的所有分区
4> 表空间集合包含了表所在的表空间,但没有包含其LOB列所在的表空间
在执行TSPITR之前,为了确保可以在恢复集上执行TSPITR,必须首先检查恢复集是为自包含的。通过执行包DBMS_TTS的过程TRANSPORT_SET_CHECK可以确定恢复集是否为自包含的表空间集合。当执行了该过程之后,Oracle会将违反自包含表空间集合的信息写入临时表transport_set_violations。通过查询此表,获得违反自包含表空间的详细信息。
SQL> connect sys/oracle@demo as sysdba
SQL> execute dbms_tts.transport_set_check('user01',true);
SQL> Select * From transport_set_violations;
(2)检查是否存在恢复集表空间的数据文件备份
注意:其备份文件必须是在TSPITR时间之前备份的数据文件。
(3)检查是否存在辅助集的数据文件和控制文件备份
(4)检查TSPITR之后丢失的对象
注意:执行了TSPITR之后,在恢复时间之后被建立的对象将会丢失。被丢失对象信息的获取。
SQL> Select owner, name From TS_PITR_OBJECTS_TO_BE_DROPPED Where tablespace_name = 'USER01' And creation_time > to_date( '2004-09-27 11:25:21', 'yyyy-mm-dd hh24:mi:ss' );
2、准备主数据库
当执行TSPITR时,无论使用用户管理的TSPITR,还是使用RMAN管理的TSPITR,要求必须存在相应的数据文件和控制文件备份。
(1)准备USER01表空间、USER02表空间及示例表
(2)备份主数据库的所有数据文件和控制文件
SQL> alter databaes begin backup;
SQL> alter database end backup;
SQL> alter database backup controlfile to '' reuse;
SQL> alter system archive log current;
(3)在主数据库上执行DML操作
(4)模拟用户误操作及其他正常操作
三、实现用户管理的TSPITR
假定在日至序列号为150时在表空间USER01上执行了误操作删除了CUSTOMERS表,并且当前日至序列号为152。为了确保USER02表空间的数据不会丢失,应该将USER01表空间恢复到日至序列号为150时的状态,而USER02表空间应该保持现在日志序列号为152时刻的状态。
1、建立辅助例程服务
2、建立辅助例程参数文件
从主数据库复制参数文件,再手工编辑相应的初始化参数。
SQL> create pfile from spfile;
vi initauxi.ora
DB_UNIQUE_NAME = _demo
CONTROL_FILES = d:/auxi/control01.ctl
DB_FILE_NAME_CONVERT = ( 'd:/demp', 'd:/auxi' )
LOG_FILE_NAME_CONVERT = ( 'd:/demo', 'd:/auxi' )
3、复制恢复集数据文件和辅助集文件
SQL> host copy d:/backup/system01.dbf d:/auxi
4、启动辅助例程并装载辅助数据库
注意,当装载辅助数据库时,必须指定CLONE关键字
set oracle_sid = auxi
sqlplus sys/oracle as sysdba
SQL> startup nomount pfile=initauxi.ora
SQL> alter database mount clone database;
5、使恢复集和辅助集数据文件联机
当装载了辅助数据库之后,恢复集合辅助集的数据文件全部处于OFFLINE状态。
SQL> alter database datafile 'd:/auxi/system01.dbf' online;
6、恢复辅助数据库到TRPITR时间点
在使恢复集和辅助集的数据文件联机之后,就可以将辅助数据库恢复到TSPITR时间点。在恢复辅助数据库时,使用recover database的until cancel、until time以及until change等选项。
SQL> recover database until time '2004-09-27 11:25:21' using backup controlfile;
7、用RESETLOGS选项打开辅助数据库,并检查恢复结果
SQL> alter database open resetlogs;
8、在辅助数据库上建立临时表空间
9、导出辅助数据库的恢复表空间
exp 'sys/oracle as sysdba' point_in_time_recover = y tablespaces = user01 file = user01.dmp
10、使主数据库的恢复集表空间脱机
为了将辅助数据库的恢复集表空间导入到主数据库,必须首先使主数据库的恢复集表空间脱机,并使用辅助数据库的恢复集数据文件覆盖主数据库的原有数据文件
SQL> connect sys/oracle@demo as sysdba
SQL> alter tablespace user01 offline;
SQL> host copy '' '';
11、导入恢复集表空间到主数据库
将辅助数据库的恢复数据文件复制到主数据库的相应位置之后,就可以将恢复集表空间的数据文件导入到主数据库
SQL> host imp 'sys/oracle@demo as sysdba' point_in_time_recover = y datafile = d:/demo/user01.dbf file = user01.dmp
12、使恢复集表空间联机,并检查恢复结果
在导入恢复集数据文件之后,为了访问恢复集表空间,需要使该表空间联机。在使恢复集表空间联机之后,就完成了TSPIPR的全部过程
SQL> alter tablespace user01 online;
13、删除辅助例程
四、实现RMAN管理的TSPITR
1、全自动TSPITR
是指由RMAN完成表空间时间点恢复的全部过程。当使用全自动TSPITR时,RMAN会自动建立辅助例程,自动建立辅助数据库的数据文件、控制文件和重做日至,在恢复完成之后会自动删除辅助例程和辅助数据库的物理文件。当执行全自动TSPITR时,只要使用Auxiliary Destination选项指定辅助数据库的文件存放位置即可。
rman target sys/oracle@demo nocatalog
RMAN> recover tablespace user01 until logseq 19 auxiliary destination 'd:/auxiliary';
执行了上述命令之后,RMAN会自动建立辅助例程和辅助数据库,将恢复集表空间USER01恢复到日志序列号为19时的状态,使目标数据库的user01表空间脱机,最后删除辅助例程和辅助数据库。因为在恢复完成后user01表空间处于offline状态,必须将其转变为online状态。
RMAN> sql 'alter tablespace user01 online';
RMAN> backup tablespace user01 format = 'd:/backup/%s_%d.bak';
2、用自动辅助例程定制TSPITR
(1)改变恢复集数据文件的位置和名称
RMAN> run {
set newname for datafile 5 to 'c:/demo/user01.dbf';
recover tablespace user01 until logseq 25 auxiliary destination 'd:/auxiliary';
}
RMAN> sql 'alter tablespace user01 online';
RMAN> backup tablespace user01 format = 'd:/backup/%s_%d.bak';
上述命令会在'c:/demo'目录下建立恢复集数据文件user01.dbf,会在'd:/auxiliary'目录下建立所有辅助集数据文件,并将恢复集表空间user01恢复到日志序列号为25时的状态。
(2)改变辅助集数据文件的位置和名称
RMAN> run {
set newname for datafile 1 to 'c:/aux/system.dbf';
set newname for datafile 2 to 'c:/aux/undo.dbf';
recover tablespace user01 until logseq 37 auxiliary destination 'd:/auxiliary';
}
RMAN> sql 'alter tablespace user01 online';
RMAN> backup tablespace user01 format = 'd:/backup/%s_%d.bak';
上述命令会在'c:/aux'目录下建立辅助集数据文件system.dbf和undo.dbf,并将恢复集表空间user01恢复到日志序列号为37时的状态。
(3)使用映像副本提高TSIPTR性能
如果目标数据库数据文件存在映像副本,那么当执行表空间时间点恢复时,通过使恢复集数据文件和辅助数据文件直接使用映像副本,可以避免转储数据文件,从而提高TSPITR的性能。
RMAN> configure auxname for datafile 1 to 'd:/backup/df1.bak';
RMAN> configure auxname for datafile 2 to 'd:/backup/df2.bak';
RMAN> recover tablespace user01 until logseq 30 auxiliary destination 'd:/auxiliary';
RMAN> configure auxname for datafile 1 clear;
RMAN> configure auxname for datafile 2 clear;
上述命令会直接使用映像副本df1.bak和df2.bak作为辅助集数据文件,并将恢复集表空间user01恢复到日志序列号30时的状态。
3、手工辅助例程实现TSPITR
(1)建立辅助例程服务
(2)建立辅助例程参数文件
(3)启动辅助例程
(4)执行TSPITR
rman target sys/oracle@demo auxiliary sys/oracle
RMAN> run {
allocate auxiliary channel c1 device type disk;
recover tablespace user02 until logseq 9;
}
(5)恢复集表空间联机,然后备份该表空间
RMAN> sql 'alter tablespace user01 online';
RMAN> backup tablespace user01 format = 'd:/backup/%s_%d.bak';
(6)删除辅助例程以及相关文件
http://blog.sina.com.cn/u/539c889801000dsw
from:http://digifish.bokee.com/viewdiary.16746188.html
分享到:
相关推荐
【RMAN】TSPITR表空间基于时间点的恢复.pdf【RMAN】TSPITR表空间基于时间点的恢复.pdf【RMAN】TSPITR表空间基于时间点的恢复.pdf
无论是数据库管理的入门人员,还是具有丰富经验的...对于有经验的数据库管理员来说,如果您已经非常熟悉基本的备份与恢复方法,那么可以直接进入备份与恢复的高级课题(表空间时间点恢复、复制数据库和备份数据库等)。
无论是数据库管理的入门人员,还是具有丰富经验的...对于有经验的数据库管理员来说,如果您已经非常熟悉基本的备份与恢复方法,那么可以直接进入备份与恢复的高级课题(表空间时间点恢复、复制数据库和备份数据库等)。
无论是数据库管理的入门人员,还是具有丰富经验的...对于有经验的数据库管理员来说,如果您已经非常熟悉基本的备份与恢复方法,那么可以直接进入备份与恢复的高级课题(表空间时间点恢复、复制数据库和备份数据库等)。
表空间时点恢复,是Oracle在基于冷备,热备恢复以外的一种以表空间为粒度的,不完全恢复的形式来将表空间恢复到过去某个特定的时间点的一种恢复方式。它整合了RMAN以及DataPump这2个备份恢复工具来实现时点恢复。那...
在12c之前对于用户因DDL(DROP TRUNCATE )等操作引起的数据丢失,一般通过数据库时间点不完全恢复、基于表空间的时间点恢复(TSPITR)、闪回技术。
第二十章 表空间时间点恢复在企业中的应用 第二十一章 优化数据库 第二十二章 性能管理 第二十三章 数据库的自我诊断 第二十四章 ORACLE 11g资源管理 第二十五章 如何使用调度任务简化工作任务 第二十六章 SQL...
和恢复效果的算法改进,使时间复杂度和空间复杂度大大的降低,增强了图像恢复的实 时性,同时提高了图象恢复效果,使之能较好的进行空间CCD像机的图形恢复。 研究中采用改进的神经网络结构,大大的减少了神经网络的...
5.3 管理表空间中的空间 156 5.3.1 区间管理 157 5.3.2 管理段空间 158 5.4 本章知识点回顾 159 5.5 自测题 160 5.6 自测题答案 162 第6章 Oracle安全性 165 6.1 创建和管理数据库用户账户 166 6.1.1 用户...
5.3 管理表空间中的空间 156 5.3.1 区间管理 157 5.3.2 管理段空间 158 5.4 本章知识点回顾 159 5.5 自测题 160 5.6 自测题答案 162 第6章 Oracle安全性 165 6.1 创建和管理数据库用户账户 166 6.1.1 用户...
学完本书后,应能完成以下工作: 使用 Oracle Recovery Manager (RMAN)...执行表空间时间点恢复 创建和管理 RMAN 恢复目录 使用 Oracle Secure Backup 将 Oracle 数据库和文件系统数据备份到磁带或从磁带还原这些数据
通过学习本书,读者不仅可以掌握Oracle数据库的基本备份与恢复方法,而且还可以了解并掌握Oracle数据库备份与恢复的高级特征(表空间时间点恢复、复制数据库、物理备用数据库以及逻辑备用数据库等)。本书不仅适合于...
13.3.7表空间时间点恢复 13.4闪回恢复技术 13.4.1闪回配置 13.4.2闪回数据库 13.4.3闪回表 13.4.4快速闪回细粒度数据 13.4.5闪回事务 13.4.6闪回DROP的表 13.5数据库特殊情况的恢复 13.5.1联机Redo日志损坏...
TSPITR 执行表空间时间点恢复 通过执行 TSPITR 可将一个或多个表空间快速恢复到以前的某个时间。 执行 TSPITR 并不影响数据库中其它表空间或对象的状态。
通过学习本书,读者不仅可以掌握Oracle数据库的基本备份与恢复方法,而且还可以了解并掌握Oracle数据库备份与恢复的高级特征(表空间时间点恢复、复制数据库、物理备用数据库以及逻辑备用数据库等)。 本书不仅适合...
PRM恢复表数据时存在多种模式, PRM需要知道哪些表上的数据块是需要被读取并取出数据的。默认的表现形式是直接从segment header数据段头里获取EXTENT MAP即盘区图,另一种方案就是由PRM自己去构建一个盘区图。 这些...
本文档覆盖了在 12c 及更高版本上,使用跨平台传输表空间(XTTS)以及 RMAN 增量备份,以最小的应用停机时间,在不 同 endian 格式的系统间迁移数据的步骤。 第一步是从源系统拷贝一份 full backup 到目标系统。之后...
唯一的恢复方法是在另一个数据库中使用表空间的时间点恢复,然后使用导出/导入或其他方法,在当前数据库中重新创建表。这一过程需 要 DBA 进行大量工作并且耗费宝贵的时间,更不用说还要使用另一个数据库进行克隆。...