在实际开发过程中,有时我们很有可能需要某个表的操作痕迹,或通过记录的SQL语句进行有目的性的数据恢复(此时POINT-IN-TIME恢复已经满足不了更细的粒度).或仅仅是查看: 据说Oracle8i之后,就提供了Logminer日志分析工具,虽然没有GUI图形化的界面,但也阻挡不了使用他的决心. Oracle11g下使用的情况: (1).数据库开启归档模式 在安装Logminer之前,我们先讲数据库设置为归档模式: 注意:如果开启日志分析功能,仅仅是分析系统默认的Redo01.log.Redo0…
--==================== -- Oracle 归档日志 --==================== Oracle可以将联机日志文件保存到多个不同的位置,将联机日志转换为归档日志的过程称之为归档.相应的日志被称为归档日志. 一.归档日志 是联机重做日志组文件的一个副本 包含redo记录以及一个唯一的log sequence number 对日志组中的一个日志文件进行归档,如果该组其中一个损坏,则另一个可用的日志将会被归档 对于归档模式的日志切换,当日志归档完成后,下一个日志才…
Oracle logminer 分析redo log Oracle 11g r2 RAC centos 6.5 设置时间格式 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') date_format from dual ; 查看数据库是否开启补全日志功能 select SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI, SUPPLEMENTAL_…
近期做个DG的归档日志删除, [oracle@.local logs]crontab -l * 8 * * * sh /home/oracle/dbscripts/del_arc.sh 该脚本分别调用 生成 删除 校验 三个脚本 cat del_arc.sh #! /bin/bash source /home/oracle/.bash_profile sh /home/oracle/dbscripts/build_del_archivelog.sh >> /home/oracle/dbscri…
归档日志:当redo日志发生切换时,归档进程(ARCn)会把redo日志自动归档,产生归档日志. 1.启动归档模式 –确定数据库为非归档模式 SYS@LGR> archive log list; –一致性关闭数据库 SYS@LGR> shutdown immediate –数据库启动到mount状态 SYS@LGR> startup mount; –修改数据库为归档模式 SYS@LGR> alter database archivelog; –打开数据库 SYS@LGR> a…
Oracle数据库重做日志及归档日志的工作原理: lgwr进程将redo log buffer中的重做数据写入到redo log中,此时的redo log分组,每当一个redo log group写满时,或者发出switch logfile指令时都会触发日志组的切换,当发生日志组切换时,arc进程会将当前的重做日志数据写入归档日志: lgwr进程是将内存中的数据写入到重做日志文件,这是内存读磁盘写.然而arc进程是将重做日志文件写入到归档文件,是磁盘读磁盘写. 显然lgwr进程的读写效率或者读写…
             oracle利用重做日志文件记录对数据库的操作.可是重做日志文件组是循环使用的,当所有的日志文件都被填满时,系统自己主动切换到第一组日志文件,当然数据库管理员也能够使用命令手工切换.而在循环使用日志文件时,日志文件里已经存在的日志文件的内容将会被覆盖. 为了完整的记录数据库的所有操作,orale提出了归档日志的概念.     假设是非归档日志模式,则切换日志文件时,日志文件里的内容将被新的内容覆盖.假设是归档日志模式,则切换日志文件时.系统会首先对日志文件进行归档存储,…
Oracle 归档模式和非归档模式 归档模式和非归档模式 在DBA部署数据库之初,必须要做出的最重要决定之一就是选择归档模式(ARCHIVELOG)或者非 归档模式(NOARCHIVELOG )下运行数据库.我们知道,Oracle 数据库需要至少两组联机日志,每当一组 联机日志写满后会发生日志切换,继续向下一组联机日志写入.如果是归档模式,日志切换会触发归档进程 (ARCn)进行归档,生成归档日志.Oracle 保证归档完成前,联机日志不会被覆盖,如果是非归档模式, 则不会触发归档动作. 归档模…
一.Oracle日志介绍 1.Oracle日志分类 分三大类: Alert log files--警报日志,Trace files--跟踪日志(用户和进程)和            redo log 重做日志(记录数据库的更改). 本文主要关注Oracle的重做日志. 重做日志分为在线重做日志和归档重做日志.    online Redo log files--在线重做日志,又称联机重做日志,指Oracle以SQL脚本的形式实时记录数据库的数据更新,换句话说,实时保存已执行的SQL脚本到在线日志…
1.ORACLE归档日志介绍 归档日志暴增是oracle比较常见的问题,遇到归档日志暴增,我们该如何排查: 归档日志暴增一般都是应用或者人为引起的 理解归档日志存储的是什么 如何排查归档日志暴增原因 如何优化归档日志暴增 1.1 归档日志是什么 归档日志(Archive Log)是非活动的重做日志(redo)备份. 通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中. 当数据库出现介质失败时,使用数…
最近一年,手头上负责的项目要部署到很多个地方,由于项目组里没有人对oracle比较熟悉,只能给自己增加一个DBA的角色了.由于短时间内要部署很多单位,备份策略没有设置好,结果过了一个月,用户报告程序开始连不上数据库了,并且发给我错误报告.主要是ora-16038. ora-19809. ora-00312三个错误,意思很明确,就是归档日志写满了,没法继续写入归档日志了,导致数据库被暂停了,等待继续写入归档日志到硬盘. 由于用户业务比较紧张,先考虑紧急处理方案,先将数据库恢复正常,然后再给用户数据…
一.开启归档 1.查看归档信息 SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online 当前数据库未开启归档 2.设置归档目录 oracle默认使用闪回恢复区DB_RECOVERY_FILE_DEST作为归档路径 SQL> show parameter DB_REC…
ORACLE 正确删除归档日志的方法 我们都知道在controlfile中记录着每一个archivelog文件的相关信息,当然们在OS下把这些物理文件delete掉后,在我们的controlfile中仍然记录着这些archivelog文件的相关信息,在oracle的OEM管理器中有可视化的日志展现出,当我们手工清除 archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了,这时候我们要做手工的清除的话,下面我经过实验,可以…
我们都知道在controlfile中记录着每一个archivelog文件的相关信息,当然们在OS下把这些物理文件delete掉后,在我们的controlfile中仍然记录着这些archivelog文件的相关信息,在oracle的OEM管理器中有可视化的日志展现出,当我们手工清除 archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了,这时候我们要做手工的清除的话,下面我经过实验,可以尝试这种方法: 1.进入rman [r…
备份归档日志方式有两种:  1 单独备份归档日志:backup archivelog all  2 在执行备库时一起备份归档日志:backup database plus archivelog;  这两种方式有什么区别呢?  运行backup archivelog all  命令时执行的步骤:  1.alter system archive log current;  归档当前日志   2.backup  archivelog all ; 备份所有归档日志   而运行backup databas…
今天写篇原创的,把在工作中遇到的logminer问题总结下 (1)简介: logminer 工具即可以用来分析在线,也可以用来分析离线日志文件,即可以分析本身自己数据库的重作日志文件,也可以用来分析其他数据库的重作日志文件. 总的说来,logminer工具的主要用途有:  1. 跟踪数据库的变化:可以离线的跟踪数据库的变化,而不会影响在线系统的性能.  2. 回退数据库的变化:回退特定的变化数据,减少point-in-time recovery的执行.  3. 优化和扩容计划:可通过分析日志文件…
最近开发Oracle数据同步功能,做了些调研和验证,这个工作过去有段时间,怕时间长了忘记,故用博客共享出来.在这系列中共写了三篇文章,第一篇是写LogMiner配置及使用,第二篇是测试了LogMiner读取日志文件性能,验证可行性,第三篇是使用LogMiner进行数据同步Demo,在该Demo中通过LogMiner在源数据库读取在线/归档日志文件,然后在目标数据库上执行. 以下为三篇文章PDF文件: 1.1.OracleLogminer配置使用.pdf 2.2.OracleLogminer性能测…
在ORACLE用户下的定时器设置 [oracle@SHARKDB dbscripts]$ crontab -l# minute hour day month week15 1  * * 0  sh /home/oracle/dbscripts/backup_full.sh05 3  * * *  sh /home/oracle/dbscripts/del_arc.sh 全备脚本 先配置保留时间窗口,配置备份目录和格式,然后交叉检查所有备份集. 删除无效备份集,删除过期对象,进行全备份并压缩..…
RMAN备份归档日志ORA-19575 一.问题描述 1)环境oracle 10g; 2)报错现象RMAN进行备份归档报错失败ORA-19575 二.问题处理 1)根据客户说明的现象,百度了一波(详见参考链接) 2)操作系统mv修改名称存在问题的归档日志后,crosscheck检查归档日志,delete删除无效的归档日志后,再次进行备份,问题已解决. 三.参考链接 https://smarttechways.com/2012/11/01/ora-19575-expected-blocks-in-…
背景 当Oracle 归档日志满了后,将无法正常登入oracle,需要删除一部分归档日志才能正常登入ORACLE.最近遇到一个问题,一套Oracle 11g数据库使用RMAN删除了归档日志,但是仍然无法释放,导致无法登陆oracle数据库. 1.查看归档日志文件 oracle@ps251n2s:[/opt/oracle/archive/db] ls -ltr |more total 3059881082 -rw-r----- 1 oracle oinstall 725320704 May 20…
ORACLE归档日志比联机重做日志小很多的情况   前几天一网友在群里反馈他遇到归档日志比联机重做日志(redo log)小很多的情况,个人第一次遇到这种情况,非常感兴趣,于是在一番交流沟通后,终于弄清楚了情况,顺便将这方面的资料整理于此!也是一个总结.学习过程! 归档日志比联机重做日志小很多,出现这种情况的原因有很多,我们可以从下面这几方面着手检查,一一排除确认. 1:检查参数ARCHIVE_LAG_TARGET ARCHIVE_LAG_TARGET参数可以设置一个时间,通过时间限制,指定数据…
1.概述 作用:通过使用包DBMS_LOGMNR和DBMS_LOGMNR_D,可以分析重做日志和归档日志所记载的事务变化,最终确定误操作(例如DROP TABLE)的时间,跟踪用户事务操作,跟踪并还原表的DML操作. 2.包的组成 1).dbms_logmnr.add_logfile作用:用于为日志分析列表增加或删除日志文件,或者建立日志分析列表.语法:dbms_logmnr.add_logfile(LogFileName in varchar2,Option in binary_integer…
归档重做日志文件的概念和选择 Oracle数据库能够把已经写满了的重做日志文件保存到一个或多个指定的离线位置,这种保存的文件为归档重做日志文件.通常情况下一个归档重做日志时一个被LGWR写满的重做日志文件组的一个成员的拷贝, 包含所有的重做记录及日志序列号等信息. 如果一个数据库应用系统不能承受任何的数据丢失,即使是介质损坏,也需要数据完全恢复,那么必须将数据库运行在归档模式. 1.非归档模式 此时数据库系统不会对被LGWR进程写满了的重做日志文件进行归档操作,所有的历史重做日志信息都将被覆盖而…
============= oracle数据库archivelog暴增分析 ==================== 前言 归档量突然增长到981G/天,导致归档目录使用率告警 归档日志量异常暴增会导致磁盘空间爆满,数据库异常 1.归档日志量统计 SELECT TRUNC(FIRST_TIME) "TIME",SUM(BLOCK_SIZE * BLOCKS) / 1024 / 1024 / 1024 "SIZE(GB)"FROM V$ARCHIVED_LOGGROU…
oracle归档日志一般由dml语句产生,所以增加太快应该是dml太频繁 首先查询以下每天的归档产生的情况: SELECT TRUNC(FIRST_TIME) "TIME", SUM(BLOCK_SIZE * BLOCKS) 1024 oracle归档日志一般由dml语句产生,所以增加太快应该是dml太频繁 首先查询以下每天的归档产生的情况: SELECT TRUNC(FIRST_TIME) "TIME",SUM(BLOCK_SIZE * BLOCKS) / 102…
归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中.当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库. 1.查看当前数据库是否处于归档模式:select name,log_mode from v$database;archive log list; 2.改变非归档模式到归档模式: conn / as sysdba…
在开发环境及UAT环境经常碰到需要清除归档日志的情形,对于这个问题方法有很多.可以直接使用rm方式清除归档日志,也可以使用find命令来查找符合条件的记录来清除归档日志,或者直接写个shell脚本来搞定.这样在DEV或者UAT还可以,但是在Prod环境还是建议使用RMAN提供的命令来搞定比较妥当.因为rm,find方式删除了实际的归档日志也释放了空间,但对应的存储在控制文件中的归档信息并没有彻底清除.依旧占用着一些空间未能及时清除而需要控制文件通过age out方式来释放空间.本文描述了使用RM…
归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中.当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库.日志操作模式:ARCHIVELOG NOARCHIVELOG1,改变日志操作模式:检查当前日志操作模式SELECT log_mode from v$database; 关闭数据库,然后装载数据库SHUTDOWN…
  今天数据群有人反应网站不能正常打开,经检查Oracle数据库远程连不上,提示信息:ORA-00257: archiver error. Connect internal only, until freed.可能是archivelog满了.以前学习SQL只关注CRUD,对日志了解甚少,此次宕机虽然对生成没有造成恶劣影响,但也是因为业务不熟悉所致,特花一天时间学习并记录Oracle日志归档功能.. 以下内容针对没有使用Oracle ASM磁盘组情况,使用了Oracle ASM磁盘组的情况以后分析…