一直想做个基于时间点的表空间恢复,今天测试了一下,做个笔记,方面以后查阅!
环境:Linux 5.2 10.2.0.1
RMAN TSPITR 使用rman进行表空间基于时间点的恢复
实例说明:
(1)先创建2个表空间。
create tablespace user01 datafile '+DG1' size 1M;
create tablespace user02 datafile '+DG1' size 1M;
(2)在每个表空间上各创建一张表。
create table scott.customers
(cust_id int,cust_name varchar2(10)) tablespace user01;
create table scott.sales
(id int,cust_name varchar2(10),sales_amount number(8,2)) tablespace user02;
(3)在每个表中插入2条记录,提交。检查当前的时间点,待会表空间user01要恢复到当前时间点。
insert into scott.customers values(1,'SOCTT');
insert into scott.customers values(2,'SMITH');
insert into scott.sales values(1,'SCOTT',8000);
insert into scott.sales values(1,'SMITH',10000);
COMMIT;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
date
2012年 02月 29日 星期三 22:53:57 CST
(4) truncate 表1,往表2中插入2条记录。在表空间1中再创建一个表。
truncate table scott.customers;
insert into scott.sales values(3,'SCOTT',6000);
insert into scott.sales values(4,'BLAKE',6700);
commit;
create table scott.employee(id int,name varchar2(10)) tablespace user01;
(5) 利用rman进行表空间1基于时间点的恢复。
--rman部分恢复表空间
recover tablespace user01
until time "to_timestamp('2012-02-29 22:53:57','yyyy-mm-dd hh24:mi:ss')" ----此处也可以通过scn来恢复,二者等价timestamp_to_scn
auxiliary destination '/home/Oracle/backup';
(6)将表空间user01 联机, 检查表1的数据是否找回来,检查表2的数据是否是4条,检查新创建的表是否已经不存在。
alter tablespace user01 online; ---recover的时候会自动offline
select * from scott.customers;
CUST_ID CUST_NAME
---------- ----------
1 SOCTT
2 SMITH
select * from scott.sales;
ID CUST_NAME SALES_AMOUNT
---------- ---------- ------------
1 SCOTT 8000
1 SMITH 10000
3 SCOTT 6000
4 BLAKE 6700
select * from dba_tables where owner = 'SCOTT' and table_name='EMPLOYEE';
no rows selected
一切如我们所愿,此时,表空间不完全恢复完成。
注意:
只有自包含的表空间,才能基于单独不完全恢复。所谓自包含,是指该表空间中的对象不依赖于其它表空间中的对象,如该表空间中索引的基本在其它表空间,该表中某些表的lob列放在其它表空间。
如在上例中,执行:
create index scott.idx_customers on scott.customers(cust_name) tablespace user02;
begin
dbms_tts.transport_set_check('user02',true);
end;
select * from transport_set_violations;
会提示:Index SCOTT.IDX_CUSTOMERS in tablespace USER02 points to table SCOTT.CUSTOMERS in tablespace USER01.
begin
dbms_tts.transport_set_check('USER01,user02',true);
end;
select * from transport_set_violations;
不会有任何提示,因为user01/user02表空间作为一个集合,是自包含的。
- 大小: 26.6 KB
分享到:
相关推荐
本文将详细探讨通过RMAN进行TSPITR(Tablespace Point-In-Time Recovery,表空间时间点恢复)的操作过程。 TSPITR是Oracle数据库恢复技术中的一项高级特性,它允许我们把一个或多个表空间恢复到数据库中其他部分所...
下面将详细介绍RMAN自动备份和恢复的相关知识点。 一、为什么需要设置自动归档模式? 在使用RMAN进行备份和恢复时,需要将数据库修改为自动归档模式。为什么需要这样做呢?主要是因为,如果不设置为自动归档模式,...
2. 不完全恢复:如果仅部分数据丢失,RMAN可以恢复特定时间段内的事务。 3. 数据文件恢复:当单个数据文件损坏时,RMAN可利用该文件的备份进行恢复。 4. 闪回恢复:利用闪回区和闪回日志,RMAN可以快速将数据库...
这可能包括了如何处理丢失的数据文件、闪回数据库到特定时间点,甚至是使用RMAN的Catalog数据库来管理跨系统的备份。 总之,RMAN是Oracle数据库管理中的核心工具,它提供了全面的备份和恢复解决方案,确保了数据的...
### RMAN管理的备份与恢复知识点详解 #### 一、RMAN概述 RMAN(Recovery Manager)是Oracle提供的一款强大的备份与恢复工具,旨在帮助DBA高效地管理和执行数据库的备份与恢复任务。相较于传统的手工备份恢复方法,...
RMAN提供了多种恢复场景的解决方案,如从备份恢复数据库、恢复单个数据文件、从时间点恢复等。在灾难性故障下,可以使用`RESTORE DATABASE`和`RECOVER DATABASE`命令来恢复整个数据库,而`RESTORE TABLESPACE`或`...
如果需要恢复整个数据库,可能还需要使用到还原点或时间点恢复。 8. 使用Catalog和Control File: 为了方便管理和跟踪备份,RMAN使用Catalog数据库存储所有备份信息。控制文件则包含了数据库的结构信息,恢复过程...
RMAN可以选择性地恢复数据,根据备份中的时间点或SCN,这使得数据迁移更加灵活。 6. 数据库迁移准备:在进行数据库迁移前,通常需要收集如数据库版本、操作系统信息、表空间大小、数据量、用户权限等信息,并编写...
2. **恢复**:在数据丢失或系统故障的情况下,RMAN能够快速恢复数据库到特定时间点。它可以处理各种类型的恢复场景,如单个文件恢复、表空间恢复,甚至整个数据库的恢复。 3. **归档日志管理**:RMAN能够管理数据库...
7. **闪回技术**:配合Oracle 9i的闪回技术,RMAN可以进行基于时间点的恢复,即使在数据丢失后也能快速恢复到特定时间点。 8. **跨平台恢复**:RMAN支持在不同操作系统或硬件环境之间的恢复,增加了系统的灵活性和...
使用`RECOVER DATABASE UNTIL`命令指定时间点或SCN,RMAN将自动应用所有必要的归档日志。 通过以上步骤,我们可以在保持数据完整性的同时,将Oracle数据库从源服务器恢复到具有不同数据文件目录的目标服务器。整个...
例如,可能有全库备份、只备份改变的数据文件、或者基于时间点的恢复等不同类型的脚本。 学习和理解RMAN及其异构恢复,对于数据库管理员来说是非常必要的技能。通过实践和模拟实验,你可以更好地掌握RMAN的用法,...
- 在归档模式下使用 RMAN 命令进行恢复时,需要特别注意恢复点的选择,确保恢复的是在某个时间点之前的数据。 **2.3** **归档模式下的redo log文件管理** - **[3]** **Redo Log 文件的管理:** - 在归档模式下,...
RMAN的`FLASHBACK DATABASE`命令可以将数据库恢复到之前的某个时间点,而无需原始备份。但这种操作需要启用归档模式和还原点。 此外,为了优化恢复效率,RAC环境通常配置了Fast Start Failover(FSFO),当主实例...
8. **恢复序列化**:如果源数据库有归档日志,需要通过`RECOVER DATABASE UNTIL CUTOFF`或`RECOVER DATABASE NOREDO`命令进行时间点恢复,确保数据一致性。 9. **调整参数**:根据需要调整数据库参数,如`DB_UNIQUE...
4. **切换还原的表空间在线**:在恢复表空间后,使用`alter tablespace users online;`使其可读写。 5. **介质恢复**:当数据文件丢失时,需要从备份中恢复,`restore datafile '/u01/oracle/data/users01.dbf' ...
在恢复过程中,RMAN可以用来恢复到特定时间点,这对于处理灾难性故障或误删除数据的情况非常有用。 要进行RMAN恢复,首先需要确保有有效的备份集。使用RMAN的`backup`命令创建备份,然后在需要恢复时,使用`restore...