表空间时间点恢复

2019-08-03 10:47

Oracle TSPITR

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 \ 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 \13:31:48','yyyy-mm-dd hh24:mi:ss')\3> } run {

2> recover tablespace yyp until time \hh24:mi:ss')\(标黄处是表空间的设定目录)

启动 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 \# 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 \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

\# rename all tempfiles switch clone tempfile all;

# restore the tablespaces in the recovery set plus the auxilliary tablespaces restore clone datafile 1, 2, 20;


表空间时间点恢复.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:双河市--道路工程施工技术方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: