Oracle 开启归档模式后,会一直不停的产生归档日志,如果不定时删除,迟早会撑爆磁盘空间,所以就需要布置定时删除归档日志的脚本! 至于为什么要开启归档模式,还有怎么开启归档模式!...请参考:Oracle 开启归档模式 Linux 下删除归档脚本: mkdir -p /home/oracle/scripts/log vi /home/oracle/scripts/del_arch.sh.../bin/bash source ~/.bash_profile DAY_TAG=`date +"%Y-%m-%d"` rman target / nocatalog msglog /home/oracle...noprompt force archivelog until time 'SYSDATE-10'; EOF ## 写入crontab crontab -e # 00 07 * * * /home/oracle.../scripts/del_arch.sh Windows 下删除归档脚本: 编辑 del_arch.bat 脚本: @echo off set ORACLE_SID=orcl set "filename
--==================== -- Oracle 归档日志 --==================== Oracle可以将联机日志文件保存到多个不同的位置,将联机日志转换为归档日志的过程称之为归档...相应的日志被称为归档日志。...对于归档模式的日志切换,当日志归档完成后,下一个日志才能被覆盖或重新使用 自动归档功能如开启,则后台进程arcn在日志切换时自动完成归档,否则需要手动归档 归档日志用途 恢复数据库 更新standby...联机日志被覆盖后,介质恢复仅仅支持到最近的完整备份 不支持联机备份表空间,一个表空间损坏将导致整个数据库不可用,需要删除掉损坏的表空间或从备份恢复 对于操作系统级别的数据库备份需要将数据库一致性关闭...,日志组才可以使用 归档日志的Log sequence number信息会记录到控制文件之中 必须有足够的磁盘空间用于存放归档日志 Oracle 9i 需要设置参数log_archive_start
♣ 题目部分 在Oracle中,如何定时删除归档日志文件?...答案部分 对于单实例的数据库可以使用如下的脚本: 1、在Oracle用户下,创建归档日志删除文件del_OCPLHR1_arch.sh 文件位置:/home/oracle/crontabOra,...crond服务处于启动状态: ps -ef | grep crond #判断定时服务是否启动 service crond start|stop|restart #启动、停止或重启服务 对于DG环境,需要删除已经应用到备库的归档日志... expired archivelog all; @${SQL_NAME} exit; EOF 一.在主库或备库查询哪些归档日志已经应用到备库,这些日志可以被删除了: SELECT THREAD#,...b.DESTINATION IS NOT NULL) AND A.COMPLETION_TIME <= SYSDATE - 3 ORDER BY A.THREAD#, A.SEQUENCE#; ---在备库查询归档日志的应用情况
1、在Oracle用户下,创建归档日志删除文件del_OCPLHR1_arch.sh 文件位置:/home/oracle/crontabOra,内容如下: #!.../bin/bash export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1 export ORACLE_SID=OCPLHR1 export.../crontabOra/log DATEL=`date '+%Y-%m-%d'` LOG_NAME=${LOG_DIR}/OCPLHR1_${DATEL}".log" $ORACLE_HOME/bin/...用户下,编辑配置文件 crontab -e 配置文件内容(每天下午5点执行删除任务): 0 17 * * * /home/oracle/crontabOra/del_OCPLHR1_arch.sh 确保........................................................................● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除
Oracle的归档模式( ARCHIVELOG ) 一般用于数据库的复制和备份,相对重要的企业应用都会打开该模式,每当执行了增删改的操作,Oracle就会自动归档,当归档分区剩余空间不足90%时,Oracle...的服务将不可用,这时就需要清理归档日志。...清理归档日志的脚本 rmanclear.sh: #!.... ~/.bash_profile fi ORACLE_SID=$1; export ORACLE_SID=$ORACLE_SID $ORACLE_HOME.../bin/bash su - oracle -c "/users/oracle/scripts/rmanclear.sh orcl " > /dev/null 2>&1 定时任务: [root]#
因为rm,find方式删除了实际的归档日志也释放了空间,但对应的存储在控制文件中的归档信息并没有彻底清除。依旧占用着一些空间未能及时清除而需要控制文件通过age out方式来释放空间。...有关阅读本文需要的相关参考 Oracle 归档日志 Oracle 控制文件(CONTROLFILE) Oracle 联机重做日志文件(ONLINE LOG FILE) delete archivelog...all 无法彻底删除归档日志?...Linux/Unix shell 脚本中调用SQL,RMAN脚本 Linux/Unix shell 脚本清除归档日志文件 1、清除归档日志的方式 a、手动删除 使用rm 或者find方式来删除...archivelog all completed before 'sysdate-7'; --->删除系统时间7天以前的归档日志,不会删除闪回区有效的归档日志 delete
Oracle 11g中对于归档日志的删除,除了遵循RMAN保留策略外,也可以通过RMAN来配置归档日志的删除策略,也就是归档日志何时可以被删除。...归档日志删除策略适用于所有归档位置(使用快速闪回区FRA/不使用FRA)。本文主要描述归档日志删除策略并给出了具体的演示。...1、关于归档日志删除策略 也就是哪些归档日志符合删除策略能够被删除,如前所述,归档位置适用于所有归档位置(使用快速闪回区FRA/不使用FRA) 当启用该策略后,如归档日志存在于FRA...中,则Oracle会尽可能根据保留他们,一旦FRA空间告急,则Oracle会根据归档日志删除策略自动删除 对于不在FRA中的归档日志,需要手动使用delete obsolete或delete...也就是说根据RMAN备份保留策略,对于FRA中的归档日志,被备份过一次(到磁盘或磁带)即符合条件被删除 如果Oracle不再需要当前的归档日志用于保证数据库时点恢复或数据库闪回,则RMAN备份保留策略认为当前日志为
题目部分 在Oracle中,如何定时删除归档日志文件?...答案部分 对于单实例的数据库可以使用如下的脚本: 1、在Oracle用户下,创建归档日志删除文件del_OCPLHR1_arch.sh 文件位置:/home/oracle/crontabOra,内容如下...crond服务处于启动状态: ps -ef | grep crond #判断定时服务是否启动 service crond start|stop|restart #启动、停止或重启服务 对于DG环境,需要删除已经应用到备库的归档日志...expired archivelog all; @${SQL_NAME} exit; EOF 一.在主库或备库查询哪些归档日志已经应用到备库,这些日志可以被删除了: SELECT THREAD#,...b.DESTINATION IS NOT NULL) AND A.COMPLETION_TIME <= SYSDATE - 3 ORDER BY A.THREAD#, A.SEQUENCE#; ---在备库查询归档日志的应用情况
,闪回区空间并不会被重用 FLASHBACK_ON ------------------ NO 2、查看及清除现有的归档日志文件 oracle@bo2dbp:~> export ORACLE_SID...# 其次status列的D字段也表明了这些个名字为空的归档日志已经被Deleted.也就是说有444个归档日志已经被删除了。...# 再次尝试删除归档日志,尾数为295和150的归档日志也被删除 RMAN> delete noprompt archivelog all; released channel: ORA_DISK_1...d、注意backup archivelog all时delete input与delete all input有些差异,前者删除仅仅被备份过的归档日志,而后者则对于多个归档位置 下的所有归档日志全部删除...e、视图v$archived_log或gv$archived_log提供了归档日志的相关详细信息 f、建议备份归档日志后再删除。
因为Oracle archivelog会不断生产,一般会设置定期清理archivelog的排程,类似下面。...但DG环境中因为某些原因导致主库事务没有即使传到standby,而这时如果主库的archivelog也被清理掉了,主备库就产生了日志GAP export ORACLE_SID=abc export ...ORACLE_HOME=/u01/product/oracle/ export PATH=$ORACLE_HOME/bin:$PATH export NLS_LANG=AMERICAN_AMERICA.AL32UTF8...,主库archivelog才会被删除呢?...SQL> alter system switch logfile; SQL> / 4.因为standby未接收到archivelog,对主库备份archivelog同时加了DELETE INPUT清理归档报错
Oracle数据库重做日志及归档日志的工作原理: lgwr进程将redo log buffer中的重做数据写入到redo log中,此时的redo log分组,每当一个redo log group写满时...,或者发出switch logfile指令时都会触发日志组的切换,当发生日志组切换时,arc进程会将当前的重做日志数据写入归档日志; lgwr进程是将内存中的数据写入到重做日志文件,这是内存读磁盘写。...然而arc进程是将重做日志文件写入到归档文件,是磁盘读磁盘写。...显然lgwr进程的读写效率或者读写速度比arc进程要快,而频繁发生DML操作的数据库中,可能会发生归档慢,而重做日志写入速度快的情况,这就会导致数据库被HANG住,此时数据库什么也不做就是等待arc进程将当前重做日志数据写入到归档文件...1)查看当前该参数值(命令结果中的VALUE显示的是:当前最大归档进程数) 2)修改归档最大进程数为5 3)通过命令验证一下 ?
环境:RAC+单机 Dataguard 问题:启动备库到ADG模式时,发现后台归档日志并不同步 1、在备库中发现日志的归档日志不同步,内容如下: MRP0: Background Media Recovery...,如果在主库节点2中做日志切换时,备库中是有打印日志的信息内容,内容见第一步中信息 3、通过第二步中的现象描述,可以先大概判断为是主库节点1中DG信息可能有问题导致归档日志无法同步过去 4、查询主库中配置归档位置配置的是否有错误信息...@rac1:/home/oracle]$tnsping strac TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 04-MAR...@rac2:/home/oracle]$tnsping strac TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 04-MAR...2、通过v$archive_dest 查询当前的DG的归档日志信息,如果里面有报错信息,可以提供一个大概的参考范围,方便我们定位问题。
srvctl stop database -d p19c0 ##开启单个节点到mount模式 srvctl start instance -d p19c0 -i p19c01 -o mount ##开启归档...sqlplus / as sysdba alter database archivelog; ##设置归档路径 ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION...=+DATA'; exit; ##重启数据库实例 srvctl stop instance -d p19c0 -i p19c01 srvctl start database -d p19c0 ##检查归档
Oracle 数据库通常建议开启归档模式,记录数据库操作的记录归档到本地日志文件! 可以通过以下命令查看是否开启归档: archive log list 如图,即已开启归档! 有啥好处呢?...开了归档之后,可以 RMAN 实时备份数据,配置 DataGuard 必须开启归档模式,数据库基本能保证零丢失!...开启归档模式的步骤: 1、设置归档路径 alter system set log_archive_dest_1='LOCATION=/archivelog'; 这个 /archivelog 目录需要是磁盘中物理存在的路径...,否则无法归档!...3、打开归档模式,打开数据库到 open alter database archivelog; alter database open; 4、检查归档状态,切换日志 archive log list alter
1.删除比当前时间小的日志文件 ------------------------------成功的脚本。...目的:是删除比当前时间小的日志文件---------------------------- 执行脚本的方式: sh auto-del-log.sh [doudou@centosaly workspace...echo $t2 if [ "$t11" -gt "$t2" ];then rm -rf $file echo "删除成功...fi done 2.通过传参的方式,删除指定日期以前的日志 ----------------------通过传参-$1的方式,删除指定时间之前的日志---------------------...fi done 3.常规的删除日志的脚本 删除30天之前的日志 --------------------常规的解决办法-------------------------------- find
http://www.eygle.com/archives/2010/11/recover_archivelog_corruption.html 最近在紧急故障处理时,帮助用户恢复数据库遇到了一则罕见的归档日志损坏案例...在进行归档recover时,数据库报错,提示归档日志损坏: *** Corrupt block seq: 37288 blocknum=1....如果这个归档日志损坏了,其实我们仍然有办法跳过去,继续尝试恢复其他日志,但是客户数据重要,不能容忍不一致性,这时候就只能放弃部分数据,由前台重新提交数据了。这在业务上可以实现,也就不是大问题了。...在这个归档日志文件中,被写入了大量的跟踪文件内容,其中开头部分就是一个跟踪文件的全部信息。...这是一种我从来没有遇到过的现象,也就是说,当操作系统在写出跟踪文件时,错误的覆盖掉了已经存在的归档文件,最后导致归档日志损坏,非常奇妙,从所未见。
归档日志大小(通用) 无论归档日志放在文件系统还是ASM磁盘上,都可以通过如下方式查询: -- 按照天数计算 SELECT to_char(FIRST_TIME,'YYYY-MM-DD') MD,...0, 1 FROM v$block_change_tracking bb, v$recovery_file_dest c WHERE c.SPACE_LIMIT 0; 归档日志存放在在文件系统...在文件系统上,进入归档目录后,可以直接用如下命令查询: du -sh ./* 归档日志在ASM磁盘示例 [oracle@rac1 ~]$ sas SQL*Plus: Release 11.2.0.4.0...Production on Mon Nov 28 11:11:06 2022 Copyright (c) 1982, 2013, Oracle....Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning
什么日志归档 2. 为什么要做日志归档 3. 何时做日志归档 4. 归档日志放在哪里 5. 谁去做日志归档 6. 怎样做日志归档 6.2.1. 软件安装 6.2.2. 节点推送端 6.2.3....日志格式转换 6.2. 日志中心方案 1. 什么日志归档 归档,是指将日志整理完毕且有保存价值的文件,经系统整理交日志服务器保存的过程。 2. 为什么要做日志归档 随时调出历史日志查询。...通过日志做数据挖掘,挖掘有价值的数据。 查看应用程序的工作状态 3. 何时做日志归档 日志归档应该是企业规定的一项制度(“归档制度”),系统建设之初就应该考虑到日志归档问题。...归档日志放在哪里 简单的可以采用单节点服务器加备份方案。 随着日志规模扩大,未来必须采用分布式文件系统,甚至涉及到远程异地容灾。 5. 谁去做日志归档 我的答案是日志归档自动化,人工检查或抽检。...怎样做日志归档 将所有服务器的日志都汇总到一处,有几种方法 日志归档常用方法: ftp 定是下载, 这种做法适合小文件且日志量不大,定是下载到指定服务器,缺点是重复传输,实时性差。
1.背景概述 近期应用升级上线过程中,存在删除业务表索引的变更操作,且因删除索引导致次日业务高峰时期,数据库响应缓慢的情况,经定位是缺失索引导致。...与用户沟通,虽然变更中删除索引的需求很少,但也存在此类需求。 本文从数据库层面,旨在尽可能避免类似问题发生,制定删除索引的变更规范。...2.索引删除规范 若确认需要做索引删除,可以使用Oracle提供的两个功能特性协助判断删除索引是否会有隐患。...2.2 将删除索引先修改为不可见 将计划要删除的索引设置为不可见(invisible),然后经历至少一个业务周期(具体业务确认业务周期为多久,注意要考虑到跑批场景)的观察,确认没有影响,则可以考虑彻底删除...一般原则是首先评估删除冗余索引,比如某张表同时有两个索引,索引A是c1列,索引B是c1,c2两列的复合索引,则一般可以选择删除索引A;但需要注意,如果索引B是c2和c1列的复合索引,就通常不可以删除索引
的值为 Enabled 表示数据库已开启归档模式 2、非归档模式的数据库更改为归档模式 1)关闭数据库:shutdown immediate; 2)启动数据库到mount状态:startup mount...; 3)修改数据库为归档模式:alter database archivelog; 4)打开数据库:alter database open; 5)验证:archive log list; 6)选择性修改日志文件命名格式...log_archive_max_processes = 5; alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile; 7)选择性更改日志文件路径...log_archive_dest_1='location=/data/archivelog/orcl'; 此时 Archive destination的值更改为 /data/archivelog/orcl 再添加一个日志位置可使用以下语句...: alter system set log_archive_dest_2='location=/bak/orcl/archive_log'; 8)归档当前重做日志: select name from
领取专属 10元无门槛券
手把手带您无忧上云