热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

闪回与归档参数的设置

Oracle闪回技术提供了一组功能用来查看数据的过去状态并且支持数据按时间返回到之前的状态不用对数据库从备份中执行大量的还原操作或者执行按时间点恢复。

 

Oracle闪回技术提供了一组功能用来查看数据的过去状态并且支持数据按时间返回到之前的状态不用对数据库从备份中执行大量的还原操作或者执行按时间点恢复。在大部分情况下闪回功能非常有效破坏性比介质恢复小。

Oracle的大部分闪回功能是在逻辑层面进行操作,查看和维护数据库对象,比如:

Oracle 闪回查询:指定目标时间对数据库运行查询来查看在指定时间点的数据结果。为了从一个不想要生效的改变中对表进行恢复,用户可以选择错误之前的时间并运行查询来检索丢失或改变的记录。

Oracle闪回版本查询:能查看在指定时间间隔内一个或多个表中已经存在记录的所有版本。还可以检索行记录不同版本的元数据,包括开始时间,结束时间,操作和创建这个版本的事务ID。这个功能可以用来恢复丢失的数据和查看表的改变。

Oracle闪回事务查询:能查看由单个事务所产生的改变或者在一个时间周期内所有事务的改变。

Oracle闪回表:将一个表返回到之前某个时间点的状态。当数据库处于联机状态时也能还原表数据。只撤消特定表的改变。

Oracle闪回删除:是dorp table的反操作

闪回表,闪回查询,闪回事务查询和闪回版本查询都依赖于undo数据,记录对Oracle数据库每一个更新的影响。undo的主要作用主要是用于SQL查询的一致性读与事务的回滚,这些undo信息包括了重构过去时间点数据所需要的信息。

闪回删除是建立在回收站机制上的,Oracle会将删除的数据库对象保留到因为要分配新空间而不得不覆盖原来使用的空间为止。

注意:逻辑层面的闪回功能不依赖于RMAN。

在物理层面,Oracle闪回数据库提供了一种对数据库执行按时间点恢复的替代方法。如果数据文件已经包含了所不期待的改变,那么使用闪回数据库能使用当前的数据文件将它的内容还原到过去时间点所处的状态。而结果就是按时间点恢复一样,但其操作速度更快因为它不需要从备份中还原数据文件,比介质恢复应用的重做要少很多。

闪回数据库使用闪回日志来访问数据块的之前版本,它的一些信息与归档重做日志一样。闪回数据库要求你对数据库设置了闪回区,因为闪回日志只能存储在这里。闪回日志缺省情况下是没启用的。闪回日志所使用的空间由数据库自动管理,在闪回区会让空间使用保持平衡。

注意:闪回数据库被集成到RMAN中,在执行闪回数据库时可以自动从备份中检索的任何归档重做日志,它也能使用SQL*Plus来执行,但在这种情况下你必须保证它所要应用的归档日志都在磁盘上。

如果闪回区没有分配足够的空间,那么闪回日志因为备份和归档日志文件可能会被删除。数据库按时间点恢复可以达到与闪回数据库同样的效果,将数据库的内容返回到过去的时间点。

Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。

如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志。

数据库使用归档方式运行时才可以进行灾难性恢复。

1.归档日志模式和非归档日志模式的区别

非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复.

归档模式可以做热备份,并且可以做增量备份,可以做部分恢复.

用ARCHIVE LOG LIST 可以查看当前模式状态是归档模式还是非归档模式.

当前数据库没有启动归档

SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 191
Current log sequence 193

从上面的信息可以知道归档目标为USE_DB_RECOVERY_FILE_DEST,这说归档日志将会存储到闪回区这里之所以归档目录为是因为当没有设置其它归档目录时log_archive_dest_10会隐式的使用USE_DB_RECOVERY_FILE_DEST来存储归档重做日志

SQL> show parameter log_archive_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_2 string
log_archive_dest_3 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
log_archive_dest_8 string
log_archive_dest_9 string
log_archive_dest_state_1 string enable
log_archive_dest_state_10 string enable
log_archive_dest_state_2 string enable
log_archive_dest_state_3 string enable
log_archive_dest_state_4 string enable
log_archive_dest_state_5 string enable
log_archive_dest_state_6 string enable
log_archive_dest_state_7 string enable
log_archive_dest_state_8 string enable
log_archive_dest_state_9 string enable

从上面的信息可以看到当前数据库没有设置任何归档目录,下面来设置归档目录

SQL> alter system set log_archive_dest_1=‘location=/u02‘ scope=both;
System altered.

再来查看归档重做日志存储的目录

SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u02
Oldest online log sequence 191
Current log sequence 193

可以看到现在数据库显示的归档日志目录为我们所指定的/u02

下面来启用闪回

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 327155712 bytes
Fixed Size 1273516 bytes
Variable Size 138412372 bytes
Database Buffers 184549376 bytes
Redo Buffers 2920448 bytes
Database mounted.
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u02
Oldest online log sequence 191
Current log sequence 193
SQL> show parameter db_recovery_file
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/flash_recovery
_area
db_recovery_file_dest_size big integer 2G
SQL> alter database force logging;
Database altered.
SQL> alter database flashback on;
alter database flashback on
*
ERROR at line 1:
ORA-38706: Cannot turn on FLASHBACK DATABASE logging.
ORA-38707: Media recovery is not enabled.

现在虽然我们设置了db_recovery_file_dest与db_recovery_file_dest_size,强制数据库记录日志,但数据库没有启用归档是不能雇用闪回的,下面启用归档。

SQL> alter database archivelog;

Database altered.

再次启用闪回

SQL> alter database flashback on;
Database altered.

当启用闪回就不能使用log_archive_dest与log_archive_duplex_dest参数来指定归档日志目录。而是必须使用log_archive_dest_n

SQL> alter system set log_archive_dest=‘location=/u01‘ scope=both;
alter system set log_archive_dest=‘location=/u01‘ scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16018: cannot use LOG_ARCHIVE_DEST with LOG_ARCHIVE_DEST_n or
DB_RECOVERY_FILE_DEST
SQL> alter system set log_archive_duplex_dest=‘location=/u01‘ scope=both;
alter system set log_archive_duplex_dest=‘location=/u01‘ scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16018: cannot use LOG_ARCHIVE_DUPLEX_DEST with LOG_ARCHIVE_DEST_n or
DB_RECOVERY_FILE_DEST

从上面的错误信息确实可以看到当启用闪回后确实不能使用log_archive_dest与log_archive_duplex_dest参数来指定归档日志目录


推荐阅读
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
author-avatar
半暖半夏半流年
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有