热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

flashback六大技术之flashbackdatabase

flashback六大技术之flashbackdatabase环境:[sql]sys@ORCL>select*fromv$versionwhererownum1;BANNER----------------------------------------------------------------Oracle

flashback六大技术之flashback database
 
环境:
[sql] 
sys@ORCL> select * from v$version where rownum=1;  
  
BANNER  
----------------------------------------------------------------  
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod  
  
sys@ORCL> !uname -a  
Linux localhost.localdomain 2.6.18-308.el5xen #1 SMP Fri Jan 27 17:59:00 EST 2012 i686 i686 i386 GNU/Linux  
  www.2cto.com  
    1 操作原理
 
       RVWR每隔δt把数据块的before image flush到flashback log,形成合法的rowid集,我们简称之“基底”,基底是由RVWR动态向前维护,以使rowid集合法有效。在flashback database时,是先向后退一大步到基底,在向前迈一小步。借助flashback log只能将数据库恢复到某个指定时间点的状态,该状态可能并不是一致性的状态,然后需再运用archive log,去填补两个δt时间面之间的缺痕,使数据库恢复到一致性状态。一言以辟之,flashback database其实是把undo拿去再整理。其特性,用周杰伦的歌《回到过去》,“就回到过去,试着让故事继续...”。
 
    2 必备条件
 
       ① 归档模式
       ② 指定flash recovery area
 
            flash recovery area设置的越大,flashback database的恢复能力就越强。由下面两个初始化参数控制:  www.2cto.com  
           1)db_recovery_file_dest:存储路径
           2)db_recovery_file_dest_size:最大可用空间
[sql] 
sys@ORCL> show parameter db_recover   
  
NAME                                 TYPE        VALUE  
------------------------------------ ----------- ------------------------------  
db_recovery_file_dest                string      /u01/app/oracle/flash_recovery  
                                                 _area  
db_recovery_file_dest_size           big integer 2G  
 
       ③ 启动flashback database
           启用该模式必须有两个先决条件:
            1)归档模式
            2)mount阶段
            语法:  www.2cto.com  
                    alter database flashback on/off;
            验证是否开启:
                    select flashback_on from v$database
 
       ④ 启用force logging
            force logging强制所有操作均产生redo entries
            语法:
                    alter database force logging;
            验证是否开启:
                    select force_logging from v$database
 
    3 制约因素
                    ㈠ 控制文件重建
                    ㈡ 数据文件shrunk
                    ㈢ 表空间删除
                    ㈣ 介质损坏
                    以上改变,其实质,会导致rowid在基底非法无效,便成了制约因素
    4 额外补充
 
       ① db_flashback_retention_target
            控制flashback log数据的保留时间,或者说,你希望flashback database能够恢复的最早时间点。缺省是一天。  www.2cto.com  
[sql] 
sys@ORCL> show parameter db_flashback  
  
NAME                                 TYPE        VALUE  
------------------------------------ ----------- ------------------------------  
db_flashback_retention_target        integer     1440  
 
      ② 执行flashback database后,有两种选择:
           a)alter database open resetlogs。一旦resetlogs,将不能再flashback至resetlogs之前的时间点,指定的scn之后产生的数据将全部丢失。
           b)先alter database open read only;
                 然后expdp将误操作的表的数据导出
                 再执行recover database
                 最后impdp导入
       ③ 开启flashback on需要消费10%的资源,DBA需均衡利弊。
       ④ 介词to和until的区别:
            例子:
                    to 20 :包括了20
                    until 20 :没有包括20,也就是19末。
 
    5 测试实验
       ㈠ 检查必备条件
[sql] 
sys@ORCL> show parameter db_recover  
    www.2cto.com  
NAME                                 TYPE        VALUE  
------------------------------------ ----------- ------------------------------  
db_recovery_file_dest                string      /u01/app/oracle/flash_recovery  
                                                 _area  
db_recovery_file_dest_size           big integer 2G  
sys@ORCL> archive log list  
Database log mode              Archive Mode  
Automatic archival             Enabled  
Archive destination            USE_DB_RECOVERY_FILE_DEST  
Oldest online log sequence     13  
Next log sequence to archive   15  
Current log sequence           15  
sys@ORCL> select force_logging,flashback_on from v$database;  
  
FOR FLASHBACK_ON  
--- ------------------  
YES YES  
 
       ㈡ 测试
[sql] 
hr@ORCL> select dbms_flashback.get_system_change_number from dual;  
  
GET_SYSTEM_CHANGE_NUMBER  
------------------------  
                  731867  
  
hr@ORCL> truncate table t2;  
    www.2cto.com  
Table truncated.  
  
hr@ORCL> conn / as sysdba  
Connected.  
sys@ORCL> shutdown immediate  
Database closed.  
Database dismounted.  
ORACLE instance shut down.  
sys@ORCL> startup mount  
ORACLE instance started.  
  
Total System Global Area  419430400 bytes  
Fixed Size                  1219760 bytes  
Variable Size              83886928 bytes  
Database Buffers          331350016 bytes  
Redo Buffers                2973696 bytes  
Database mounted.  
sys@ORCL> flashback database to scn 731867;  
  
Flashback complete.  
  
sys@ORCL> alter database open resetlogs;  
    www.2cto.com  
Database altered.  
  
sys@ORCL> select count(*) from hr.t2;  
  
  COUNT(*)  
----------  
        19  

推荐阅读
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Linux批量复制并重命名和批量复制文件到多个文件夹的方法
    本文介绍了在Linux系统下批量复制并重命名文件以及批量复制文件到多个文件夹的方法。通过使用模式匹配功能,可以方便地实现文件的批量操作。同时,还提供了有关shell语法中的()和{}的参考资料。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
author-avatar
用释怀来成全悲伤_490_905_560
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有