编辑手记: LogMiner是用于Oracle日志挖掘的利器,使用该工具可以轻松获得Oracle 重做日志文件(归档日志文件)中的具体内容,LogMiner分析工具实际上是由一组PL/SQL包和一些动态视图组成,它作为Oracle数据库的一部分来发布,是oracle公司提供的一个完全免费的工具。本文主要演示LogMiner的使用,直观展示LogMiner的作用。 环境:Oracle 11.2.0.4 RAC 1.查询当前日志组 2.业务用户插入操作 3.归档日志切换 4.业务用户插入操作 5.归档日志切换
听说过还原(restore)数据库,表空间及数据库文件,使用归档日志恢复(recover)数据库,表空间,数据库文件。咦,还有还原归档日志这一说法呢?没错,可能我们忽略了还原归档日志这一个过程,原因是还原归档日志通常情况下是oracle在recover时自动完成的。大多数情况下我们是先还原数据库,恢复数据库,打开数据库。实际上在恢复数据库之前有一个动作,那就是还原归档日志,也就是将日志文件还原到缺省的归档位置,如果我们在备份归档日志时使用了delete [all] input子句的话。本文对此给出了单独还原归档日志以及恢复归档日志的示例以及restore archivelog的一些用法,仅仅是为了更好来的理解还原与恢复的过程,因为大多数情形下,数据文件被还原到缺省路径。如果是还原到非缺省路径,那就需要手动restore archivelog。
当主库的某些日志没有成功传送到备库,那么这时候就发生了归档裂缝(Archive Gap)。目前Oracle提供了两种日志GAP的检测和处理机制,分别是自动GAP处理(Automatic Gap Resolution)和FAL进程GAP处理(FAL Gap Resolution)。自动GAP处理即主库上的ARCn进程会每分钟检查备库上的日志GAP情况并做相应处理。FAL(Fetch Archive Log)是通过配置FAL_SERVER和FAL_CLIENT实现GAP检测的一种机制,它是备库主动发起的“取”日志的过程。备库就是FAL_CLIENT,它从FAL_SERVER中取这些GAP。Oracle会首先尝试使用FAL进程处理GAP,当发现FAL机制并没有配置生效的时候,进而尝试使用自动GAP处理。
Oracle通过Redo Archived实现数据的归档 什么是Redo日志 Redo日志记录了数据的变更,用于在数据库出现故障后,进行数据恢复。 功能主要由三个组件实现:Redo Log Buffer、LGWR后台进程、Redo Log File。 Redo Log Buffer是Oracle共享内存中的一段空间,记录了数据库的变更历史,包括:insert,update,delete,create,alter,drop等。 过程: 用户内存中的记录 --复制--> SGA中的Redo Log Buf
遇到的失败或错误分为两大类:物理和逻辑。物理错误一般是硬件错误或使用数据库的应用程序中的软件错误,而逻辑错误一般在终端用户级别(数据库用户和管理员)。
我们坑你遇到的失败或错误分为两大类:物理和逻辑。物理错误一般是硬件错误或使用数据库的应用程序中的软件错误,而逻辑错误一般在终端用户级别(数据库用户和管理员)。
最近在因归档日志暴增,使用delete archivelog all貌似无法清除所有的归档日志,到底是什么原因呢?
DB2日志是以文件的形式存放在文件系统中,分为两种模式:循环日志和归档日志。当创建新数据库时,日志的缺省模式是循环日志。在这种模式下,只能实现数据库的脱机备份和恢复。如果要实现联机备份和恢复,必须设为归档日志模式。
本文作者:杨槐(花名:渡劫)袋鼠云大数据开发工程师,负责FLinkx的开发与维护。
对任何数据库系统而言,对显而易见的故障,应当避免发生本文列出了Oracle常见的故障并给出了解决方案,同时列出了一些日常规划。
在开发环境及UAT环境经常碰到需要清除归档日志的情形,对于这个问题方法有很多。可以直接使用rm方式清除归档日志,也可以使用find命令来查找符合条件的记录来清除归档日志,或者直接写个shell脚本来搞定。这样在DEV或者UAT还可以,但是在Prod环境还是建议使用RMAN提供的命令来搞定比较妥当。因为rm,find方式删除了实际的归档日志也释放了空间,但对应的存储在控制文件中的归档信息并没有彻底清除。依旧占用着一些空间未能及时清除而需要控制文件通过age out方式来释放空间。本文描述了使用RMAN方式来清除归档日志,同时也可以将其部署到shell脚本中使用。
查看当前归档日志路径,空间的使用率已经到了100%,于是在rman中,删除30天之前的归档日志文件,
ORA-03113: end-of-file on communication channel
最近在某银行进行OGG迁移时,遇到一个超过1T的数据库,由于开始没有注意到一些细节,导致在导入过程中出现了一些问题。现在将这些问题总结记录下来,防止之后再发生类似问题。
数据库维护中,备份或恢复是重中之重的问题。尽管很多时候数据库系统运行缓慢,但对数据库数据的丢失而言,显然后者损失的代价是
在Oracle数据库中,数据库可以设置为归档模式和非归档模式。归档模式保存所有的事务日志,包括在线Redo日志和归档日志,而非归档模式没有归档日志,只有在线Redo日志。归档模式是指可以备份所有的数据库事务并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点,但是非归档模式可以带来数据库性能上的少许提高,因为非归档模式没有归档日志。DBA必须做出的一个重要决策是将数据库配置为在ARCHIVELOG模式下运行还是将其配置为在NOARCHIVELOG模式下运行。。
这是一个单实例数据库,oracle11.2.0.4 ,跑在Wondows上,当时主库压力太大,用户有容灾和读写分离的需求,这样在主库跑了一段时间后搭建了一个备库,这个备库一直跑到很好,最多主库由于存储压力,删除过几个归档日志,这个删除也是确认了备库应用之后操作的,对主备都已经没有影响。所以,当这家南方公司的负责人(我就称为王工)找到我时,我还是觉得意外。
链接:http://www.eygle.com/archives/2010/11/recover_archivelog_corruption.html
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53905885
日志文件的六种状态UNUSED,CURRENT,ACTIVE,CLEARING,CLEARING_CURRENT,INACTIVE代表的意思分别如下所述:
Oracle 11g中对于归档日志的删除,除了遵循RMAN保留策略外,也可以通过RMAN来配置归档日志的删除策略,也就是归档日志何时可以被删除。归档日志删除策略适用于所有归档位置(使用快速闪回区FRA/不使用FRA)。本文主要描述归档日志删除策略并给出了具体的演示。
RMAN使用服务器会话来完成备份操作,从RMAN客户端连接到服务器将产生一个服务器会话
数据库恢复的策略,是使用最近的一次备份来实现数据库的还原,然后使用归档日志和联机日志将数据库恢复到最新或特定状态。
Oracle闪回区已经有了好几载的岁月了,在10g的时候就被推出一直延续到现在。Oracle闪回区是为RMAN准备的,尽管抛开它我们可以同样完成数据库备份恢复的相关工作,Oracle依旧强烈推荐使用且它让其成为RMAN的组件之一。这是因为该区域可集中简化管理所有和备份恢复工作,这也是其魅力所在。本文描述了Oracle闪回区的特性及其配置闪回区,监控闪回区等。
在很多情况下,或无法使用dbca工具的时候,我们需要手动来删除数据库。对此,可以借助drop database命令来实现,下面的描述中给出手动删除数据库
这里当前日志(current)是: thread 1 sequence 30 thread 2 sequence 25
Oracle数据库从物理存储中完全抽象出逻辑存储。逻辑数据存储采用“段”的形式。段的类型有很多种:典型的段是“表”。这些段以物理形式存储在数据文件中。通过表空间将逻辑存储从物理存储中抽象出来。逻辑结构和物理结构及其定义之间的关联在数据字典中定义。
熊军(老熊) 云和恩墨西区总经理 Oracle ACED,ACOUG核心会员 在11g里面,随着ASM、RAC、Data Guard(包括Active Data Guard)的成熟,使用RAC+ASM+Data Guard越来越成为一种可靠的、维护简单、稳定的高可用性和容灾保护方案。这篇文章谈谈如何管理Oracle 11g Data Guard环境中的归档日志。 归档日志是重要的,备份恢复需要它,而Data Guard也需要它。在早期版本的Data Guard环境中,常常面临着归档日志管理问题,,但11g做
restore just copy the physical file, recover will consistent the database. restore 是还原,文件级的恢复。就是物理文件还原。 recover 是恢复,数据级的恢复。逻辑上恢复,比如应用归档日志、重做日志,全部同步,保持一致。 即用restore命令先从上次备份的文件提取出数据文件拷贝到原目录下进行替换,而recover是在restore之后,使用redo log & archive log补全从备份到现在时刻的差异数据。 1、restore 命令:用于还原已经备份的数据文件。 (1)、restore database 还原所有的数据文件。 (2)、restore tablespace 还原特定表空间的数据文件。 (3)、restore datafile 还原特定的数据文件。 (4)、restore controlfile 还原控制文件。 (5)、restore archivelog 还原归档日志文件。 2、recover 命令:当数据库需要应用归档日志文件恢复数据文件时,使用recover命令。使用该命令数据库系统会自动应用归档的日志文件。 (1)、recover database 恢复所有的数据文件。 (2)、recover tablespace 恢复特定表空间的数据文件。 (3)、recover datafile 恢复特定的数据文件。 restore 只是用备份来还原,recover是用archivelog或者online log 举例说明: 假设我时间点A,做了个备份,时间点B数据库挂了 restore database ;// 这个操作利用时间点A做的备份来还原,返回到时间点A recover database ;//这个操作利用archivelog and online log做recover,从时间点A,推进到时间点B
之前在《Win环境下Oracle小数据量数据库的物理备份》这篇文章中,介绍了在win平台下对于小数据量的数据库的物理备份设计。 文中重点提到,强烈建议备份文件有单独的存储,防止存储单点故障时备份文件亦不可用。 当我在实验环境实际去模拟这种使用单独存储的环境时,出现意料之外的问题:备份到映射的盘符无法成功,报错如下:
Oracle随着版本的升级,逐渐将步骤缩减,进行封装,18C之后可谓是达到了所谓的一键刷新,恢复DG同步。
之前写了一篇文章《Oracle-知识结构漫谈》 粗略的介绍了Oracle数据库接口,在这里再更加详细的描述一下,当做是对原有知识的巩固,温故知新。
Oracle数据库重做日志及归档日志的工作原理: lgwr进程将redo log buffer中的重做数据写入到redo log中,此时的redo log分组,每当一个redo log group写满时,或者发出switch logfile指令时都会触发日志组的切换,当发生日志组切换时,arc进程会将当前的重做日志数据写入归档日志; lgwr进程是将内存中的数据写入到重做日志文件,这是内存读磁盘写。然而arc进程是将重做日志文件写入到归档文件,是磁盘读磁盘写。 显然lgwr进程的读写效率或者读写速度比a
最近检查测试机器(Linux6-Oracle112040 RAC)ASM目录发现归档日志有断档,目录里遗留了2019、2020年的一些不连续归档。断档的这一部分在控制文件中没有记录,故此归档文件一直没有被发现。这些不连续的归档日志都属于无效日志,需要清理。
对于DEV以及UAT环境,有些时候,数据库需要处于归档模式,但并不需要备份数据库。因此,archive归档日志不停的增长导致磁盘空间被大量耗用。对于这种情形,可以使用一个shell脚本来定时自动清除这些归档日志。本文给出了清除归档日志的脚本。
黄廷忠(网名:认真就输) 云和恩墨技术专家 个人博客:http://www.htz.pw/ 故障描述: 最近遇到11.2.0.3 RAC FOR AIX平台在出账高峰期生成的归档日志有损坏,导致归档日志文件备份失败。关键在此系统上有DG,并且在出账的期间,由于需要,将备库转换成SNAPSHOT STANDBY,此时遇到主库已经成功传输到备库的归档文件在主库不能删除的BUG,还由于其它一些原因,禁用主机传输到备库的归档路径。悲剧来了,归档日志文件坏了,没有办法,月初高峰期后,使用增量备份来前滚物理备库吧,
对于一门技术的学习,尤其是像Oracle database这种知识体系极其庞杂的技术来讲,从宏观上了解其体系结构是至关重要的。同时,个人认为,未必是专业DBA人员才需要了解其体系结构(固然对于数据库专业人员来讲,这些都是必备知识了),一般的技术人员如果对其有较深入的了解,也是大有益处的,毕竟技术思想很多时候都是相通的嘛。本文就从不同维度,如Oracle的内存结构,进程结构,存储结构等方面做相应描述。
日志切割 当网站访问量大后,日志数据就会很多,如果全部写到一个日志文件中去,文件会变得越来越大,文件大速度就会慢下来,比如一个文件几百兆,写入日志的时候,就会影响操作速度. 手动切割 --进入日志目录 cd /usr/local/nginx/logs/ --重命名日志文件 [root@host1 logs]# mv access{,.$(date +%F)}.log [root@host1 logs]# ls access.2020-09-18.log access.log error.log ng
在上一篇文章中,我们从一个查询语句的执行流程知道了 MySQL 架构可分为 Server 层和存储引擎层,以及各个层级的具体部件。
日志文件包含系统内部执行情况的有用信息。在排除故障或服务器性能分析时往往需要检查日志。对于繁忙的服务器,日志文件可能会在短时间内变得非常大。这将成为一个问题,因为服务器会很快耗尽存储空间。此外,操作一个非常大的日志文件往往会非常棘手。 logrotate 是可以自动转储、压缩和删除旧日志文件的一个非常有用的工具。例如,你可以设置logrotate将日志文件 /var/log/foo的每30天转储一次,并且删除超过6个月的记录。一旦配置完成,logrotate可以完全自动化操作不需要进行人工交互 在主要
主库(Primary Database)在运行过程中,会源源不断地产生Redo日志,这些日志需要发送到备库(Standy Database)端。这个发送动作可以由主库的LGWR或者ARCn进程完成,不同的归档目的地可以使用不同的方法,但是对于一个目的地,只能选用一种方法。选择不同的进程在数据保护能力和系统可用性方面有很大区别。如果使用LGWR进程来传递日志,但是由于某些原因,LGWR进程变得无法归档到目的地了,那么重做传输将会使用ARCn进程来完成归档操作。
如何知道是否开启了实时应用呢?可以查询V$LOGSTDBY_STATE视图或查询是否有lsp进程。
说明:这里的Oracle服务器是linux系统,windows系统也是一样的!!
对于Linux系统安全来说,日志文件是极其重要的工具。不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了Logrotate,争相发明自己的轮子,这真是让人沮丧啊!就好比明明身边躺着现成的性感美女,大家却忙着自娱自乐,罪过!
在Oracle中可以通过闪回技术来找回已经删除并且提交了的数据。当然,除了闪回技术外还可以采用LogMiner(使用该工具可以轻松获得Redo日志文件包含归档日志文件中的具体内容)进行日志挖掘,找出其撤销SQL并执行就可以找回DELETE语句删除的数据。
1、在Oracle用户下,创建归档日志删除文件del_OCPLHR1_arch.sh
Oracle的备份与恢复有三种标准的模式,大致分为两大类,备份恢复(物理上的)以及导入导出(逻辑上的),而备份恢复又可以根据数据库的工作模式分为非归档模式(Nonarchivelog-style)和归档模式(Archivelog-style),通常,我们把非归档模式称为冷备份,而相应的把归档模式称为热备份,他们的关系如下所示
我们不管在生产环境还是开发环境,看日志是必不可少的,日志中往往包含很多有用的信息,有时候被DDOS、上传非法文件等等,我们都需要通过日志分析。但是日志是跟访问量成正比的,你的访问量越大,你的各种级别日志就越多,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成个很严重的问题。不仅是这个,如果你是一个日志文件的话,你阅读、打开都要花费很大力气,那么怎么才能处理好这种情况?
领取专属 10元无门槛券
手把手带您无忧上云