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表空间的备份文件。
注意:恢复集表空间必须为自包含;
违反自包含表空间集合的常见情况如下:
1> 表空间集合包含有SYS方案对象
2> 表空间集合包含了索引所在的表空间,但没有包含索引基表所在的表空间
3> 表空间集合没有包含分区表的所有分区
4> 表空间集合包含了表所在的表空间,但没有包含其LOB列所在的表空间
检查自包含方式:
SQL> connect sys/oracle@demo as sysdba
SQL> execute dbms_tts.transport_set_check('user01',true);
SQL> Select * From transport_set_violations;
测试
环境 10.2.0.1 + WinXp
--创建表空间
CREATE TABLESPACE "DATACNT_TEST"
LOGGING
DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATACNT_TEST.ora' SIZE 50M
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
-- create table
create table ttest (i_id integer, c_name varchar2(10)) tablespace datacnt_test;
create index itest on ttest(i_id) tablespace DATACNT_TEST;
insert into ttest(i_id,c_name) values (1, '1');
insert into ttest(i_id,c_name) values (2, '2');
insert into ttest(i_id,c_name) values (3, '3');
insert into ttest(i_id,c_name) values (4, '4');
insert into ttest(i_id,c_name) values (5, '5');
insert into ttest(i_id,c_name) values (6, '6');
insert into ttest(i_id,c_name) values (7, '7');
insert into ttest(i_id,c_name) values (8, '8');
insert into ttest(i_id,c_name) values (8, '9');
insert into ttest(i_id,c_name) values (10, '10');
insert into ttest(i_id,c_name) values (11, '11');
select * from ttest;
--check
SELECT *
FROM SYS.TS_PITR_CHECK
WHERE (
TS1_NAME IN ('DATACNT_TEST')
AND TS2_NAME NOT IN ('DATACNT_TEST')
)
OR (
TS1_NAME NOT IN ('DATACNT_TEST')
AND TS2_NAME IN ('DATACNT_TEST')
);
--记住时间点
select sysdate from dual;
--执行rman备份
run{
allocate channel d1 type disk;
backup tag ts_test
format 'C:\temp\TS_t%t_s%s.bkp'
tablespace DATACNT_TEST,UNDOTBS1,SYSTEM;
backup current controlfile;
release channel d1;
}
--模拟操作 修改ttest的表
delete from ttest where c_name like '%1%';
commit;
RMAN> run {
2> recover tablespace DATACNT_TEST until time "to_date('2010-3-18 13:31:48','yyyy-mm-dd hh24:mi:ss')" auxiliary destination 'C:\auxiliary';
3> }
启动 recover 于 18-3月 -10
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=148 devtype=DISK
RMAN-05026: 警告: 假定以下表空间集适用于指定的时间点
表空间列表要求具有 UNDO 段
表空间 SYSTEM
表空间 UNDOTBS1
使用 SID='yaxj' 创建自动实例
供自动实例使用的初始化参数:
db_name=ORCL
compatible=10.2.0.1.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_ORCL_yaxj
large_pool_size=1M
shared_pool_size=110M
#No auxiliary parameter file used
db_create_file_dest=C:\auxiliary
control_files=C:\auxiliary/cntrl_tspitr_ORCL_yaxj.f
启动自动实例 ORCL
Oracle 实例已启动
系统全局区域总计 201326592 字节
Fixed Size 1248092 字节
Variable Size 146801828 字节
Database Buffers 50331648 字节
Redo Buffers 2945024 字节
自动实例已创建
内存脚本的内容:
{
# set the until clause
set until time "to_date('2010-3-18 13:31:48','yyyy-mm-dd hh24:mi:ss')";
# restore the controlfile
restore clone controlfile;
# mount the controlfile
sql clone 'alter database mount clone database';
# archive current online log for tspitr to a resent until time
sql 'alter system archive log current';
# avoid unnecessary autobackups for structural changes during TSPITR
sql 'begin dbms_backup_restore.AutoBackupFlag(FALSE); end;';
}
正在执行内存脚本
正在执行命令: SET until clause
启动 restore 于 18-3月 -10
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=37 devtype=DISK
通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在复原控制文件
通道 ORA_AUX_DISK_1: 正在读取备份段 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA
\ORCL\AUTOBACKUP\2010_03_18\O1_MF_S_713971810_5T3GM4G6_.BKP
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2010_03_18
\O1_MF_S_713971810_5T3GM4G6_.BKP 标记 = TAG20100318T133010
通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:00:03
输出文件名=C:\AUXILIARY\CNTRL_TSPITR_ORCL_YAXJ.F
完成 restore 于 18-3月 -10
sql 语句: alter database mount clone database
sql 语句: alter system archive log current
sql 语句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;
释放的通道: ORA_DISK_1
释放的通道: ORA_AUX_DISK_1
内存脚本的内容:
{
# generated tablespace point-in-time recovery script
# set the until clause
set until time "to_date('2010-3-18 13:31:48','yyyy-mm-dd hh24:mi:ss')";
plsql <<<-- tspitr_2
declare
sqlstatement varchar2(512);
offline_not_needed exception;
pragma exception_init(offline_not_needed, -01539);
begin
sqlstatement := 'alter tablespace '|| 'DATACNT_TEST' ||' offline for recover'
;
krmicd.writeMsg(6162, sqlstatement);
krmicd.execSql(sqlstatement);
exception
when offline_not_needed then
null;
end; >>>;
# set an omf destination filename for restore
set newname for clone datafile 1 to new;
# set an omf destination filename for restore
set newname for clone datafile 2 to new;
# set an omf destination tempfile
set newname for clone tempfile 1 to new;
# set a destination filename for restore
set newname for datafile 20 to
"C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATACNT_TEST.ORA";
# rename all tempfiles
switch clone tempfile all;
# restore the tablespaces in the recovery set plus the auxilliary tablespaces
restore clone datafile 1, 2, 20;
switch clone datafile all;
#online the datafiles restored or flipped
sql clone "alter database datafile 1 online";
#online the datafiles restored or flipped
sql clone "alter database datafile 2 online";
#online the datafiles restored or flipped
sql clone "alter database datafile 20 online";
# make the controlfile point at the restored datafiles, then recover them
recover clone database tablespace "DATACNT_TEST", "SYSTEM", "UNDOTBS1" delete a
rchivelog;
alter clone database open resetlogs;
# PLUG HERE the creation of a temporary tablespace if export fails due to lack
# of temporary space.
# For example in Unix these two lines would do that:
#sql clone "create tablespace aux_tspitr_tmp
# datafile ''/tmp/aux_tspitr_tmp.dbf'' size 500K";
}
正在执行内存脚本
正在执行命令: SET until clause
sql 语句: alter tablespace DATACNT_TEST offline for recover
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
临时文件 1 在控制文件中已重命名为 C:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_TEMP_%U_.
TMP
启动 restore 于 18-3月 -10
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=39 devtype=DISK
通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到C:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_SYSTEM_%U_.DBF
正将数据文件00002恢复到C:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_UNDOTBS1_%U_.DBF
正将数据文件00020恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATACNT_TEST.ORA
通道 ORA_AUX_DISK_1: 正在读取备份段 C:\TEMP\TS_T713971680_S14.BKP
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = C:\TEMP\TS_T713971680_S14.BKP 标记 = TS_LEVEL0
通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:02:05
完成 restore 于 18-3月 -10
数据文件 1 已转换成数据文件副本
输入数据文件副本 recid=5 stamp=713972344 文件名=C:\AUXILIARY\TSPITR_O\DATAFILE\O
1_MF_SYSTEM_5T3GZTN2_.DBF
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=6 stamp=713972344 文件名=C:\AUXILIARY\TSPITR_O\DATAFILE\O
1_MF_UNDOTBS1_5T3GZTSX_.DBF
sql 语句: alter database datafile 1 online
sql 语句: alter database datafile 2 online
sql 语句: alter database datafile 20 online
启动 recover 于 18-3月 -10
使用通道 ORA_AUX_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 51 已作为文件 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\O
RCL\ARCHIVELOG\2010_03_18\O1_MF_1_51_5T3GZN5F_.ARC 存在于磁盘上
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\201
0_03_18\O1_MF_1_51_5T3GZN5F_.ARC 线程 =1 序列 =51
介质恢复完成, 用时: 00:00:01
完成 recover 于 18-3月 -10
数据库已打开
内存脚本的内容:
{
# export the tablespaces in the recovery set
host 'exp userid =\"/@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=oracle)(ARGV0
=oracleyaxj)(ARGS=^'(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))^')(ENVS=^'
ORACLE_SID=yaxj^'))(CONNECT_DATA=(SID=yaxj))) as sysdba\" point_in_time_recover=
y tablespaces=
DATACNT_TEST file=
tspitr_a.dmp';
# shutdown clone before import
shutdown clone immediate
# import the tablespaces in the recovery set
host 'imp userid =\"/@ as sysdba\" point_in_time_recover=y file=
tspitr_a.dmp';
# online/offline the tablespace imported
sql "alter tablespace DATACNT_TEST online";
sql "alter tablespace DATACNT_TEST offline";
# enable autobackups in case user does open resetlogs from RMAN after TSPITR
sql 'begin dbms_backup_restore.AutoBackupFlag(TRUE); end;';
}
正在执行内存脚本
Export: Release 10.2.0.1.0 - Production on 星期四 3月 18 13:39:34 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 将不导出表数据 (行)
即将导出表空间时间点恢复对象...
对于表空间 DATACNT_TEST...
. 正在导出簇定义
. 正在导出表定义
. . 正在导出表 TTEST
. 正在导出引用完整性约束条件
. 正在导出触发器
. 终止时间点恢复
成功终止导出, 没有出现警告。
主机命令完成
数据库已关闭
数据库已卸载
Oracle 实例已关闭
Import: Release 10.2.0.1.0 - Production on 星期四 3月 18 13:39:58 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
即将导入表空间时间点恢复对象...
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 SYS 的对象导入到 SYS
. 正在将 CUSTOMER21 的对象导入到 CUSTOMER21
. . 正在导入表 "TTEST"
. 正在将 SYS 的对象导入到 SYS
成功终止导入, 没有出现警告。
主机命令完成
sql 语句: alter tablespace DATACNT_TEST online
sql 语句: alter tablespace DATACNT_TEST offline
sql 语句: begin dbms_backup_restore.AutoBackupFlag(TRUE); end;
删除自动实例
自动实例已删除
已删除辅助实例文件 C:\AUXILIARY\CNTRL_TSPITR_ORCL_YAXJ.F
已删除辅助实例文件 C:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_SYSTEM_5T3GZTN2_.DBF
已删除辅助实例文件 C:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_UNDOTBS1_5T3GZTSX_.DBF
已删除辅助实例文件 C:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_TEMP_5T3H49K4_.TMP
已删除辅助实例文件 C:\AUXILIARY\TSPITR_O\ONLINELOG\O1_MF_1_5T3H3XNK_.LOG
已删除辅助实例文件 C:\AUXILIARY\TSPITR_O\ONLINELOG\O1_MF_2_5T3H3ZYB_.LOG
已删除辅助实例文件 C:\AUXILIARY\TSPITR_O\ONLINELOG\O1_MF_3_5T3H423H_.LOG
完成 recover 于 18-3月 -10
还原成功;
- 浏览: 286429 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
Mirale:
mark, cute guy
linux下生成core dump文件方法及设置 -
u014442029:
先addNode 再startNode即可
was启动节点报没有server.xml文件错误 -
hyhai7:
mark , cool job
linux下生成core dump文件方法及设置 -
andyniu:
弄了接近2天。由于安装的虚拟机是建议版本的系统。很多包都没安装 ...
hadoop 2.2.0安装开发环境单机版本以及集群版本 -
cvics_ailk:
哇塞,楼主写的太好了,很好,很实用。里面的图片怎么看不了呢?
PLSQL developer 连接不上64位Oracle 解决办法一
发表评论
-
rman增量备份的原理
2013-04-09 13:33 1300在里边还提到了rman增量备份的原理和10g新特性db bl ... -
在rman增量备份中,有差异增量和累积增量的概念
2013-04-09 13:21 739在rman增量备份中,有 ... -
使用RMAN进行数据库全库备份
2013-04-08 15:54 1377一.在rman下备份数据库的相关操作: 1.可以在rman ... -
RMAN as compressed backupset的测试
2013-03-16 16:35 1141AIX 5303, ORACLE 10202 数据库的RM ... -
reset incarnation
2013-03-02 10:14 1242incarnation 测试先解释一下我对incarnati ... -
RMAN中nocatalog与catalog的区别
2013-02-17 20:22 898nocatalog方式:用control file作为cata ... -
RMAN备份/恢复
2013-02-17 20:20 841RMAN备份是指使用Recovery Manager备 ... -
Oracle 配置 catalog
2013-02-17 18:54 8201: catalog 数据库上创建表空间: export O ... -
ORA-00265 要求实例恢复, 无法设置 ARCHIVELOG 模式
2013-02-17 10:53 965ORACLE数据库开始归档模式出现 ORA-00265 要 ... -
RMAN 备份出现:RMAN-20021: database not set RMAN-06019: could not translate tablespac
2012-12-26 15:48 1547RMAN> backup full database ...
相关推荐
Oracle 表空间时点恢复(TSPITR)是一种高级的恢复技术,它允许数据库管理员在不影响整个数据库的情况下,恢复单个或多个表空间到过去某一特定时间点的状态。这种恢复方式结合了RMAN(恢复管理器)和DataPump的功能...
TSPITR是Oracle数据库恢复技术中的一项高级特性,它允许我们把一个或多个表空间恢复到数据库中其他部分所处时间点的过去状态,而不影响数据库的其他部分。这种技术特别适用于以下场景:如果某个表空间遭到破坏或者...
Oracle容灾备份是数据库管理中的重要环节,它旨在保护企业数据免受意外损失,确保业务连续性。本手册将深入探讨Oracle容灾备份的实践操作,帮助IT专业人员更好地理解和实施这一关键任务。 1. **容灾与备份基础** -...
### Oracle 8i备份与恢复知识点详解 #### 一、备份与恢复的概念 **1.1 什么是备份和恢复** 备份是指将数据库的关键部分(如数据文件和控制文件)复制成副本的过程。备份的主要目的是为了应对意外的数据丢失或程序...
Bob Bryla是Oracle 9i和10g的认证专家,他在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的工作经验,他也足Dodgeville的Land'End公司的首席Internet数据库设计师和Oracle DBA. ...
- 表空间映射(Tablespace Point-In-Time Recovery,TSPITR):允许从特定时间点恢复表空间。 - 高可用性和灾难恢复:提供如Real Application Clusters(RAC)在内的多种高可用解决方案。 文档明确指出,对于那些...
此外,从 Oracle 之后的新版本中引入了基于表空间的时间点恢复(TSPITR),可以单独将包含错误操作的表空间恢复到指定时间,而不必对整个数据库进行不完全恢复。 在存储设备失败的情况下,需要对 Oracle 数据库所...
- **用户错误:** 利用Flashback、表空间时间点恢复(TSPITR)或LogMiner。 - **灾难恢复:** 验证将所有文件恢复到另一台主机的能力。 #### 五、案例研究:The Hartford - **背景:** The Hartford是一家大型保险公司...
12. **TSPITR(Time-Stamp Point In Time Recovery)**:RMAN支持基于时间点的恢复,允许恢复到特定的时间戳,以应对数据丢失或错误。 13. **RMAN的脚本参数化**:通过使用变量,可以使脚本更具灵活性,适应不同...
- **选项 C**: TSPITR(表空间时间点恢复)不适合用于单一数据块的恢复。 - **选项 E**: RESTORE DATABASE 和 RECOVER DATABASE 会导致整个数据库的恢复,影响过大。 - **选项 F**: 如果知道损坏发生的时间点,...
### Oracle数据库备份恢复 #### RMAN(备份与恢复管理器) **RMAN**,即**Recovery Manager**,是Oracle数据库管理系统中的一项重要工具,主要用于数据库的备份与恢复操作。它能够提供高度自动化且功能强大的解决...
### Oracle 错误信息详解 在使用Oracle数据库的过程中,可能会遇到各种各样的错误信息,这些错误信息对于数据库管理员(DBA)来说是非常重要的诊断工具。本文将详细介绍一系列Oracle错误代码及其含义,帮助读者更好...
TSPITR(Tablespace Point-in-Time Recovery)是基于时间点的表空间恢复,允许用户恢复到某个特定的时间点,避免丢失部分事务。 5. **RAC (Real Application Clusters)**:这是Oracle的集群数据库技术,文档涉及了...
Bob Bryla是Oracle 9i和10g的认证专家,他在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的工作经验,他也足Dodgeville的Land'End公司的首席Internet数据库设计师和Oracle DBA. ...
1. **变更审计与恢复**:通过解析Redo Log文件,Logminer能够揭示数据库中所有已发生的变更细节,这对于数据库的不完全恢复、时间点恢复或表空间时间点恢复(TSPITR)至关重要。 2. **活动监控与性能分析**:在日常...
DBAII-1.体系回顾.pdf DBAII-2.可恢复性.pdf DBAII-3.... DBAII-4.... DBAII-5.... DBAII-6.... DBAII-7.... DBAII-8.... DBAII-9.... DBAII-10.... DBAII-11.... DBAII-12.... DBAII-13.... DBAII-21.TSPITR.pdf DBAII-22.全球化.pdf
根据给定的信息,“日文版1Z0-055J资料”主要针对的是Oracle数据库11g的新特性,特别是为那些已经获得了Oracle 9i OCP(Oracle Certified Professional)认证的专业人士准备的升级学习材料。下面将详细介绍这部分...
- **选项C**: 执行表空间时间点恢复 (TSPITR): 可行,能够将包含 `emp` 表的表空间恢复到某个时间点。 - **选项D**: Flashback Transaction Backout: 不适用于此场景,因为它只能撤销特定事务。 - **选项E**: ...