如何正确删除ORACLE归档日志文件
oracle清理30天归档日志 -回复
![oracle清理30天归档日志 -回复](https://img.taocdn.com/s3/m/42edec33f56527d3240c844769eae009581ba219.png)
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天前的归档日志文件了。
SQL日志文件太大清理方法
![SQL日志文件太大清理方法](https://img.taocdn.com/s3/m/4520e20df6ec4afe04a1b0717fd5360cbb1a8d77.png)
SQL日志文件太大清理方法当SQL日志文件太大时,清理方法包括:备份、压缩、归档和删除等步骤。
下面是一些具体的方法和步骤:1.备份日志文件:首先,需要确保已经备份了当前的SQL日志文件。
这是因为,在清理之前,需要先保存原始的日志文件,以防止出现意外情况。
可以使用数据库管理工具或命令行工具进行备份。
2.压缩日志文件:为了减小日志文件的大小,可以使用压缩工具将其进行压缩。
压缩后的日志文件可以占用更少的磁盘空间,同时也更容易存储和传输。
在压缩之前,要确保不再需要对日志进行任何操作,以免丢失任何重要信息。
3.归档日志文件:归档是将日志文件从当前位置移到另一个位置的过程。
通过归档,可以将旧的日志文件移动到一个备份或存档目录中,以便以后查看或还原。
这样,可以释放当前的日志文件空间,并保留原始的日志记录。
具体的归档方法可以根据数据库管理系统和应用程序的要求进行选择。
4.删除日志文件:一旦已经完成了备份、压缩和归档操作,就可以考虑删除较旧的日志文件。
删除日志文件可以释放磁盘空间,提高系统性能,并且可以避免日志文件过大对系统运行造成负面影响。
但是,在删除日志文件之前,要确保已经备份和归档了这些文件,以防止丢失重要的数据。
需要注意的是,清理SQL日志文件需要谨慎操作,以免出现数据丢失或其他不可预料的问题。
因此,在进行清理操作之前,建议先备份和归档日志文件,以便以后查看或还原。
此外,要保持日志文件的合理大小,可以定期进行备份和归档操作,避免日志文件不断增长而导致系统性能下降。
在执行清理操作时,最好在非繁忙的时间段进行,以减少对系统运行的干扰。
oralce归档日志的手动删除
![oralce归档日志的手动删除](https://img.taocdn.com/s3/m/b616080a876fb84ae45c3b3567ec102de2bddfd0.png)
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数据库归档日志满后造成系统宕机的处理方法](https://img.taocdn.com/s3/m/b1f9016e1ed9ad51f01df2dd.png)
第一次宕机时,初始以为是系统内存溢出,于是重启应用服务器,发现应用服务器在启动时报错,错误为无法连接到数据库。
于是连接数据库服务器,打开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空间很快就满了。
Oracle归档日志文件
![Oracle归档日志文件](https://img.taocdn.com/s3/m/02accd38657d27284b73f242336c1eb91a373369.png)
Oracle归档⽇志⽂件今天数据群有⼈反应⽹站不能正常打开,经检查Oracle数据库远程连不上,提⽰信息:ORA-00257: archiver error. Connect internal only, until freed。
可能是archivelog满了。
以前学习SQL只关注CRUD,对⽇志了解甚少,此次宕机虽然对⽣成没有造成恶劣影响,但也是因为业务不熟悉所致,特花⼀天时间学习并记录Oracle⽇志归档功能。
.以下内容针对没有使⽤Oracle ASM磁盘组情况,使⽤了Oracle ASM磁盘组的情况以后分析。
Oracle⽇志操作模式分为两种:ARCHIVELOG、NOARCHIVELOG连接Oracle终端windows系统:sqlplusLinux系统:先登录ssh,切换到oracle⽤户,再启动sqlplus登录oracle查看当前⽇志操作模式通⽤⽅法:SELECT log_mode from v$database;sys⽤户:开启⽇志归档启⽤归档⽇志前要先停⽌数据库shutdown immediate;数据库以mount⽅式启动startup mount;改变⽇志模式启⽤数据库归档alter database archivelog;关闭归档alter database noarchivelog;打开数据库alter database open;查看归档⽇志信息archive log list;查看默认闪回归档存储路径show parameter db_recovery_file_dest;Oracle11g版本,ORACLE默认的⽇志归档路径为闪回恢复区($ORACLE_BASE/fast_recovery_area)。
对于这个路径,Oracle有⼀个限制,就是默认只有4G的空间,⽽且不只是归档⽇志的默认路径,也是备份⽂件和闪回⽇志的默认地址,这样的话归档⽇志锁使⽤的空间就达不到4G。
如何清理oracle安装目录里的一些日志
![如何清理oracle安装目录里的一些日志](https://img.taocdn.com/s3/m/dcaeb1a2d1f34693daef3e4d.png)
如何清理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 删除数据的几种方法](https://img.taocdn.com/s3/m/bb648157a8956bec0975e3b6.png)
删除表(记录和结构)的语名delete ————truncate ———— drop DELETE (删除数据表里记录的语句)DELETE FROM表名WHERE 条件;注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused.如果确实要删除一个大表里的全部记录, 可以用TRUNCATE 命令, 它可以释放占用的数据块表空间TRUNCATE TABLE 表名;此操作不可回退.相同点truncate和不带where子句的delete, 以及drop都会删除表内的数据注意:1.这里说的delete是指不带where子句的delete语句2.在存储过程中默认是不允许执行truncate table tablename操作的,所以要使用execute immediate 'truncate table tablename';例如:[sql]view plaincopyprint?1.CREATE OR REPLACE PROCEDURE proc_delete_all_data2.IS3.BEGIN4.execute immediate 'truncate table T_FLOW_ACCOUNT';5.execute immediate 'truncate table T_FLOW_MERCHANT';6.END proc_delete_all_data;不同点:1. truncate和delete只删除数据不删除表的结构(定义)drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动显然drop语句将表所占用的空间全部释放truncate 语句缺省情况下见空间释放到minextents个extent,除非使用reuse storage; truncate会将高水线复位(回到最开始).4.速度,一般来说: drop>; truncate >; delete5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.想删除表,当然用drop想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据oracle中删除表中的一列语句alter table 表名drop colum 列名。
如何正确地删除Archivelog
![如何正确地删除Archivelog](https://img.taocdn.com/s3/m/83e691f333d4b14e8524688a.png)
如何正确地删除Archivelog:Archivelog并不能直接得从OS层直接物理删除,因为archivelog的相关信息是记录在controlfile中的,当物理删除后不会改变controlfile的设置。
并且在查询相关的动态视图(例如v$archived_log)时,该部分日志仍然标注为存在。
也就是说Oracle并不认为这些日志被删除了,所以在删除archivelog的时候,需要我们在其他地方做一些设置。
使用oracle用户登录服务器,进入RMAN维护:[root@user~]# su – oraclerman target sys/pass (oracle)一、使用RMAN清楚物理删除后的记录(现在我用这个方法)可以使用RMAN来删除archivelog,具体可以按以下步骤操作:1、物理删除archivelog文件(/home/arch下的dbf文件)2、进入RMAN3、crosscheck archivelog all;4、delete expired archivelog all;这样就在一些Oracle的记录中查不到相应的archivelog记录了。
二、直接使用RMAN删除archivelog其实在RMAN中是可以使用命令直接将ARCHIVELOG删除的,命令如下:RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';表示删除7天以前的所有archivelog,但是这个命令的缺点是无法对archivelog进行细致的划分。
三、使用RMAN备份achivelog后删除这是一种最为稳妥的方法了,使用RMAN备份archivelog,备份后全部删除backup format '/u01/arch_%T_%s_%U' archivelog all delete input;或者backup database plus archivelog;注:我在库上设置了Streams后,使用RMAN删除archivelog会导致报错RMAN-08137: WARNING:archive log not deleted as it is still needed. 不知道该如何解决,据说是10.2的一个bug,如果真是bug的话,那只能在OS层设置删除,或用RMAN进行强制删除了。
oracle归档日志关闭方法
![oracle归档日志关闭方法](https://img.taocdn.com/s3/m/2062942b58fb770bf78a553e.png)
sql> alter system set log_archive_dest_1='location=/oracle/ora9/oradata/arch1' scope=spfile;
sql> alter system set log_archive_dest_2='location=/oracle/ora9/oradata/arch2' scope=spfile;
--打开控制文件,不打开数据文件
5 sql> alter database archivelog;
--将数据库切换为归档模式
6 sql> alter database open;
--将数据文件打开
7 sql> archive log list;
--查看此时是否处于归档模式
2、启动当前机器的实例到mount状态
$SQLPLUS /NOLOG
SQL > STARTUP MOUNT
SQL > ALTER DATABASE NOARCHIVELOG;
<<ORACLE 归档日志打开关闭方法>>
一、设置为归档方式
1 sql> archive log list;
--查看是不是归档方式
2 sql> alter system set log_archive_start=true scope=spfile;
--启用主动归档
sql> alter system set log_archive_dest='location=/oracle/ora9/oradata/arch' scope=spfile;
ORACLE 11g数据库归档日志清理规程
![ORACLE 11g数据库归档日志清理规程](https://img.taocdn.com/s3/m/20caea09fc4ffe473368abb2.png)
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数据库归档日志满问题解决方案](https://img.taocdn.com/s3/m/5d54fd681ed9ad51f01df274.png)
用户登录时提示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正确删除归档日志的方法](https://img.taocdn.com/s3/m/533e416b26d3240c844769eae009581b6bd9bd0b.png)
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⼦项上做很多操作,实现更复杂的功能。
DataGuard之自动删除已应用的归档日志
![DataGuard之自动删除已应用的归档日志](https://img.taocdn.com/s3/m/cfa0eb2fed630b1c59eeb54b.png)
建议先在备库上删除已被应用的归档日志,然后在到 primary 库上删除这个日志,写Shell脚本之前,几个地方需要注意下:1 如何判断备机上哪些日志已经被应用到备库上?可以通过查询 v$archived_log的字段 applied 字段来判断,同时加上REGISTRAR 和 name的限制条件, REGISTRAR='RFS' 表示是 Remote File Server process 进程,别外加上name isnot null 是因为,通过rman crosscheck 并删除 expired的 archivelog 后 name 字段会被置空,--sql 如下SELECT name, SEQUENCE#, FIRST_TIME, REGISTRAR, APPLIED, NEXT_TIME, statusFROM V$ARCHIVED_LOGwhere applied = 'YES'and REGISTRAR = 'RFS'and name is not nullORDER BY SEQUENCE#;2 在备机删除了已归档的archivelog后,如何在远端 primary 库同时删除这个日志? 这个问题在网上查了些资料,可以通过配置公钥和私钥,配置之后,scp 文件,ssh 到远程主机执行命令都可以不用输入密码,具体原理可以到网上查查,这两点克服后,就可以写脚本了。
-------- 脚本 clear_arch_orasid.sh------- 功能:删除备机被 applied 的归档日志,同时也到主库上删除这个归档日志。
#!/bin/bash#Author Francs.tan#Date 2010-12-20#################################################Set Result Flag#0-Successful#1-No Archived log that have been applied by standby database#2-ERROR:Excute file clear_primary.sh#3-ERROR: File clear_primary.sh delete error#initialize variableRESULT_FLAG=0file_num='0'export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1export PATH=${ORACLE_HOME}/bin:${PATH}export ORACLE_SID=orasidexport script_dir=/home/oracle/script/clear_archexport log_dir=/home/oracle/script/clear_arch/logDATE=`date +%Y%m%d`## Select the earliest archived log file that have been applied by standby databasesqlplus -s "/as sysdba"<<EOFset echo offset head offset linesize 200set feedback off;col name format a50;col REGISTRAR format a10;col APPLIED format a10;spool ${script_dir}/archivelog_list.txtselect 'file_num=' || name from (SELECT nvl(name, '0') as name FROM V\$ARCHIVED_LOG where applied = 'YES' and REGISTRAR = 'RFS' and name is not null ORDER BY SEQUENCE#) where rownum = 1;spool off;exitEOF##Delete earliest archived log file that applied by standby database control_file=${script_dir}/archivelog_list.txt. ${control_file}if [ ${file_num} == '0' ]thenecho "WARNING: No Archived log that have been applied by standby database !" | tee -a ${log_file}RESULT_FLAG=1echo "Result Flag:${RESULT_FLAG}" | tee -a ${log_file}exit ${RESULT_FLAG}filog_file=${log_dir}/clear_log_${DATE}.logecho "************ begin rm archivelog file = ${file_num} ************* " | tee -a ${log_file}rm -f ${file_num}##Crosscheck archivelogecho "************* begin Crosscheck archivelog ************* " | tee -a ${log_file}. ${script_dir}/check_arc.sh >> ${log_file}## Delete primary archived logecho "************* Delete primary archived log ************* " | tee -a ${log_file}echo "rm -f ${file_num}" > ${script_dir}/clear_primary.shscp ${script_dir}/clear_primary.sh **************.xxx.xx:${script_dir} ssh **************.xxx.xx chmod u+x ${script_dir}/clear_primary.sh ssh **************.xxx.xx ${script_dir}/clear_primary.shif [ $? -ne 0 ] ####如果前一条命令执行成功,则返回非0,否则为0thenecho "***********************************************************"| tee -a ${log_file}echo "ERROR:Excute file clear_primary.sh ,please check it! " | tee -a ${log_file}echo "***********************************************************" | tee -a ${log_file}RESULT_FLAG=2echo "Result Flag:${RESULT_FLAG}" | tee -a ${log_file}exit ${RESULT_FLAG}fi##rm temp filesecho "************* Remove temp files ************* " | tee -a ${log_file}rm -f ${control_file}rm -f ${script_dir}/clear_primary.shssh **************.xxx.xx rm -f ${script_dir}/clear_primary.shif [ $? -ne 0 ] ####如果前一条命令执行成功,则返回非0,否则为0thenecho "***********************************************************" | tee -a ${log_file}echo "ERROR: File clear_primary.sh delete error ,please check it! " | tee -a ${log_file}echo "***********************************************************" | tee -a ${log_file}RESULT_FLAG=3echo "Result Flag:${RESULT_FLAG}" | tee -a ${log_file}exit ${RESULT_FLAG}fiecho "****** Remove archivelog of Primary and Standby database successfully ! *****" | tee -a ${log_file}exit#end---- check_arch.sh---- 功能:在备库上较验归档日志,并删除过期的归档日志。
Oracle10归档日志删除后的记录清理
![Oracle10归档日志删除后的记录清理](https://img.taocdn.com/s3/m/d5eda51edc36a32d7375a417866fb84ae45cc3c0.png)
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数据库删除归档日志
![oracle数据库删除归档日志](https://img.taocdn.com/s3/m/a6cc91b6fc0a79563c1ec5da50e2524de518d04d.png)
oracle数 据 库 删 除 归 档 日 志
数据库开启归档模式,默认归档空间为2G,当归档日志过多、归档空间不足时,redo文件不能归档,出现数据库挂起的情况。
导入或还原dump数据时,建议关闭归档模式,否则会生成大量的归档日志。
select * from v$archived_log;
oracle数据库清理各种日志
![oracle数据库清理各种日志](https://img.taocdn.com/s3/m/de307e46cfc789eb172dc898.png)
清理原则:在文件系统使用率较高的目录中,使用如下命令,找出大文件或文件夹。
根据文件类型选择清理策略。
查看磁盘及文件目录大小: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删除数据文件](https://img.taocdn.com/s3/m/f19939fd0242a8956bece4bd.png)
Oracle删除数据文件在我们详细介绍之前,我们必须说清楚一点:Oracle不提供如删除表、视图一样删除数据文件的方法,数据文件是表空间的一部分,所以不能“移走”表空间。
一、使用offline数据文件的方法非归档模式使用:alter database datafile '...' offline drop;归档模式使用:alter database datafile '...' offline;说明:1) 以上命令只是将该数据文件OFFLINE,而不是在数据库中删除数据文件。
该数据文件的信息在控制文件种仍存在。
查询v$datafile,仍显示该文件。
2) 归档模式下offline和offline drop效果是一样的3) offline后,存在此datafile上的对象将不能访问4) noarchivelog模式下,只要online redo日志没有被重写,可以对这个文件recover 后进行online操作实际使用案例:直接删除数据文件后无法进入系统的解决方案正常情况下,删除表空间的正确方法为:DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;如果没有通过以上命令删除而直接删除了数据文件,将导致数据库无法打开。
如果直接删除了数据文件普通用户登录时,则报错:ORA-01033: ORACLE initialization or shutdown in progresssys用户可以正常登录但进行操作时(SELECT count(1) FROM user_tables),则会报错:ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询如果执行命令alter database open以打开数据库时,又报如下错:ORA-01157: 无法标识/锁定数据文件12 - 请参阅DBWR 跟踪文件ORA-01110: 数据文件12: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TSTEST001.DBF'说明数据库没找到这个数据文件因为数据文件在没有被offline的情况下物理删除了,导致oracle的数据不一致,因此启动失败.通过以下方法即可解决解决方法:sqlplus sys/orcl@orcl as sysdba;SQL> alter database datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TSTEST001.DBF' offline drop;SQL> alter database open;SQL> drop tablespace CTBASEDATA;二、Oracle 10G R2开始,可以采用:Alter tablespace tablespace_name drop datafile file_name;来删除一个空数据文件,并且相应的数据字典信息也会清除:sys@ORCL>select file_id,file_name,tablespace_name from dba_data_files2 where tablespace_name='USERS';FILE_ID FILE_NAME TABLESPACE_NAME------- -------------------------------------------- ------------------ 4 /u01/app/oracle/oradata/orcl/users01.dbf USERSsys@ORCL>alter tablespace users add datafile2 '/u01/app/oracle/oradata/orcl/users02.dbf' size 5M autoextend off; Tablespace altered.sys@ORCL>select file_id,file_name,tablespace_name from dba_data_files 2 where tablespace_name='USERS';FILE_ID FILE_NAME TABLESPACE_NAME------- -------------------------------------------- ------------------- 4 /u01/app/oracle/oradata/orcl/users01.dbf USERS9 /u01/app/oracle/oradata/orcl/users02.dbf USERSsys@ORCL>drop table test;Table dropped.sys@ORCL>create table test tablespace users2 as3 select * from dba_objects;Table created.sys@ORCL>select SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents2 where file_id=9;SEGMENT_NAME FILE_ID BLOCKS------------------------------ ---------- ---------- TEST 9 8TEST 9 8TEST 9 8TEST 9 8TEST 9 8TEST 9 8TEST 9 8TEST 9 8TEST 9 8TEST 9 8TEST 9 8TEST 9 8TEST 9 8TEST 9 8TEST 9 8TEST 9 128TEST 9 12817 rows selected.sys@ORCL>alter table test move tablespace PERFSTAT; --把表移动到其它表空间Table altered.sys@ORCL>select SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents2 where file_id=9;no rows selectedsys@ORCL>alter tablespace users drop datafile2 '/u01/app/oracle/oradata/orcl/users02.dbf';Tablespace altered.sys@ORCL>select file_id,file_name,tablespace_name from dba_data_files2 where tablespace_name='USERS';FILE_ID FILE_NAME TABLESPACE_NAME------- -------------------------------------------- ---------------------4 /u01/app/oracle/oradata/orcl/users01.dbf USERS三、oracle 10g可以删除临时表空间的文件alter database tempfile '/home/oracle/temp01.dbf' drop including datafiles;ALTER DATABASE 与ALTER TABLESPACE OFFLINE的区别一.DataFile脱机或联机的两种方法:① ALTER DATABASE 语句修改单独的DataFile② ALTER TABLESPACE 语句修改所有的DataFile1、在ARCHIVRLOG模式下的更改DataFile状态ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' ONLINE;ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' OFFLINE;或者用文件号来表示:ALTER DATABASE DATAFILE 5 ONLINE;ALTER DATABASE DATAFILE 5 OFFLINE;注:只有在ARCHIVELOG模式下才可使用ALTER DATABASE来更改DataFile2、在NOARCHIVELOG模式下使DataFile脱机由于在NOARCHIVELOG模式下,数据文件脱机后会造成数据的遗失,所以只能使用ALTER DATABASE语句下带有DATAFILE和OFFLINE DROP子句的选项将该DataFile直接取消,例如该DataFile只包含临时段数据,并没有备份时ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/users3.dbf' OFFLINE DROP;3、修改TableSpace中所有DataFile或TempFile的可用性ALTER TABLESPACE ... DATAFILE {ONLINE|OFFLINE}ALTER TABLESPACE ... TEMPFILE {ONLINE|OFFLINE}注:修改某TableSpace中的所有数据文件,但是TableSpace本身的状态不改变。
清理oracle日志
![清理oracle日志](https://img.taocdn.com/s3/m/291cd93af342336c1eb91a37f111f18583d00c2c.png)
清理oracle日志
清理Oracle日志是数据库管理中的重要任务,可以通过以下几
种方式来进行清理:
1. 使用日志归档(Archive Log)功能,Oracle数据库可以配
置为使用归档日志模式,这样数据库日志会被自动归档到指定的位置,可以定期清理已经归档的日志文件,以释放磁盘空间。
归档日
志的清理可以通过RMAN(Recovery Manager)工具或者手动方式进行。
2. 使用日志切换(Log Switch),在Oracle数据库中,日志
文件会不断切换,当一个日志文件写满后,数据库会自动切换到下
一个日志文件。
可以通过手动触发日志切换来间接实现日志的清理,但这通常是在非常特殊的情况下使用,不建议经常性地手动切换日志。
3. 使用日志清理工具,Oracle数据库提供了一些工具和脚本
来帮助管理和清理日志文件,比如可以使用
DBMS_LOGMNR.CLEAN_LOG等存储过程来清理归档日志。
4. 定期备份和恢复,定期备份数据库是非常重要的,备份过程中可以清理不再需要的日志文件,同时在恢复过程中也可以进行日志的清理。
需要注意的是,在进行日志清理时,一定要确保不会影响数据库的正常运行和数据的完整性,建议在清理日志之前先做好备份工作,并且在清理过程中要小心谨慎,避免删除错误的日志文件。
另外,清理日志时要遵循数据库管理的最佳实践和安全规范。
oracle数据库归档日志使用情况
![oracle数据库归档日志使用情况](https://img.taocdn.com/s3/m/132e4af9f021dd36a32d7375a417866fb84ac000.png)
oracle数据库归档日志使用情况Oracle数据库归档日志使用情况概述:数据库归档日志是Oracle数据库中一个重要的组成部分,它用于记录数据库的所有变更操作,以便数据库在出现故障或需要恢复时能够通过日志进行数据的恢复。
本文将详细介绍Oracle数据库归档日志的使用情况,包括归档日志的作用、生成方式、存放位置以及管理方法等。
一、归档日志的作用数据库归档日志的主要作用是提供了数据的完整性和可恢复性。
当数据库发生故障,如硬件故障、数据库崩溃或意外删除数据等情况,通过归档日志可以使数据库回滚到故障前的状态或恢复数据至故障发生时的状态。
此外,归档日志还可以用于数据库的灾难恢复、数据库的克隆和备份等操作。
当数据库需要从远程站点进行恢复或克隆时,可以通过归档日志来还原数据库至远程站点的状态,实现数据的同步。
同时,归档日志还可以用于数据库的备份,确保备份是最新的,并且能够完全恢复数据库。
二、归档日志的生成方式Oracle数据库归档日志有两种生成模式,一种是归档模式,另一种是非归档模式。
1. 归档模式数据库处于归档模式时,它会自动将日志文件复制到指定的目录中,以便进行数据的归档和恢复。
在归档模式下,数据库的归档日志会自动生成,并且只有归档日志被才会被复制到指定的归档目录中。
归档模式是默认的数据库模式,它可以通过以下命令进行启用:ALTER DATABASE ARCHIVELOG;2. 非归档模式与归档模式相反,非归档模式下数据库不会自动进行归档操作,也就是说不会生成归档日志。
这种模式适用于对数据的可恢复性要求不高的情况,或者是为了降低数据库的I/O负载,减少磁盘空间的占用。
非归档模式可以通过以下命令进行启用:ALTER DATABASE NOARCHIVELOG;需要注意的是,一旦数据库启用了归档模式,就不能再切换到非归档模式。
因此,在启用归档模式前需要谨慎考虑数据库的需求和成本效益。
三、归档日志的存放位置归档日志的存放位置由参数log_archive_dest_n(n为1-10的整数)指定。
如何正确地删除Archivelog
![如何正确地删除Archivelog](https://img.taocdn.com/s3/m/83e691f333d4b14e8524688a.png)
如何正确地删除Archivelog:Archivelog并不能直接得从OS层直接物理删除,因为archivelog的相关信息是记录在controlfile中的,当物理删除后不会改变controlfile的设置。
并且在查询相关的动态视图(例如v$archived_log)时,该部分日志仍然标注为存在。
也就是说Oracle并不认为这些日志被删除了,所以在删除archivelog的时候,需要我们在其他地方做一些设置。
使用oracle用户登录服务器,进入RMAN维护:[root@user~]# su – oraclerman target sys/pass (oracle)一、使用RMAN清楚物理删除后的记录(现在我用这个方法)可以使用RMAN来删除archivelog,具体可以按以下步骤操作:1、物理删除archivelog文件(/home/arch下的dbf文件)2、进入RMAN3、crosscheck archivelog all;4、delete expired archivelog all;这样就在一些Oracle的记录中查不到相应的archivelog记录了。
二、直接使用RMAN删除archivelog其实在RMAN中是可以使用命令直接将ARCHIVELOG删除的,命令如下:RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';表示删除7天以前的所有archivelog,但是这个命令的缺点是无法对archivelog进行细致的划分。
三、使用RMAN备份achivelog后删除这是一种最为稳妥的方法了,使用RMAN备份archivelog,备份后全部删除backup format '/u01/arch_%T_%s_%U' archivelog all delete input;或者backup database plus archivelog;注:我在库上设置了Streams后,使用RMAN删除archivelog会导致报错RMAN-08137: WARNING:archive log not deleted as it is still needed. 不知道该如何解决,据说是10.2的一个bug,如果真是bug的话,那只能在OS层设置删除,或用RMAN进行强制删除了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
已交叉检验的 2 对象
6 试着同步一下,看行不行,结果不行,crosscheck还是失败:
RMAN> resync catalog;
正在启动全部恢复目录的 resync
完成全部 resync
RMAN> crosscheck archivelog all;
释放check检查归档日志,2个归档日志都是失败的:
RMAN> crosscheck archivelog all;
释放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=14 devtype=DISK
DELETE ARCHIVELOG FROM TIME 'SYSDATE-7'; 删除从7天前到现在的全部日志,慎用
UNIX/LINUX下也可以通过FIND找到7天前的归档数据,使用EXEC子操作删除
find /oraarchive -xdev -mtime +7 -name "*.dbf" -exec rm -f {} ;
3.简要介绍一下report obsolete命令
使用report obsolete命令报告过期备份
RMAN> report obsolete;
RMAN retention policy will be applied to the commandRMAN retention policy is set to redundancy 1Report of obsolete backups and copiesType Key Completion Time Filename/Handle-------------------- ------ ------------------ --------------------Backup Set 125 01-NOV-04Backup Piece 125 01-NOV-04 /data1/oracle/orabak/full_1_541045804Backup Set 131 04-NOV-04Backup Piece 131 04-NOV-04 /data1/oracle/orabak/full_AVATAR2_20041104_131....Backup Set 173 06-DEC-04Backup Piece 173 06-DEC-04 /data1/oracle/orabak/full_AVATAR2_20041206_173Backup Set 179 11-DEC-04Backup Piece 179 11-DEC-04 /data1/oracle/orabak/arch544588206.arc.....Backup Piece 189 17-DEC-04 /data1/oracle/orabak/arch545106606.arcBackup Set 190 17-DEC-04Backup Piece 190 17-DEC-04 /data1/oracle/orabak/arch545106665.arcBackup Set 191 20-DEC-04Backup Piece 191 20-DEC-04 /data1/oracle/orabak/arch_AVATAR2_20041220_194Archive Log 2973 20-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2985.dbfArchive Log 2971 20-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2984.dbf.....Archive Log 2705 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2717.dbfArchive Log 2704 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2716.dbfArchive Log 2703 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2715.dbfArchive Log 2702 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2714.dbf
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-1/24';
说明
SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。
同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚,做完这个删除,最好马上进行全备份数据库
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=14 devtype=DISK
对归档日志的验证失败
存档日志文件名 =D:ORACLEORADATATESTARCHIVE1_47.DBF 记录 ID=1 时间戳 =572866
4.使用delete obsolete命令删除过期备份:
RMAN> delete obsolete;RMAN retention policy will be applied to the commandRMAN retention policy is set to redundancy 1using channel ORA_DISK_1Deleting the following obsolete backups and copies:Type Key Completion Time Filename/Handle-------------------- ------ ------------------ --------------------Backup Set 125 01-NOV-04Backup Piece 125 01-NOV-04 /data1/oracle/orabak/full_1_541045804....Archive Log 2704 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2716.dbfArchive Log 2703 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2715.dbfArchive Log 2702 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2714.dbfDo you really want to delete the above objects (enter YES or NO)? yesdeleted backup piecebackup piece handle=/data1/oracle/orabak/full_AVATAR2_20041206_173 recid=173 stamp=544156241.....deleted archive logarchive log filename=/opt/oracle/oradata/avatar2/archive/1_2715.dbf recid=2703 stamp=545108268deleted archive logarchive log filename=/opt/oracle/oradata/avatar2/archive/1_2714.dbf recid=2702 stamp=545107659Deleted 286 objectsRMAN> crosscheck archivelog all;released channel: ORA_DISK_1allocated channel: ORA_DISK_1channel ORA_DISK_1: sid=19 devtype=DISKspecification does not match any archive log in the recovery catalog
如何正确删除ORACLE归档日志文件 我们都都知道在controlfile中记录着每一个archivelog的相关信息,当然们在OS下把这些物理文件delete掉后,在我们的
controlfile中仍然记录着这些archivelog的信息,在oracle的OEM管理器中有可视化的日志展现出,当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了!这时候我们要做手工的清除的话,下面我经过实验,可以尝试这种方法:
这样做仍然会在RMAN里留下未管理的归档文件
仍需要在RMAN里执行下面2条命令
crosscheck archivelog all;
delete expired archivelog all;
所以还不如上面的方法好用,不过用FIND的好处就是,可以在条件上,和EXEC子项上做很多操作,实现更复杂的功能
对归档日志的验证失败
存档日志文件名 =D:ORACLEORADATATESTARCHIVE1_47.DBF 记录 ID=1 时间戳 =572866
683
对归档日志的验证失败
存档日志文件名 =D:ORACLEORADATATESTARCHIVE11_48.DBF 记录 ID=2 时间戳 =57286
1. 进入rman
2. connect target /
3. crosscheck archivelog all;
4. delete expired archivelog all;
这时候我们再去OEM中看就一定看不到,如果你的从来没有做过这个动作的话,我们可以比较从这个动作前的controlfile后动作后的controlfile的大小!
删除归档日志的过程