当前位置:  数据库>oracle

实战Oracle 10g新特性之RMAN TSPITR特性

    来源: 互联网  发布时间:2017-05-17

    本文导语: Oracle 10g以前对于数据丢失或者人为导致的逻辑错误时我们会用数据库级别的不完全恢复来解决,而到了10g之后,RMAN推出了一个新的特性叫"tablespace point-in-time recovery",简称TSPITR,其实就是可以实现表空间级别的不完全恢复,当...

Oracle 10g以前对于数据丢失或者人为导致的逻辑错误时我们会用数据库级别的不完全恢复来解决,而到了10g之后,RMAN推出了一个新的特性叫"tablespace point-in-time recovery",简称TSPITR,其实就是可以实现表空间级别的不完全恢复,当然我们知道到了10g之后flashback特性也可以解决上述问题。由于之前没玩过这个特性,于是来实战一把整个操作过程(具体原理部分请参考Database Backup and Recovery Advanced User's Guide文档)

    1.模拟环境
    1.1创建测试表空间以及测试对象
    [oracle@sourcedb oradata]$ sqlplus / as sysdba
    SQL> create tablespace test_tspitr datafile '/oradata/wilson/test_tspitr01.dbf' size 10M;
    SQL> create table test(id int);
    SQL> begin
    for i in 1..10 loop
    insert into test values(i);
    end loop;
    commit;
    end;
    /
    1.2备份数据库
    [oracle@sourcedb oradata]$ rman target /
    RMAN> backup database format '/tmp/dbf_%U' plus archivelog format '/tmp/arch_%U' delete input;
    1.3模拟误删除数据
    SQL> select count(*) from test;

    COUNT(*)
    ----------
              10

    SQL> delete test;

    SQL> commit;

    SQL> select count(*) from test;

    COUNT(*)
    ----------
                0

    2.确定TSPITR的目标时间
    这里有多种方法,比如使用flashback query,logmnr等,我这里是通过flashback qery确认的。
    SQL> select count(*) from test;

    COUNT(*)
    ----------
                0
    SQL> select count(*) from test as of timestamp to_timestamp('2013-02-23 21:40:34','YYYY-MM-DD:HH24:MI:SS');
    COUNT(*)
    ----------
              10

    3.解决需要recover的表空间中的依赖关系
    如果玩个传输表空间的话知道里面有个要求是表空间必须为自包含,这里所说的依赖关系与其类似。

    3.1识别依赖关系

    SQL>conn / as sysdba
    SQL>SELECT * FROM SYS.TS_PITR_CHECK
    WHERE (
        TS1_NAME IN ('TEST_TSPITR')
        AND TS2_NAME NOT IN ('TEST_TSPITR')
                    );
own1  name1 subname1 obj1type ts1_na    name2    subname2 obj2type own2  ts2_na cname reason
------ ----- -------- -------- --------- --------- -------- -------- ------ ------ ----- -------------------------
SCOTT  TEST          TABLE    TEST_TSPITR TEST_IDX          INDEX    SCOTT  USERS        Tables and  associated
                                                                                                                                                                  indexes not fully
                                                                                                                                                                  contained in the
                                                                                                                                                                  recovery set
    从以上输出可以判断test表的索引test_idx与表不在同一表空间内。
    3.2解决依赖关系

    方法有二种,第一干掉索引,第二将索引表空间加到恢复队列中,这里我选择第一种。
    SQL> drop index test_idx;


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 基于Docker容器的云计算平台搭建实战
  • 【整套42个视频】Linux实战工程师(包括PHP,SHELL和系统管理3大块内容)
  • mongodb分片原理详细介绍及实战举例
  • linux c编程实战
  • ​docker之轻量虚拟化技术——docker实战分享
  • 实战Nginx:取代Apache的高性能Web服务器
  • 请教有实战经验的大虾们关于Linux做安全路由或网关服务器的问题!
  • 谁有 linux c实战编程 pdf,麻烦发我一份 100分感谢
  • 我按cn-java上实战EJB做的第一个EJB例子(最简单的),最后运行http://localhost:6888/hello/servlet/HelloServlet,结果提示“Http:404
  • mysql 读写分离(实战篇)
  • 实战EJB,实体BEAN,怎么出了这个错误??怎么会找不到???
  • MySQL 数据库设计复习笔记及项目实战
  • 实战EJB之四(开发实体CMP),在部署应用程序的时候,点击"实体EJB的持续性管理",”在设置数据源的JNDI名时,如何修改datasources.xml来
  • 实战 J2EE 开发购物网站 - 创建数据库
  • 实战 J2EE 开发购物网站 二
  • Linux vmstat命令实战详细解析
  • java反射机制实战示例分享
  • IIS6+TOMCAT整合,实战实例!
  • FCKeditor 实战技巧
  • JBuilder2005实战JSP之登录页面实现代码[图]
  • JBuilder2005实战JSP之切换控制 图文步骤


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,