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数据库中一项关键的功能,它确保了数据库的可靠性和一致性,同时提供了故障恢复的能力。

  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_1string
log_archive_dest_10string
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 sequence360
Next log sequence to archive360
Current log sequence362
4.检查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.1301
ONLINELOG 2.9303
ARCHIVELOG96.620141
BACKUPPIECE000
IMAGECOPY000
FLASHBACKLOG000
5.计算flash recovery area已经占用的空间
SQL>select sum(percent_space_used)*3/100from v$flash_recovery_area_usage;
SUM(PERCENT_SPACE_USED)*3/100
-----------------------------
2.9904
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 integer5G
recovery_parallelism integer0
7上述结果告诉我们,归档位置用的是默认值,放在flash_recovery_area下(db_recovery_file_dest 目录=/u01/app/oracle/flash_recovery_area)
[root@sha310.2.0]#echo$ORACLE_BASE
/u01/app/oracle
[root@sha310.2.0]#cd$ORACLE_BASE/flash_recovery_area/tt/archivelog
转移或清除对应的归档日志,删除一些不用的日期目录的文件,注意保留最后几个文件(比如360以后的)
---------------------------------------------------------------------------------------
注意:
在删除归档日志后,必须用RMAN维护控制文件,否则空间显示仍然不释放。

---------------------------------------------------------------------------------------
8.rman target sys/pass
[root@sha3oracle]#rman target sys/pass
Recovery Manager:Release10.2.0.4.0-Production on Tue Jan2001:41:262009
Copyright(c)1982,2007,Oracle.All rights reserved.
connected to target database:tt(DBID=4147983671)
9.检查一些无用的archivelog
RMAN>crosscheck archivelog all;
10.删除过期的归档
RMAN>delete expired archivelog all;
delete archivelog until time'sysdate-1';删除截止到前一天的所有archivelog
11.再次查询,发现使用率正常,已经降到23.03
SQL>select*from V$FLASH_RECOVERY_AREA_USAGE;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE
NUMBER_OF_FILES
----------------------------------------------------------------------
CONTROLFILE.1301
ONLINELOG 2.9303
ARCHIVELOG23.03036
BACKUPPIECE000
IMAGECOPY000
FLASHBACKLOG000
其它有用的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#
--------------------
162
364
263
原来是日志组一的一个日志不能归档
SQL>alter database clear unarchived logfile group1;
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;。

相关文档
最新文档