ORACLE清理归档日志

合集下载

oracle清理30天归档日志 -回复

oracle清理30天归档日志 -回复

oracle清理30天归档日志-回复Oracle数据库是一种非常强大且广泛使用的关系型数据库管理系统。

随着时间的推移,数据库中的日志文件会逐渐增加,占用大量的存储空间。

为了确保系统正常运行并节约存储资源,定期清理归档日志文件变得至关重要。

本文将逐步介绍如何清理Oracle数据库中30天前的归档日志文件。

步骤一:确认数据库归档模式和归档日志保存期限在执行清理归档日志的操作之前,我们需要确认数据库当前的归档模式以及归档日志的保存期限。

归档模式主要有两种:归档模式(ARCHIVELOG)和非归档模式(NOARCHIVELOG)。

归档模式下,Oracle 会将已经使用的日志文件以及在线日志文件归档并保存为归档日志文件。

非归档模式下,Oracle只保留正在使用的日志文件,不会进行归档保存。

要确认数据库的归档模式,可以执行以下SQL语句:SELECT log_mode FROM vdatabase;该查询结果将显示数据库当前的归档模式。

另外,我们还需要确认数据库的归档日志保存期限。

Oracle会根据数据库的配置自动删除30天以前的归档日志文件。

如果需要更改归档日志保存期限,可以执行以下SQL语句:ALTER SYSTEM SET LOG_ARCHIVE_RETENTION_TARGET=30;该语句将设置归档日志保存期限为30天。

请注意,更改归档日志保存期限可能会有一定的风险,请谨慎操作。

步骤二:确认数据库归档日志文件的位置在执行清理归档日志的操作之前,我们还需要确认数据库归档日志文件的位置。

可以执行以下SQL语句来获取归档日志文件的存储位置:SELECT name FROM VARCHIVE_DEST WHERE status='VALID';该查询结果将显示归档日志文件存储的位置。

步骤三:清理30天前的归档日志一旦确认了数据库的归档模式、归档日志保存期限以及归档日志文件的位置,我们就可以开始清理30天前的归档日志文件了。

oracle 归档日志解析

oracle 归档日志解析

oracle 归档日志解析摘要:一、归档日志概述二、归档日志的作用三、归档日志的解析方法四、归档日志解析的应用场景五、总结与建议正文:随着大数据时代的到来,Oracle 数据库归档日志在各行各业中发挥着越来越重要的作用。

本文将对归档日志进行简要概述,分析其作用,介绍解析方法,并讨论应用场景。

最后给出总结与建议。

一、归档日志概述Oracle 归档日志(Archive Log)是一种用于记录数据库事务日志的技术。

它可以将数据库中的更改操作(如插入、更新和删除)记录下来,以便在出现故障时恢复数据。

归档日志采用增量方式记录,即每次更改操作后,日志文件会逐步变大。

二、归档日志的作用1.数据恢复:归档日志可以在数据库发生故障时,用于恢复数据至故障发生前的状态。

2.数据审计:归档日志可以记录所有对数据库的更改操作,方便审计人员追溯和分析数据变更原因。

3.性能优化:通过分析归档日志,可以找出数据库性能瓶颈,为优化数据库性能提供依据。

三、归档日志解析方法1.手工解析:通过编写SQL 语句或使用第三方工具,查询归档日志文件内容,分析日志中的数据。

2.使用Oracle 提供的事件解析工具:如DBMS_LOGSTD.REPORT 等,可以方便地生成归档日志的报表和统计数据。

3.使用第三方归档日志分析工具:如Oracle 的Partner 产品OraInsight 等,可以提供更丰富的归档日志分析功能。

四、归档日志解析的应用场景1.数据库故障排查:通过分析归档日志,可以找出导致数据库故障的原因,快速恢复业务。

2.性能监控与优化:分析归档日志中的SQL 语句执行情况,找出性能瓶颈,优化数据库性能。

3.数据审计与追溯:归档日志可以记录所有数据变更操作,方便审计人员分析和追溯数据变更原因。

4.数据库安全分析:通过分析归档日志,可以监控数据库访问权限和操作,提高数据库安全。

五、总结与建议归档日志在数据库管理中具有重要意义。

对于数据库管理员而言,应充分利用归档日志进行故障排查、性能优化和数据审计等工作。

oralce归档日志的手动删除

oralce归档日志的手动删除

oralce归档日志的手动删除
当oracle 数据库开启归档模式后,会在归档模式下生成归档文件,如果不及时清理归档日志最终将会导致数据库无法访问,下面说一下如何正确的手动清理归档日志。

1、找到归档日志所在目录。

不确定归档日志的目录?没关系,查询一下就OK了
进入到sqlplus 下:执行archive log list 命令就可以看到存档终点 E:\arc2
2、删除要删除的归档日志
3、清除控制文件中的记录
虽然人为的把物理文件给删了,但是oracle 的控制文件里面是有存在归档文件的记录的,接下来就是清除记录的步骤。

3.1进入ORACLE数据备份工具(RMAN)
CMD--->RAMN
3.2以ORACLE用户身份登录到数据库服务器主机或通过网络连接
connect target / (此处就不讲解ramn 命令了,target / 表示只有一个实例且设置了环境变量,执行这个命令会自动进入数据库)
3.3crosscheck archivelog all;
3.4delete expired archivelog all;
OK 搞定! 有不明白的地方*****************。

oracle清理30天归档日志

oracle清理30天归档日志

标题:Oracle数据库清理30天归档日志的最佳实践一、概述Oracle数据库在运行过程中会生成大量的归档日志,这些归档日志对于数据库的正常运行至关重要。

但是随着时间的推移,归档日志会逐渐堆积,影响数据库的性能和稳定性。

定期清理归档日志成为了数据库管理员必须要做的工作之一。

本文将就Oracle数据库清理30天归档日志的最佳实践进行详细介绍。

二、归档日志的作用1. 归档日志是数据库备份和恢复的重要组成部分,能够保证数据库发生故障时能够及时恢复到指定的时间点。

2. 归档日志还可以用于数据库的数据复制和迁移,保证数据的一致性和完整性。

3. 归档日志也是检测数据库性能问题和故障的重要依据,有助于数据库的运行监控和故障排查。

三、清理30天归档日志的必要性1. 避免归档日志文件过多导致空间不足的问题。

2. 提高数据库的性能和稳定性,减少I/O压力。

3. 降低数据库维护成本和工作量,在归档日志过多的情况下备份、恢复和数据导入导出都会受到影响。

四、清理30天归档日志的步骤1. 确认数据库当前的归档日志文件所在的位置和数量,可以使用以下SQL查询:SELECT * FROM V$LOG;SELECT * FROM V$LOGFILE;2. 确认需要保留的归档日志时间范围,一般推荐保留30天的归档日志。

3. 使用RMAN命令来清理归档日志,可以通过以下命令来实现:RMAN> DELETE ARCHIVELOG UNTIL TIME 'SYSDATE-30';4. 确认归档日志文件是否成功清理,可以通过以下SQL查询来验证: SELECT * FROM V$LOG;SELECT * FROM V$LOGFILE;五、清理策略的注意事项1. 确保在清理归档日志之前已经完成了相关的备份工作,以避免数据丢失的风险。

2. 定期监控数据库的归档日志文件数量和大小,及时调整清理策略以保证数据库的正常运行。

3. 在清理归档日志的过程中,要避免影响数据库的正常运行,可以选择在低峰期进行清理操作。

查询oracle归档日志是否开启,Oracle开启归档日志以及关闭归档日志

查询oracle归档日志是否开启,Oracle开启归档日志以及关闭归档日志

查询oracle归档⽇志是否开启,Oracle开启归档⽇志以及关闭归档⽇志racle数据库可以运⾏在2种模式下:归档模式(archivelog)和⾮归档模式(noarchivelog)归档模式可以提⾼Oracle数据库的可恢复性,⽣产数据库都应该运⾏在此模式下,归档模式应该和相应的备份策略相结合,只有归档模式没有相应的备份策略只会带来⿇烦。

本⽂简单介绍如何启⽤和关闭数据库的归档模式。

1.归档⽇志开启准备⼯作:1.进⼊dos窗⼝—>>> 菜单键+R,进⼊ 运⾏ 界⾯,输⼊cmd2.登录 sqlplus,—>> ⽅法: sqlplus/nolog,切忌:不要输⼊sqlplus/noarchivelog; 加上 分隔符 ;,这样进⼊的sqlplus的命令参数帮助3.登⼊管理员—>> ⽅法: conn/as sysdba;4.开启归档⽇志4.1 shutdown immediate; –关闭数据库4.2 startup mount; – 打开数据库4.3 alter database archivelog;—开启归档⽇志4.4 alter database open;–开启数据库4.5 archive log list; – 查看归档⽇志是否开启开启状态:数据库⽇志模式 存档模式⾃动存档 启⽤存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机⽇志序列 49下⼀个存档⽇志序列 51当前⽇志序列 515.关闭归档⽇志5.1 shutdown immediate;5.2 startup mount;5.3 alter database noarchivelog;5.4 alter database open;5.5 archive log list ;–查看归档⽇志是否关闭数据库⽇志模式 ⾮存档模式⾃动存档 禁⽤存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机⽇志序列 49当前⽇志序列 51归档⽇志开启语句:Microsoft Windows [版本 6.1.7601]版权所有 (c) 2009 Microsoft Corporation。

如何清理oracle安装目录里的一些日志

如何清理oracle安装目录里的一些日志

如何清理oracle安装目录里的一些日志
这个问题的起因是我这两天发现我们的一个开发环境oracle所在的安装目录容量增长的很迅速,我想找到增长的原因。

如下是我处理该问题的步骤:
1、先查看一下上述环境oracle安装目录(/u01)下一天之内改过的且大小在10M以上的文件:
find /u01 -ctime 1 -size +20000 –print
2、从1中的结果可以看到listener.log和http-web-access.log非常大。

3、先处理listener.log,步骤如下:
1)lsnrctl set log_status off
2)rm listener.log
3)lsnrctl set log_status on
4、再处理http-web-access.log,步骤如下:
1)更改dbconsole的配置文件
($ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_HOST__<hostname>_<SID>/config下的文件http-web-site.xml),将其中的<access-log path="../log/http-web-access.log" />更改为<access-log path="../log/http-web-access.log" split="day"/>
2)重启dbconsole
3) rm http-web-access.log。

oracle清理归档日志

oracle清理归档日志
list archivelog all; 查看失效的归档日志列表:
list expired archivelog all; 4.定期清除archivelog: 可以将如下代码写成.bat文件,在控制面版的任务计划下添加新的定时任务: RMAN target sys/*****@orcl crosscheck archivelog all; delete expired archivelog all;
博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 即注册
oracle清 理 归 档 日 志
1.用RMAN连接目标DB: rman target / RMAN target sys/*****@orcl 2.在RMAN命令窗口中,输入如下命令(清理所有的归档日志): crosscheck archivelog all; delete expired archivelog all; 或者清理指定时间之前的日志(archivelog): DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';(指定删除7天前的归档日志); 或者直接如下: RMAN target sys/*****@orcl; DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; ================================================================= RMAN target sys/*****@orcl DELETE NOPROMPT ARCHIVELOG UNTIL TIME "TO_DATE('XXXX-XX-XX','YYYY-MM-DD')"; 3.其它相关命令: 查看归档日志列表:

oracle 归档日志概念解释

oracle 归档日志概念解释

oracle 归档日志概念解释在Oracle数据库中,归档日志(Archived Logs)是一种重要的数据库日志,用于记录数据库发生的所有变更操作,以便在系统故障或数据损坏时进行数据库恢复。

以下是有关归档日志的一些关键概念和解释:1. 日志文件:Oracle数据库通过日志文件(Redo Log)记录所有对数据库的变更操作。

这包括插入、更新和删除操作。

日志文件的作用是保留数据库的变更历史,以便在需要时进行恢复。

2. 在线日志和归档日志:日志文件分为在线日志和归档日志两种类型。

在线日志包含当前正在进行的事务的日志信息,而归档日志包含已经完成的事务的日志信息。

当在线日志满了或发生特定的切换事件时,其中的日志会被归档到归档目录中。

3. 归档目录:归档日志被存储在一个被称为归档目录(Archive Destination)的特定位置。

这可以是本地磁盘、网络位置或远程服务器。

在配置归档目录时,确保有足够的磁盘空间存储归档日志,因为这对数据库的正常运行和故障恢复至关重要。

4. 日志切换:当在线日志文件满了或发生某些事件时,数据库会执行一个日志切换(Log Switch)。

这时,当前的在线日志文件会被标记为不可用,并且一个新的在线日志文件会开始记录新的变更。

同时,旧的在线日志文件会被归档。

5. 数据库恢复:归档日志对数据库的恢复非常关键。

如果数据库发生故障,系统可以利用归档日志中的信息,从最后一个完整备份以来的任何时间点将数据库还原到一致的状态。

这种恢复过程称为“介质恢复”(Media Recovery)。

总的来说,归档日志是Oracle数据库中一项关键的功能,它确保了数据库的可靠性和一致性,同时提供了故障恢复的能力。

ORACLE 11g数据库归档日志清理规程

ORACLE 11g数据库归档日志清理规程

ORACLE 11G 数据库归档日志清理规程
说明:切记!!!ORACLE归档日志对于ORACLE的数据恢复和备份非常重要,不到万不得已不要删除归档日志,除非没有配置自动备份任务,且数据库的归档目录或闪回恢复区将满时,才会删除归档日志。

1、远程连接到数据库服务器,输入CMD命令,进入DOS命令窗口,通过SQLPLUS连接ORACLE数据库,
如下图
2、输入命令: show parameter db_recovery;如下图
当db_recovery_file_dest 中TYPE值为string,VALUE值为空时,表示未打开恢复区,这时只需要在服务器上手工删除归档日志文件即可;
否则当db_recovery_file_dest 中VALUE值非空时,还需要使用RMAN命令删除;当然也可以不考虑此参数,先手工删除归档日志后,再RMAN命令清除。

3、新建一个DOS窗口,输入命令:rman target /,回车后打开RMAN窗口,进入到RMAN命令行
4、输入命令:list archivelog all;如下图,显示归档日志所在磁盘目录和文件名
根据上面提示可知,数据库归档日志文件路径为:X:\TGMESYG\ARCHIVELOG,每天的归档日志文件存放在以当天日期命名的文件夹下,具体见下图:
5、手工在磁盘上删除归档日志文件。

6、然后在上面打开的RMAN运行窗口中,输入命令:crosscheck archivelog all;
如下图
7、最后输入命令:delete expired archivelog all
确认是否要删除失效的对象,确定删除的话,输入YES,回车。

oracle数据库归档日志满问题解决方案

oracle数据库归档日志满问题解决方案

用户登录时提示ORA-00257:archiver error. Connect internal only ,util freed用户登陆的时候提示:ORA-00257: archiver error. Connect internal only, until freed1. 用sys用户登录sqlplus sys/pass@tt as sysdba2. 看看archiv log所在位置SQL> show parameter log_archive_dest;NAME TYPE VALUE------------------------------------ ----------- ------------------------------ log_archive_dest stringlog_archive_dest_1 stringlog_archive_dest_10 string3. 一般VALUE为空时,可以用archive log list;检查一下归档目录和log sequenceSQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 360Next log sequence to archive 360Current log sequence 3624. 检查flash recovery area的使用情况,可以看见archivelog已经很大了,达到96.62 SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES------------ ------------------ ------------------------- --------------- CONTROLFILE .13 0 1ONLINELOG 2.93 0 3ARCHIVELOG 96.62 0 141 BACKUPPIECE 0 0 0IMAGECOPY 0 0 0 FLASHBACKLOG 0 0 05. 计算flash recovery area已经占用的空间SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;SUM(PERCENT_SPACE_USED)*3/100-----------------------------2.99046. 找到recovery目录, show parameter recoverSQL> show parameter recover;NAME TYPE VALUE------------------------------------ ----------- ------------------------------db_recovery_file_dest string /u01/app/oracle/flash_recovery_areadb_recovery_file_dest_size big integer 5Grecovery_parallelism integer 07 上述结果告诉我们,归档位置用的是默认值,放在flash_recovery_area下(db_recovery_file_dest目录=/u01/app/oracle/flash_recovery_area)[*************.0]#echo$ORACLE_BASE/u01/app/oracle[*************.0]#cd$ORACLE_BASE/flash_recovery_area/tt/archivelog转移或清除对应的归档日志, 删除一些不用的日期目录的文件,注意保留最后几个文件(比如360以后的)--------------------------------------------------------------------------------------- 注意:在删除归档日志后,必须用RMAN维护控制文件,否则空间显示仍然不释放。

ORACLE正确删除归档日志的方法

ORACLE正确删除归档日志的方法

ORACLE正确删除归档⽇志的⽅法1. 进⼊rman[oracle@db2 ~]$ /u01/app/oracle/product/10.2.0/db/bin/rman2. connect target /RMAN> connect target /3. crosscheck archivelog all;crosscheck archivelog all:验证的是DB的归档⽇志即log_archive_dest参数指定位置的⽂件,当⼿⼯删除了归档⽇志以后,Rman备份会检测到⽇志缺失,从⽽⽆法进⼀步继续执⾏Rman备份,所以此时需要⼿⼯执⾏crosscheck过程,查看所有的归档⽇志⽂件是否都是正常的然后再来执⾏Rman备份。

4. delete expired archivelog all;这时候我们再去OEM中就看不到这些⽇志⽂件了,如果你的从来没有做过这个动作的话,我们可以⽐较这个动作前的controlfile和动作后的controlfile的⽂件⼤⼩ORACLE正确删除归档并回收空间的⽅法:⼀个ORACLE归档⽇志经常满,表现为/archivelog这个⽂件空间占⽤100%⼤家总是抱怨ORACLE为何没有归档维护⼯具,很多⼈直接删除了事,错了,ORACLE有,⽽且很智能,可以正确的删除归档和 FLASHBACK,不过切记,ORACLE归档⽇志对于ORACLE的数据恢复和备份⾮常重要,不到万不得已不要删除归档⽇志。

删除归档⽇志的过程:以ORACLE⽤户⾝份登录到数据库服务器主机或通过⽹络连接进⼊ORACLE数据备份⼯具:/u01/app/oracle/product/10.2.0/db/bin/rman target/或/u01/app/oracle/product/10.2.0/db/bin/rman target/@RAC15、在命令窗⼝⾥⾯执⾏:DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';说明:SYSDATA-7,表明当前的系统时间7天前,before关键字表⽰在7天前的归档⽇志,如果使⽤了闪回功能,也会删除闪回的数据同样道理,也可以删除从7天前到现在的全部⽇志,不过这个命令要考虑清楚,做完这个删除,最好马上进⾏数据库全备份DELETE ARCHIVELOG FROM TIME 'SYSDATE-7';UNIX/LINUX下也可以通过FIND找到7天前的归档数据,使⽤EXEC⼦操作删除find /arch -xdev -mtime +7 -name "*.dbf" -exec rm -f {} \;这样做仍然会在RMAN⾥留下未管理的归档⽂件,它的作⽤还是相当于直接⽤操作系统命令将归档⽇志⽂件直接删除,⽽ORACLE控制⽂件并不知道,因此仍需要在RMAN⾥执⾏下⾯2条命令:crosscheck archivelog all;delete expired archivelog all;所以还不如上⾯的⽅法好⽤,不过⽤FIND的好处就是,可以在条件上,和EXEC⼦项上做很多操作,实现更复杂的功能。

Oracle归档模式及归档日志的操作

Oracle归档模式及归档日志的操作

Oracle归档模式及归档日志的操作1归档模式及归档日志基本概念:1.1为什么要给Oracle做归档操作:Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。

当ORACLE数据库运行在ARCHIVELOG(归档模式)模式时,所有的事务重做日志都将保存.这意味着对数据库进行的所有事务都留有一个备份,尽管重做日志以循环方式工作,但在一个重做日志被覆盖前均将为其建立一个副本.在重做日志文件复制完成之前,ORACLE数据库将停止一切新的操作,在旧的事务记录完成之前ORACLE不对其进行覆盖.有了所有事务的副本,数据库就可以从所有类型的失败中恢复,包括用户错误或磁盘崩溃.这是一种最安全的数据库工作方式。

在实际开发中,归档模式是符合开发的,归档模式可以提高Oracle数据库的可恢复性,生产数据库都应该运行在此模式下,数据库使用归档方式运行时才可以进行灾难性恢复。

1.2归档模式和非归档模式的区别:非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复.归档模式可以做热备份,并且可以做增量备份,可以做部分恢复.1.3什么是归档日志:归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中.当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库。

2Linux系统开启归档模式:使用ssh登录到Linux系统:2.1切换到oracle用户,然后使用sqlplus /nolog登录到oracle数据上:su -oraclesqlplus /nolog2.2使用oracle系统管理员sysdba登录到数据库:conn /as sysdba2.3查看当前oracle的模式:select log_mode from v$database;如果当前模式为NOARCHIVELOG,就说明没有开启归档模式2.4关闭数据库,启动到mount状态:shutdown immediate;startup mount;2.5修改数据库为归档模式alter database archivelog; (此处的分号不可以省略)(如果是归档模式改为非归档,则执行:alter database noarchivelog;)2.6启动数据库:alter database open;2.7再次验证:执行select log_mode from v$database;可查看到oracle已经修改为归档模式了3Windows开启归档模式:3.1打开sqlplus工具:sqlplus工具路径:F:\Oracle\product\11.2.0\dbhome_1\BIN中的sqlplus.exe双击打开即可。

oracle 删除归档日记

oracle 删除归档日记

oracle 删除归档日记要删除归档日志,可以使用以下步骤:1. 首先,确认数据库实例处于归档模式。

可以使用以下命令:```ARCHIVE LOG LIST;```如果显示当前归档模式为“Enabled”,则可以继续进行下一步。

2. 确认要删除的归档日志的起始和结束时间。

可以使用以下命令:```SELECT SEQUENCE#, FIRST_TIME, NEXT_TIMEFROM V$ARCHIVED_LOGWHERE FIRST_TIME >= TO_DATE('开始时间', 'YYYY-MM-DD HH24:MI:SS')AND NEXT_TIME <= TO_DATE('结束时间', 'YYYY-MM-DD HH24:MI:SS');```替换上述命令中的“开始时间”和“结束时间”为实际的起始和结束时间。

3. 使用 RMAN(Recovery Manager)工具删除归档日志。

可以使用以下命令:```RMAN TARGET /DELETE ARCHIVELOG ALL COMPLETED BEFORE '开始时间';```替换上述命令中的“开始时间”为实际的起始时间。

4. 在删除完成后,可以再次确认归档日志是否已被删除。

使用以下命令:```SELECT SEQUENCE#, FIRST_TIME, NEXT_TIMEFROM V$ARCHIVED_LOGWHERE FIRST_TIME >= TO_DATE('开始时间', 'YYYY-MM-DD HH24:MI:SS')AND NEXT_TIME <= TO_DATE('结束时间', 'YYYY-MM-DD HH24:MI:SS');```确保不再显示要删除的归档日志。

请注意,在执行这些操作之前,请务必备份数据库以防意外情况发生。

Oracle10归档日志删除后的记录清理

Oracle10归档日志删除后的记录清理

Oracle10归档日志删除后的记录清理Oracle10归档日志删除后的记录清理Oracle10G在归档模式下运行时,如果未定期进行备份及归档日志的清除,将会导致归档日志空间不足而引起数据库不能正常打开。

由于归档日志空间由Oracle自动管理,其记录存储在控制文件中,所以采用强制从操作系统删除归档日志的方式并不能释放空间,并且在控制文件中的记录依然存在。

同时,强制删除日志文件而未清理控制文件中记录后,将导致后续的在线备份不能完成。

不管是有意还是无意删除了归档日志,都可使用RMAN进行控制文件中日志记录的清理:$oracle>rmanRman>connect target;Rman>crosscheck archivelog all;Rman>delete expired archivelog all;Rman>exit;当发生归档日志空间已满而数据库不能打开时,可采取上述方式,按下述步骤进行处理:●强制删除(或部分删除)归档日志记录(缺省安装时位于/oracle/flash_recovery_area目录中);●将数据库启动到mount状态(startup mount)●通过RMAN清理掉日志记录,实现空间的释放;另外,如果操作系统空间资源充足,也可以通过sqlplus采用扩充归档日志空间的方式先进行处理,使数据库能正常打开,再进行全库备份(备份策略应包含归档日志备份、删除已备份归档日志),实现释放归档日志空间的目的:$oracle>sqlplus / as sysdbaSql>startup mountSql>show parameter db_recovery_file_dest_sizeSql>alter system set db_recovery_file_dest_size = 20GSql>alter database openSql>exit;$oracle>rmanRman>connect targetRman>backup databaseRman>exit;上述的RMAN备份与备份策略的设置有关,最好使用oracle的EM工具,通过图形化界面进行数据库的全库备份,并将备份设置为作业,定时执行,以最终解决归档日志空间的释放问题。

Oracle 正确删除archivelog文件

Oracle 正确删除archivelog文件

4.定期清除archivelog :
可以将如下代码写成.bat文件,在控制面版的任务计划下添加新的定时任务:
RMAN target sys/*****@orcl
crosscheck archivelog all;
delete expired archivelog all;
Oracle 正cle 在开启了归档模式后,会在指定的archive目录下产生很多的archivelog文件,而且默认是不会定期清除的,时间长久了,该文件夹会占用很大的空间。
问题:如何定期正确删除archivelog文件呢?
很多人直接在archive目录下删除文件,这样其实不能达到在Oracle CLF文件中删除文件记录的效果。
正确方法:
1.用RMAN 连接目标DB:
RMAN target sys/*****@orcl
2.在RMAN命令窗口中,输入如下命令:
crosscheck archivelog all;
delete expired archivelog all;
或者删除指定时间之前的archivelog:
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';(指定删除7天前的归档日志)
3.其它相关命令:
查看归档日志列表:
list archivelog all;
查看失效的归档日志列表:
list expired archivelog all;

oracle数据库删除归档日志

oracle数据库删除归档日志
解决办法: 方法一:增大归档空间 archive log list; show parameter db_recovery_file_dest; alter system set db_recovery_file_dest_size=4G; alter database open; 方法二:删除归档日志 (1)删除归档文件在物理主机磁盘中的文件 (2)物理文件删除后oracle的控制文件中仍然记录着这些archivelog的信息 利用rman工具进行删除操作: rman target / list archivelog all; crosscheck archived all; delete expired archivelog all; 或使用下面语句删除: list archivelog all; delete archivelog all completed before 's刷新页面重试
oracle数 据 库 删 除 归 档 日 志
数据库开启归档模式,默认归档空间为2G,当归档日志过多、归档空间不足时,redo文件不能归档,出现数据库挂起的情况。
导入或还原dump数据时,建议关闭归档模式,否则会生成大量的归档日志。
select * from v$archived_log;

Oracle归档日志空间设置及查看归档空间不足引发的问题及解决方法【VIP专享】

Oracle归档日志空间设置及查看归档空间不足引发的问题及解决方法【VIP专享】

Oracle归档日志空间设置及查看归档空间不足引发的问题及解决方法【VIP专享】Oracle归档日志空间不足引发的问题及解决方法归档日志空间不足现的问题的现象1、软件正在操作,突然点击任何菜单无反应;2、打开登录界面后,输入用户名和密码长时间没反应;3、再次打开登录界面登录时,登录画面异常,同时输入用户名和密码后,出现需要提交license提示界面;以下系统管理员操作4、oracle登录操作系统,输入以下命令:[oracle@OASERVER ~]$sqlplussql>connect oa/oa //回车后出现报错5、打开EM时(IE中输入http://10.31.1.200:1158/em),报ORA-00257、ORA-01033等错误;6、oracle客户端工具(如:PLSQL Developer等)连接数据库时报ORA-00257、ORA-01033等错误;*************************************************************** ****************说明:因oracle归档日志还在开启,需定期检测归档日志占用空间大小,归归档日志达到一定比例时要及时清理,以防止归档日志问题导致的oracle服务停止现象,从而影响使用使用OA系统。

1、检测oracle是否可以正常归档oracle用户登录系统[oracle@OASERVER ~]$sqlplussql>connect / as sysdbasql>select * from v$logGROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME-------- ------- ---------- ---------- ---------- --- ------ ------------- ------------1 1 263 52428800 1 NO CURRENT 5924771 13-DEC-102 1 261 52428800 1 YES INACTIVE 5878129 12-DEC-103 1 262 52428800 1 YES INACTIVE 5899219 13-DEC-10说明:上面列表可看出ARC列可正常归档,如果全部为NO,oracle将无法进行归档,此时oracle实例会自动关闭。

Oracle归档日志空间设置及查看 归档空间不足引发的问题及解决方法【VIP专享】

Oracle归档日志空间设置及查看 归档空间不足引发的问题及解决方法【VIP专享】

Oracle归档日志空间不足引发的问题及解决方法归档日志空间不足现的问题的现象1、软件正在操作,突然点击任何菜单无反应;2、打开登录界面后,输入用户名和密码长时间没反应;3、再次打开登录界面登录时,登录画面异常,同时输入用户名和密码后,出现需要提交license提示界面;以下系统管理员操作4、oracle登录操作系统,输入以下命令:[oracle@OASERVER ~]$sqlplussql>connect oa/oa //回车后出现报错5、打开EM时(IE中输入http://10.31.1.200:1158/em),报ORA-00257、ORA-01033等错误;6、oracle客户端工具(如:PLSQL Developer等)连接数据库时报ORA-00257、ORA-01033等错误;*******************************************************************************说明:因oracle归档日志还在开启,需定期检测归档日志占用空间大小,归归档日志达到一定比例时要及时清理,以防止归档日志问题导致的oracle服务停止现象,从而影响使用使用OA系统。

1、检测oracle是否可以正常归档oracle用户登录系统[oracle@OASERVER ~]$sqlplussql>connect / as sysdbasql>select * from v$logGROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME-------- ------- ---------- ---------- ---------- --- ------ ------------- ------------1 1 263 52428800 1 NO CURRENT 5924771 13-DEC-102 1 261 52428800 1 YES INACTIVE 5878129 12-DEC-103 1 262 52428800 1 YES INACTIVE 5899219 13-DEC-10说明:上面列表可看出ARC列可正常归档,如果全部为NO,oracle将无法进行归档,此时oracle实例会自动关闭。

oracle数据库清理各种日志

oracle数据库清理各种日志

清理原则:在文件系统使用率较高的目录中,使用如下命令,找出大文件或文件夹。

根据文件类型选择清理策略。

查看磁盘及文件目录大小:df –hdu –sh ./*1. 清理adump目录清理参数audit_file_dest指定的目录,清理的文件为“*.aud”SQL> show parameter audit_file_dest查看aud文件[oracle@localhost orcl]$ find /home/app/oracle/admin/orcl/adump -mtime +7 -name "*.aud" |more删除七天前aud文件[oracle@localhost orcl]$ find /home/app/oracle/admin/orcl/adump -mtime +7 -name "*.aud" | xargs rm -f2. 清理trace文件清理参数background_dump_dest指定的目录,清理的文件为.trSQL> show parameter background_dump_dest查看trc、trm文件[oracle@localhost orcl]$ find /home/app/oracle/diag/rdbms/orcl/orcl/trace -mtime +7 -name "*.trc" | more[oracle@localhost orcl]$ find /home/app/oracle/diag/rdbms/orcl/orcl/trace -mtime +7 -name "*.trm" | more删除七天前的trc、trm文件[oracle@localhost orcl]$ find /home/app/oracle/diag/rdbms/orcl/orcl/trace -mtime +7 -name "*.trc" | xargs rm –f[oracle@localhost orcl]$ find /home/app/oracle/diag/rdbms/orcl/orcl/trace -mtime +7 -name "*.trm" | xargs rm -f3. 清理xml日志清理路径为:$ORACLE_BASE/diag/rdbms/$DB_UNIQUE_NAME/ORACLE_SID/alert,清理文件为log_*.xml查看xml日志文件:[oracle@localhost orcl]$ find /home/app/oracle/diag/rdbms/orcl/orcl/alert -mtime +7 -name "log_*.xml" | more删除七天前的xml文件:[oracle@localhost orcl]$ find /home/app/oracle/diag/rdbms/orcl/orcl/alert -mtime +7 -name "log_*.xml" | xargs rm -f4. 清理监听日志清理路径为:$GRID_BASE/diag/tnslsnr/NODE_NAME/listener/alert,清理文件为log_*.xml[oracle@localhost trace]$ find /home/app/oracle/diag/tnslsnr/localhost/listener/alert -mtime +7 -name "log_*.xml" | more[oracle@localhost trace]$ find /home/app/oracle/diag/tnslsnr/localhost/listener/alert -mtime +7 -name "log_*.xml" | xargs rm -f。

清理oracle日志

清理oracle日志

清理oracle日志
清理Oracle日志是数据库管理中的重要任务,可以通过以下几
种方式来进行清理:
1. 使用日志归档(Archive Log)功能,Oracle数据库可以配
置为使用归档日志模式,这样数据库日志会被自动归档到指定的位置,可以定期清理已经归档的日志文件,以释放磁盘空间。

归档日
志的清理可以通过RMAN(Recovery Manager)工具或者手动方式进行。

2. 使用日志切换(Log Switch),在Oracle数据库中,日志
文件会不断切换,当一个日志文件写满后,数据库会自动切换到下
一个日志文件。

可以通过手动触发日志切换来间接实现日志的清理,但这通常是在非常特殊的情况下使用,不建议经常性地手动切换日志。

3. 使用日志清理工具,Oracle数据库提供了一些工具和脚本
来帮助管理和清理日志文件,比如可以使用
DBMS_LOGMNR.CLEAN_LOG等存储过程来清理归档日志。

4. 定期备份和恢复,定期备份数据库是非常重要的,备份过程中可以清理不再需要的日志文件,同时在恢复过程中也可以进行日志的清理。

需要注意的是,在进行日志清理时,一定要确保不会影响数据库的正常运行和数据的完整性,建议在清理日志之前先做好备份工作,并且在清理过程中要小心谨慎,避免删除错误的日志文件。

另外,清理日志时要遵循数据库管理的最佳实践和安全规范。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

清理归档日志:
archive log 日志已满
ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法
1. 用sys用户登录
sqlplus sys/pass@tt as sysdba
2. 看看archiv log所在位置
SQL> show parameter log_archive_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string
log_archive_dest_1 string
log_archive_dest_10 string
3. 一般VALUE为空时,可以用archive log list;检查一下归档目录和log sequence
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 360
Next log sequence to archive 360
Current log sequence 362
4. 检查flash recovery area的使用情况,可以看见archivelog已经很大了,达到
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE .13
0 1
ONLINELOG
0 3
ARCHIVELOG 0
141
BACKUPPIECE 0
0 0
IMAGECOPY 0
0 0
FLASHBACKLOG 0
0 0
5. 计算flash recovery area已经占用的空间
SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
SUM(PERCENT_SPACE_USED)*3/100
-----------------------------
6. 找到recovery目录, show parameter recover
SQL> show parameter recover;
NAME TYPE
VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app /oracle/flash_recovery_area
db_recovery_file_dest_size big integer 5G
recovery_parallelism integer 0
7 上述结果告诉我们,归档位置用的是默认值,放在flash_recovery_area下
(db_recovery_file_dest目录=/u01/app/oracle/flash_recovery_area)
[root@sha3 echo $ORACLE_BASE
/u01/app/oracle
[root@sha3 cd $ORACLE_BASE/flash_recovery_area/tt/archivelog
转移或清除对应的归档日志, 删除一些不用的日期目录的文件,注意保留最后几个文件(比如360以后的)
---------------------------------------------------------------------------------------
注意:
在删除归档日志后,必须用RMAN维护控制文件,否则空间显示仍然不释放。

---------------------------------------------------------------------------------------8. rman target sys/pass
[root@sha3 oracle]# rman target sys/pass
Recovery Manager: Release - Production on Tue Jan 20 01:41:26 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: tt (DBID=71)
9. 检查一些无用的archivelog
RMAN> crosscheck archivelog all;
10. 删除过期的归档
RMAN> delete expired archivelog all;
delete archivelog until time 'sysdate-1' ; 删除截止到前一天的所有archivelog
11. 再次查询,发现使用率正常,已经降到
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE .13
0 1
ONLINELOG
0 3
ARCHIVELOG
0 36
BACKUPPIECE 0
0 0
IMAGECOPY 0
0 0
FLASHBACKLOG 0
0 0
其它有用的Command:
----------------------------------
如果archive log模式下不能正常startup,则先恢复成noarchive log,startup成功后,再shutdown; shutdown immediate;
startup mount;
alter database noarchivelog;
alter database open;
shutdown immediate;
再次startup以archive log模式
shutdown immediate;
startup mount;
show parameter log_archive_dest;
alter database archivelog;
archive log list;
alter database open;
如果还不行,则删除一些archlog log
SQL> select group#,sequence# from v$log;
GROUP# SEQUENCE#
---------- ----------
1 62
3 64
2 63
原来是日志组一的一个日志不能归档
SQL> alter database clear unarchived logfile group 1;
alter database open;
最后,也可以指定位置Arch Log, 请按照如下配置
select name from v$datafile;
alter system set log_archive_dest='/opt/app/oracle/oradata/usagedb/arch' scope=spfile 或者修改大小
SQL> alter system set db_recovery_file_dest_size=3G scope=both;。

相关文档
最新文档