oracle手工删除过期的归档日志

合集下载

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启用归档日志

oracle启用归档日志

oracle启⽤归档⽇志⼀、开启归档1、查看归档信息SQL> archive log listDatabase log mode No Archive ModeAutomatic archival DisabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 244Current log sequence 246当前数据库未开启归档2、设置归档⽬录oracle默认使⽤闪回恢复区DB_RECOVERY_FILE_DEST作为归档路径SQL> show parameter DB_RECOVERY_FILE_DESTNAME TYPE VALUE------------------------------------ ----------- ------------------------------db_recovery_file_dest string /u01/app/oracle/flash_recovery_areadb_recovery_file_dest_size big integer 3882M闪回恢复区在安装过程中有限制其⼤⼩,如果闪回恢复区满了,归档⽇志会⽆法写⼊⽽导致数据库hang住,解决办法可以增加闪回区⼤⼩或者修改归档路径3、修改归档路径修改log_archive_dest_1参数可修改归档⽇志路径(pfile/spfile中参数db_recovery_file_dest指定的⽬录将⽆效)实际上从Oracle 10g开始,可以⽣成多份⼀样的⽇志,保存多个位置,以防不测。

多个位置通过设置不同的log_archive_dest_n 参数实现,archive log list输出中的Archive destination路径只显⽰最新修改的路径。

SQL> show parameter log_archive_dest_1NAME TYPE VALUE------------------------------------ ----------- ------------------------------log_archive_dest_1 stringlog_archive_dest_10 stringlog_archive_dest_11 stringlog_archive_dest_12 stringlog_archive_dest_13 stringlog_archive_dest_14 stringlog_archive_dest_15 stringlog_archive_dest_16 stringlog_archive_dest_17 stringlog_archive_dest_18 stringlog_archive_dest_19 string修改归档路径为/u01/app/oracle/archive_logSQL>alter system set log_archive_dest_1='location=/u01/app/oracle/archive_log' scope=spfile;System altered.重启⽣效4、修改归档⽇志格式SQL>alter system set log_archive_format='ARC%S_%R.%T_%D.dbf' scope=spfile;System altered.重启⽣效5、开启归档需要在mount状态下开启数据库归档,重启⾄mountSQL>shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startup mountORACLE instance started.Total System Global Area 1603411968 bytesFixed Size 2213776 bytesVariable Size 989857904 bytesDatabase Buffers 603979776 bytesRedo Buffers 7360512 bytesDatabase mounted.开启数据库归档SQL>alter database archivelog;Database altered.查看归档情况SQL> archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination /u01/app/oracle/archive_logOldest online log sequence 244Next log sequence to archive 246Current log sequence 246ALTER DATABASE FORCE LOGGING;开启强制归档打开数据库SQL>alter database open;Database altered.6、确认数据库为归档模式SQL>select log_mode from v$database;LOG_MODE------------ARCHIVELOGSQL>select archiver from v$instance;ARCHIVE-------STARTED7、强制⽇志切换先查看当前归档⽇志视图和归档⽇志路径:SQL>select name from v$archived_log;no rows selected[oracle@zml-rhel6 archive_log]$ lltotal 0没有归档⽇志,下⾯执⾏强制⽇志切换SQL>alter system switch logfile;System altered.再次查看视图SQL>select name from v$archived_log;NAME--------------------------------------------------------------------------------/u01/app/oracle/archive_log/ARC0000000246_0963417259.0001_6833bc69.dbf 有归档⽇志产⽣,验证成功关闭数据库归档在mount状态下关闭:alter database noarchivelog⼆、归档⽇志清理1、⼿动物理删除归档⽇志该⽅式利⽤linux的命令find查找N天以前的⽇志,直接删除[oracle@localhost archive_log]$ find . -type f -mtime +2.4-print|xargs ls -rlt-rw-r----- 1 oracle oinstall 16092672 6⽉ 4 20:45 ./ARC0000000606_0977259429.0001_fb0ffee2.dbf-rw-r----- 1 oracle oinstall 38390272 6⽉ 4 22:00 ./ARC0000000607_0977259429.0001_fb0ffee2.dbf-rw-r----- 1 oracle oinstall 32950272 6⽉ 4 22:02 ./ARC0000000608_0977259429.0001_fb0ffee2.dbf该例⼦中查询到2.4天前⽇志列表。

oracle 清理审计日志

oracle 清理审计日志

oracle 清理审计日志Oracle数据库是一种强大且广泛使用的关系型数据库管理系统,它提供了审计功能,可以记录数据库中发生的各种操作和事件,包括用户登录、表的增删改查、系统权限变更等。

这些审计日志对于数据库管理员来说非常重要,可以用于跟踪和监控数据库的安全性和稳定性。

然而,随着时间的推移,审计日志的数量可能会不断增加,占用大量的存储空间,甚至影响数据库的性能。

因此,定期清理审计日志是数据库管理员的一项重要任务。

清理审计日志的目的是释放存储空间并提高数据库的性能。

下面将介绍几种清理审计日志的方法。

方法一:使用Oracle自带的工具Oracle提供了一些内置的工具和命令,可以帮助管理员清理审计日志。

其中一个常用的工具是DBMS_AUDIT_MGMT包,可以使用该包中的子程序来管理审计日志。

例如,可以使用PURGE_AUDIT_TRAIL过程来清理指定时间范围内的审计日志。

管理员可以根据需要设定时间范围,将旧的日志删除,从而释放存储空间。

方法二:手动删除审计日志文件除了使用Oracle提供的工具外,管理员还可以手动删除审计日志文件。

首先,管理员需要找到存储审计日志文件的目录。

在Oracle数据库中,审计日志文件通常存储在特定的目录下,可以通过查看数据库的参数文件或者会话参数来确定该目录。

找到目录后,管理员可以使用操作系统的命令或者文件管理工具,手动删除不需要的审计日志文件。

方法三:定期归档审计日志除了删除旧的审计日志文件,管理员还可以选择将审计日志归档到其他存储介质中,以释放数据库的存储空间。

归档可以是物理的,将日志文件复制到其他存储设备中,也可以是逻辑的,将日志文件中的数据导出到其他数据库或文件系统中。

无论是物理归档还是逻辑归档,管理员都需要制定一个合理的归档策略,包括归档的时间间隔、归档的方式等。

除了上述方法,还有一些其他的注意事项和技巧可以帮助管理员更好地清理审计日志。

首先,管理员应该根据实际情况设置合理的审计日志保留时间。

ORACLE数据库归档日志满后造成系统宕机的处理方法

ORACLE数据库归档日志满后造成系统宕机的处理方法

第一次宕机时,初始以为是系统内存溢出,于是重启应用服务器,发现应用服务器在启动时报错,错误为无法连接到数据库。

于是连接数据库服务器,打开EM后发现系统报错如图:提示归档日志写入失败,检查服务器发现磁盘空间满了,于是清理磁盘空间后,重启数据库问题解决。

随后把服务器磁盘空间扩容,直接给了oracle数据所在盘1TB的磁盘空间。

第二次又出现此问题,经过仔细检查,并与同事确认后,发现是由于ORACLE数据库的归档日志被启用了,而我们系统默认是没有启用ORACLE数据库归档日志这个功能的。

使用sql命令查看:Sql>sqlplus / as nolog;---------------------启动sql*PlusSql> connect sys/password@orcl as sysdba;Sql> archive log list;数据库日志模式存档模式自动存档启用存档终点USE_DB_RECOVERY_FILE_DEST最早的联机日志序列4888下一个存档日志序列4890当前日志序列4890Sql> show parameter db_recovery_file_dest;NAME TYPE VALUE------------------------------------ ----------- ------------------------------db_recovery_file_dest string D:\oracle\product\10.2.0/flash_recovery_area db_recovery_file_dest_size big integer 20G发现默认的归档路径为D:\oracle\product\10.2.0/flash_recovery_area。

而且限制使用空间为20G。

由于每天产生的oracle归档日志差不多就占用2个G的磁盘空间,而且oracle自身并不会自动清理也没有相关设置自动清理归档日志的功能,一段时间不进行清理,20G空间很快就满了。

数据库归档管理

数据库归档管理

数据库归档1、查看、更改归档路径在ORACLE10G中,默认的归档路径为$ORACLE_BASE/flash_recovery_area。

对于这个路径,ORACLE有一个限制,就是默认只能有2G的空间给归档日志使用,可以使用下面两个SQL语句去查看它的限制select * from v$recovery_file_dest;show parameter db_recovery_file_dest(这个更友好直观一些)当归档日志数量大于2G时,那么就会由于没有更多的空间去容纳更多的归档日志会报无法继续归档的错误。

如:RA-19809: limit exceeded for recovery filesORA-19804: cannot reclaim 10017792 bytes disk space from 2147483648 limitARC0: Error 19809 Creating archive log file to'/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2007_04_30/o1_mf_1_220_ 0_.arc'这时我们可以修改它的默认限制,比如说将它增加到5G或更多,也可以将归档路径重新置到别的路径,就不会有这个限制了。

更改限制语句如下:alter system set db_recovery_file_dest_size=5368709102;或者直接修改归档的路径即可alter system set log_archive_dest_1='location=/u01/archivelog' scope =both;2、修改归档模式sql> archive log list;sql> shutdown immediate;sql> startup mount;sql> alter database archivelog;alter database noarchivelogsql> alter database open;sql> archive log list;3、确认归档是否生效alter system switch logfile;看对应的归档位置时候有archivelog产生。

系统密码过期引发的故障

系统密码过期引发的故障

笔者单位配备了1套Exadata X5-2的数据库一体机,为应用提供后端数据管理,Exadata 是Oracle 软硬件整合一体化产品,主要用于解决超大型数据库所存在的普遍性性能瓶颈,也就是磁盘存储系统向数据库服务器传输大量的数据。

Exadata 相当于Oracle 通过硬件和软件的组合优化有效的解决了存储层和数据库层之间的传输瓶颈。

Exadata 数据库一体机软件层面的安全配置相比其他Oracle 数据库平台也更高。

此次故障也是由于我们对这方面的特性了解不够深入,因普通的Oracle Linux 用户密码过期引发了信息系统的故障,并在处理过程中大费周折。

故障突发用户无法登录应用系统运维的同事突然接到用端数据库。

在检查监测平台上数据库实时运行数据时,才猛然发现两台DB(数据库)节点的会话数都是0,平时都是在1000左右,根据以往巡检历史数据的经验,即使在晚上也是400左右。

再次查看近24小时会话数曲线图,确认从昨晚凌晨0点45分会话数开始异常,持续到现在。

在确定了引发故障的具体区域范围后,立刻联系公司高级DBA 进行远程协助诊断。

通过SQLPlus 能正常连接到数据库实例,确认Oracle 数据库也是open 状态,只是用select 语句进行数据表检索时无法返回结果,再结合数据库的alert 告警日志分析如图1,有经验的DBA 很快意识到是归档日志空间满了导致数据库被hang 住。

由于归档日志是Oracle 数据库在线日志文件的备份,用于恢复到任意时间点系统密码过期引发的故障■ 四川 赖文书编者按: 近期笔者单位遇到Exadata 数据库未及时更改密码导致定时任务无法正常运行,就此引发归档日志空间占满,最终导致数据库被挂起应用系统无法登录。

户反馈,应用系统无法登录,经确认系统的Web 登录页面能正常打开,就是输入用户名密码后报错。

对应用服务器的操作系统、中间件和部署的应用进行检查,均没有发现任何问题,结合登录报错信息,对后端数据进行检查,能正常ping 通数据库IP 地址,也能正常Telnet 应用连接Oracle 的1521端口。

OracleRMAN操作详解

OracleRMAN操作详解

OracleRMAN操作详解RMAN(Recovery Manager):恢复管理器RMAN概念:RMAN: Recovery Manager,是备份和恢复数据库的管理⼯具建⽴备份和恢复的server process,在oracle server上做备份和恢复具有如下特点:1 )功能类似物理备份,但⽐物理备份强⼤ N 倍,从下⾯的特点可以看到;2 )可以压缩空块;3 )可以在块⽔平上实现增量;4 )可以把备份的输出打包成备份集,也可以按固定⼤⼩分割备份集;5 )备份与恢复的过程可以⾃动管理;6 )可以使⽤脚本(存在 Recovery catalog 中);RMAN的组成概念:RMAM client (RMAN客户端)⽤来操作备份与恢复的客户端应⽤,可以通过⽹络连接到⽬标数据库;target database(⽬标数据库)RMAN备份和恢复的数据库,就是⽬标库;你的备份和恢复的⽬标,就叫做⽬标库auxiliary database(辅助数据库)主库的副本,⼀般⽤于测试,主库与辅助库的DBID不同,DB_NAME可以不同Catalog database(恢复⽬录数据库)存放RMAN备份的元数据信息,默认存放在控制⽂件中,由于控制⽂件中分为循坏重⽤记录与⾮循环重⽤记录,备份信息属于循环重⽤记录,会不断被覆盖重⽤,默认会保留7天,保存时间有限,可以使⽤恢复⽬录数据库实现RMAN备份元数据信息的长久保存。

media manager(介质管理器)如果想要把备份⽂件存放到其他设备(例如带库)就需要介质管理器。

fast recovery area(闪回恢复区)默认情况下,RMAN会将备份存放在闪回恢复区中。

db_recovery_file_destdb_recovery_file_dest_size视图:v$recovery_file_destv$recovery_area_usagechannel(通道):RMAN⼯具到存储设备的数据流叫通道。

oracle判断归档日志失效的原理

oracle判断归档日志失效的原理

oracle判断归档日志失效的原理Oracle数据库中的归档日志是保证数据持久性和恢复能力的关键组成部分。

归档日志的失效可能会导致数据库无法正常运行或无法恢复到最新的状态。

本文将从Oracle判断归档日志失效的原理进行阐述。

在Oracle数据库中,归档日志是一种记录数据库操作的二进制文件。

当数据库发生变更时,比如插入、更新或删除数据,Oracle会将这些操作写入归档日志中。

归档日志的作用是保证数据的持久性,即使数据库发生故障,也能通过归档日志将数据恢复到最新的状态。

归档日志失效可能会导致数据丢失或无法恢复。

因此,Oracle会通过一些机制来判断归档日志是否失效。

其中包括以下几个方面:1. 归档日志的序列号:每个归档日志都有一个唯一的序列号。

Oracle通过比较归档日志的序列号来判断其是否失效。

如果某个归档日志的序列号小于当前正在使用的归档日志的序列号,那么该归档日志就被认为是失效的。

2. 归档日志的完整性:Oracle在写入归档日志时会计算并存储每个归档日志的校验和。

在判断归档日志是否失效时,Oracle会重新计算归档日志的校验和,并与存储的校验和进行比较。

如果两者不一致,那么说明归档日志已经损坏或被篡改,被认为是失效的。

3. 归档日志的可访问性:Oracle会检查归档日志的物理文件是否存在、是否可读。

如果归档日志的物理文件不存在或无法读取,那么该归档日志就被认为是失效的。

4. 归档日志的使用情况:Oracle会记录当前正在使用的归档日志的序列号,以及已经归档的归档日志的序列号。

通过比较这两个序列号,Oracle可以确定哪些归档日志已经被使用。

如果某个归档日志的序列号小于已经归档的归档日志的序列号,那么该归档日志就被认为是失效的。

通过以上几个方面的判断,Oracle可以准确地判断归档日志是否失效。

一旦判断出归档日志失效,Oracle会采取相应的措施来处理失效的归档日志,比如删除、归档或重新生成。

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