oracle数据库归档日志使用情况
- 格式:doc
- 大小:12.09 KB
- 文档页数:4
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物化视图定时全量刷新导致归档⽇志骤增⼀、问题描述 某项⽬组来电,说有⼀个源表约2万多条的物化视图,每5分钟定时全量(Complete)刷新⼀次,⼀天下来,导致Oracle数据库归档⽇志骤增。
⼆、问题分析及解决 先明确⼀个问题:归档⽇志(Archive Log)和重做⽇志(REDO Log)的关系。
Oracle的重做⽇志是⼀组(或⼏组)⽂件,按⼀定的规则顺序循环写,当重做⽇志写满后,从头开始写之前,如果数据库在归档模式(Archive),则在重写之前,需要把当前的重做⽇志进⾏归档(Archive),形成归档⽇志。
即归档⽇志来⾃于重做⽇志。
基于此,可以通过减少产⽣重做⽇志的量来达到减少归档⽇志量的⽬的。
综合⼀下: 1、不要全量刷新,采⽤在源表上记录物化视图⽇志的⽅式,实现快速刷新,减少更新的数据量,达到减少重做⽇志的⽬的; 2、指定物化视图为nologging模式 3、减少或取消其上的索引(2W条记录,如果使⽤得⽐较频繁,甚⾄可以考虑把它cache到内存中) 4、如果⼀定要有索引,⾃⼰写刷新的Job,先disable索引,然后刷新,然后重建索引(唯⼀索引可能有问题)。
5、评估业务、技术要求,考虑取消物化视图,建⽴⼀般视图,在访问该视图时,直接从源表中查询。
三、验证过程 验证全量刷新的物化视图产⽣的REDO⽇志的⼤⼩:-- 建⽴源表create table big_table as select * from dba_objects;-- 我机器上(11g),⼤概8W条记录select count(*) from big_table;/*开始验证全量刷新产⽣的REDO⽇志的量*/-- 建⽴物化视图create materialized view big_table_mv as select * from big_table;-- 查看⽬前REDO⽇志的量(重新启动数据库会⾃动清理)-- 记录下数值,⽤于接下来的⽐较select , b.value from v$statname a, v$mystat b where a.statisti = b.statistic# and = 'redo size';--243964-- ⼿⼯全量刷新物化视图begindbms_mview.refresh( 'BIG_TABLE_MV', 'C' );end;-- 再查看REDO⽇志的量,⽐较⼀下-- 记录下数值,⽤于接下来的⽐较select , b.value, to_char( b.value-&V, '999999999999' ) diff from v$statname a, v$mystat b where a.statistic# = b.statistic# and = 'redo size';--value:38845196--diff:38601232,增加了约37M-- 还是⽐较可观的-- 把物化视图改为nologging模式alter table big_table_mv nologging;-- 再全量刷新begindbms_mview.refresh( 'BIG_TABLE_MV', 'C' );end;-- 再查看REDO⽇志的量,⽐较⼀下-- 记录下数值,⽤于接下来的⽐较select , b.value, to_char( b.value-&V, '999999999999' ) diff from v$statname a, v$mystat b where a.statistic# = b.statistic# and = 'redo size';--value:77495608--diff:38894376,增加了约37M,全量刷新时,指定nologging没有什么效果喔。
oracle 归档日志原理
Oracle的归档日志是联机重做日志组文件的一个副本,它包含redo记录以及一个唯一的log sequence number。
当一个redo log group写满时,或者发出switch logfile指令时,就会触发日志组的切换。
当发生日志组切换时,ARC进程会将当前的重做日志数据写入归档日志。
LGWR进程将redo logbuffer中的重做数据写入到redo log中,这是内存读磁盘写的过程。
而ARC进程是将重做日志文件写入到归档文件,是磁盘读磁盘写的过程。
显然LGWR进程的读写效率或者读写速度比ARC进程要快。
在频繁发生DML操作的数据库中,可能会发生归档慢,而重做日志写入速度快的情况,这就会导致数据库被HANG住。
此时数据库什么也不做就是等待ARC进程将当前重做日志数据写入到归档文件。
这时候就要考虑启动更多的归档进程了,通过修改参数log_archive_max_processes来实现。
该参数是动态参数,直接修改即可。
以上内容仅供参考,如需更详细的解释,建议咨询数据库专业人员或查阅Oracle官方文档。
数据库归档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产生。
Oracle归档日志(Archive Log 一)归档日志即重做日志的备份,使用归档日志的目的是为了实现介质恢复。
一.日志操作模式1.Noarchivelog(非归档模式)不保存重做日志。
不能在open状态下进行物理备份;要定期执行完全数据库备份;只能将数据库恢复到上次的完全备份点。
2.Archivelog当进行日志切换时,ARCH进程会将重做日志的内容复制到归档日志中。
在归档重做日志前,新事务变化不能覆盖旧事务变化。
可以在open 状态下进行物理备份。
可以将数据库恢复到失败前的状态。
可以是用备份数据库与主数据库保持同步。
二.开启归档1.改变日志操作模式shutdown immediate;startup mount;alter database archivelog;alter database open;修改日志操作模式后,必须重新备份数据库2.归档重做日志1).手工归档alter system archive log all;2).自动归档设置初始化参数:log_archive_start=trueshutdown immediate;startup pfile=.3).检查日志操作模式archive log list;三.指定归档位置1.使用log_archive_dest1).设置归档目录log_archive_dest log_archive_duplex_dest 2).设置归档日志格式2.使用log_archive_dest_n1).指定归档位置log_archive_dest_1=’location=f:\arc1’log_archive_dest_3=’service=standby’2).设置其他初始化参数log_archive_dest_state_1=enablelog_archive_dest_state_3=defer四.相关的一些脚本1.显示日志操作模式select log_mode from v$database2.显示归档日志信息select name,sequence#,first_change# from v$archived_log3.显示归档日志位置select destination from v$arvhive_dest4.显示日志历史信息select * from v$loghist;Oracle中的归档日志(Archive Log 二)在Oracle中,数据一般是存放在数据文件中,不过数据库与Oracle 最大的区别之一就是数据库可以在数据出错的时候进行恢复。
Oracle 数据清理和归档方案概述在日常的数据管理中,数据清理和归档是非常重要的环节。
在Oracle数据库中,合理的数据清理和归档方案可以提高数据库的性能和可靠性,同时也能减少数据库的存储空间和备份/恢复的时间和成本。
本文将就Oracle数据库中的数据清理和归档方案进行详细的探讨。
数据清理方案数据清理是指清理不再需要的数据,以释放数据库的存储空间和提高查询性能。
下面是一些常用的数据清理方案:1. 删除过期数据在数据库中,某些数据可能有一定的保存期限,超过期限后就可以被删除。
可以通过编写定时任务或者使用Oracle的调度程序来定期删除过期数据。
例如,可以根据时间戳或者某个字段的值来判断数据是否过期,然后使用DELETE语句将其删除。
2. 聚合数据对于一些历史数据,可以根据需要将其进行聚合,以减少数据库的存储空间。
例如,可以将按天存储的数据聚合到按周、按月或者按年存储的数据中。
在聚合数据之后,可以删除原始的细粒度数据,以释放存储空间。
3. 数据归档对于一些历史数据,虽然可能不再被频繁访问,但是仍然需要保留。
这时可以考虑将这些数据归档到其他存储介质中,例如磁带库或者归档文件系统。
通过归档可以释放数据库的存储空间,同时仍然可以满足数据保留的需求。
数据归档方案数据归档是指将历史数据从Oracle数据库中移动到其他存储介质中,以解决存储空间不足的问题。
下面是一些常用的数据归档方案:1. 使用Oracle归档功能Oracle数据库提供了强大的归档功能,可以自动将历史数据归档到归档日志文件中。
通过配置适当的参数,可以调整归档的频率和方式。
归档日志文件可以保存在磁盘、磁带库或者归档文件系统中。
2. 使用第三方软件除了Oracle自带的归档功能,还可以使用一些第三方软件来进行数据归档。
这些软件通常具有更多的定制化和可扩展性,可以根据需要进行灵活的配置和管理。
例如,可以使用EMC Data Domain、IBM Tivoli Storage Manager等软件来进行数据归档。
Oracle 特殊类型文件Oracle 还提供了其他一些类型的文件,如参数文件、归档日志文件、跟踪和密码文件等。
本节将对这些类型的文件进行简单地介绍。
1.归档日志文件Oracle 利用重做日志文件记录对数据库所做的修改,但是重做日志文件是以循环方式使用的,在重新写入重做日志文件时,其中原来保存的信息将被覆盖。
如果能够将所有的重做记录永久地保留下,就可以完整地记录数据库的全部修改过程。
这可以通过对重做日志文件进行归档来实现。
在重做日志文件被覆盖之前,Oracle 能够将已经写满的重做日志文件通过复制操作系统文件的方式保存到指定的位置。
保存下来的重做日志文件的集合称为“归档重做日志”,复制的过程称为“归档”。
Oracle 数据库可以运行在两种模式之中,归档模式和不归档模式。
只有数据库处于归档模式下,系统才会对重做日志文件执行归档操作,归档操作是由后台进程ACRn 自动完成。
当数据库运行在归档模式下,归档重做日志文件会占用大量的硬盘空间。
也就是说,数据库在归档模式下是牺牲硬盘空间来获取数据的安全性。
2.参数文件在Oracle 数据库系统中,参数文件包含了数据库的配置信息。
数据库实例在启动之前,Oracle 数据库系统首先会读取这些参数文件中设置的参数,并根据初始化参数文件中设置的参数来配置实例的启动。
参数文件包括文本参数文件和服务器参数文件两种类型。
在Windows 平台中,服务器参数文件的名称格式为SPFILE<SID>.ora ,文本参数的名称格式为init<SID>.ora ,其中SID 为数据库实例名。
用户可以通过如下三种方法查看数据库中参数值:● 查看init<SID>.ora 文件。
该参数文件是以文本形式存储参数,用户可以直接打开该参数文件查看数据库参数。
● 查询视图V$PARAMETER 。
可利用该动态性能视图来确定参数的默认值是否修改过,以及是否可以用ALTER SYSTEM 和ALTER SESSION 命令修改。
oracle归档操作步骤
Oracle的归档操作主要包括开启归档模式、修改归档日志路径以及删除归档日志等步骤。
1.查看归档模式是否开启以及重做日志存放路径。
可以通过执行SQL
命令archive log list来查看归档日志的状态,以及SELECT * FROM v$logfile ORDER BY group#;来查看重做日志的存放路径。
2.开启归档模式。
首先关闭数据库实例,然后启动到mount状态,接着
修改数据库为归档模式,最后打开数据库。
3.修改归档日志路径。
如果需要修改归档日志的路径,可以通过修改初
始化参数log_archive_dest_1的值来实现。
注意新路径必须已经存在,且每个目录都必须存在。
4.实验是否成功将路径做了修改。
可以通过切换重做日志的活跃状态来
触发日志备份,生成新的归档日志,并检查新的归档日志是否保存在设置的目录下。
5.删除归档日志。
首先通过执行crosscheck archivelog all;命令
来检查归档日志文件,然后通过执行delete expired archivelog all;命令来删除校验失败的记录。
oracle 数据清理和归档方案一、背景介绍Oracle数据库是目前世界上使用最广泛的关系型数据库管理系统之一,它可以存储和处理大量的数据。
但是,在长时间的使用过程中,Oracle数据库中可能会产生很多无用的数据或历史数据,这些数据会占用大量的存储空间,影响数据库性能。
因此,对于Oracle数据库来说,数据清理和归档是非常重要的。
二、数据清理方案1.识别无用数据在进行数据清理之前,首先需要识别哪些数据是无用的。
可以通过以下方式进行识别:(1)查看表空间使用情况:通过查询表空间使用情况来判断哪些表或索引占用了较多的空间。
(2)查看表或索引大小:通过查询表或索引大小来判断哪些表或索引占用了较多的空间。
(3)查看未使用对象:通过查询未使用对象来判断哪些表或索引已经长时间没有被访问过。
2.删除无用数据在识别出无用数据之后,需要将其删除。
可以通过以下方式进行删除:(1)删除未使用对象:可以通过DROP语句将未使用对象直接删除。
(2)删除不必要的日志:可以通过设置日志级别、限制日志大小等方式来减少日志记录量。
(3)清除历史数据:可以通过删除历史数据来减少数据库占用空间。
三、数据归档方案1.归档策略在进行数据归档之前,需要制定一个合理的归档策略。
归档策略应该考虑以下因素:(1)数据库大小:根据数据库大小来制定合理的归档策略。
(2)业务需求:根据业务需求来制定合理的归档策略。
(3)存储设备:根据存储设备容量来制定合理的归档策略。
2.归档实施在制定好归档策略之后,需要进行具体的实施。
可以通过以下方式进行实施:(1)使用Oracle Data Guard:Oracle Data Guard是一种数据保护技术,可以将主数据库的数据复制到备库中,从而实现数据备份和恢复。
(2)使用Oracle RMAN:Oracle RMAN是一种备份和恢复管理工具,可以对Oracle数据库进行备份和恢复操作,并支持增量备份、压缩备份等功能。
ORACLE数据库归档日志满后造成无法启动/连接的处理方法在\app\Administrator\diag\rdbms\orcl\orcl\trace(其中orcl根据具体的数据库实例名称而定)路径下的log中可以看到以下信息:ORA-19815: W ARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% used, and has 0 remaining bytes available.Wed Jan 9 15:00:29 2013************************************************************************You have following choices to free up space from flash recovery area:1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,then consider changing RMAN ARCHIVELOG DELETION POLICY.2. Back up files to tertiary device such as tape using RMANBACKUP RECOVERY AREA command.3. Add disk space and increase db_recovery_file_dest_size parameter toreflect the new space.4. Delete unnecessary files using RMAN DELETE command. If an operatingsystem command was used to delete files, then use RMAN CROSSCHECK andDELETE EXPIRED commands.ORA-19815: W ARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% used, and has 0 remaining bytes available.这句日志意思是db_recovery_file_dest_size已经满了,导致数据库无法启动。
oracle判断归档日志失效的原理Oracle数据库中的归档日志是保证数据持久性和恢复能力的关键组成部分。
归档日志的失效可能会导致数据库无法正常运行或无法恢复到最新的状态。
本文将从Oracle判断归档日志失效的原理进行阐述。
在Oracle数据库中,归档日志是一种记录数据库操作的二进制文件。
当数据库发生变更时,比如插入、更新或删除数据,Oracle会将这些操作写入归档日志中。
归档日志的作用是保证数据的持久性,即使数据库发生故障,也能通过归档日志将数据恢复到最新的状态。
归档日志失效可能会导致数据丢失或无法恢复。
因此,Oracle会通过一些机制来判断归档日志是否失效。
其中包括以下几个方面:1. 归档日志的序列号:每个归档日志都有一个唯一的序列号。
Oracle通过比较归档日志的序列号来判断其是否失效。
如果某个归档日志的序列号小于当前正在使用的归档日志的序列号,那么该归档日志就被认为是失效的。
2. 归档日志的完整性:Oracle在写入归档日志时会计算并存储每个归档日志的校验和。
在判断归档日志是否失效时,Oracle会重新计算归档日志的校验和,并与存储的校验和进行比较。
如果两者不一致,那么说明归档日志已经损坏或被篡改,被认为是失效的。
3. 归档日志的可访问性:Oracle会检查归档日志的物理文件是否存在、是否可读。
如果归档日志的物理文件不存在或无法读取,那么该归档日志就被认为是失效的。
4. 归档日志的使用情况:Oracle会记录当前正在使用的归档日志的序列号,以及已经归档的归档日志的序列号。
通过比较这两个序列号,Oracle可以确定哪些归档日志已经被使用。
如果某个归档日志的序列号小于已经归档的归档日志的序列号,那么该归档日志就被认为是失效的。
通过以上几个方面的判断,Oracle可以准确地判断归档日志是否失效。
一旦判断出归档日志失效,Oracle会采取相应的措施来处理失效的归档日志,比如删除、归档或重新生成。
解决OracleRMAN删除归档⽇志不释放问题的⽅法前⾔当Oracle 归档⽇志满了后,将⽆法正常登⼊oracle,需要删除⼀部分归档⽇志才能正常登⼊ORACLE。
最近同事在⼯作中遇到⼀个问题,他那边的⼀套Oracle 11g数据库使⽤RMAN没办法删除旧的归档,导致磁盘使⽤率很⾼。
oracle@ps251n2s:[/opt/oracle/archive/db] ls -ltr |moretotal 3059881082-rw-r----- 1 oracle oinstall 725320704 May 20 2016 1_1_91233774.dbf-rw-rw---- 1 oracle oinstall 1756937216 Jun 7 2016 1_2_91233774.dbf-rw-rw---- 1 oracle oinstall 1756731392 Jun 21 2016 1_3_91233774.dbf-rw-rw---- 1 oracle oinstall 1758001152 Jul 3 2016 1_4_91233774.dbf-rw-rw---- 1 oracle oinstall 1756729344 Jul 15 2016 1_5_91233774.dbf-rw-rw---- 1 oracle oinstall 1765750784 Jul 26 22:00 1_6_91233774.dbf-rw-rw---- 1 oracle oinstall 1760346112 Aug 6 14:04 1_7_91233774.dbf......使⽤RMAN list archivelog all;查看⽇志也没有显⽰旧归档⽇志的记录RMAN> list archivelog all;using target database control file instead of recovery catalogList of Archived Log Copies for database with db_unique_name DBS=====================================================================Key Thrd Seq S Low Time------- ---- ------- - ---------1206 1 1206 A 14-JAN-17Name: /opt/oracle/archive/db/1_1206_91233774.dbf1207 1 1207 A 14-JAN-17Name: /opt/oracle/archive/db/1_1207_91233774.dbf1208 1 1208 A 14-JAN-17Name: /opt/oracle/archive/db/1_1208_91233774.dbf......使⽤crosscheck检查也没有查到旧归档⽇志记录RMAN> crosscheck archivelog all;using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: SID=16 device type=DISKvalidation succeeded for archived logarchived log file name=/opt/oracle/archive/db/1_1206_91233774.dbf RECID=1206 STAMP=933244655validation succeeded for archived logarchived log file name=/opt/oracle/archive/db/1_1207_91233774.dbf RECID=1207 STAMP=933249510validation succeeded for archived logarchived log file name=/opt/oracle/archive/db/1_1208_91233774.dbf RECID=1208 STAMP=933254500validation succeeded for archived logarchived log file name=/opt/oracle/archive/db/1_1209_91233774.dbf RECID=1209 STAMP=933259445validation succeeded for archived log查看v$archived_log视图也没有旧归档⽇志记录解决过程于是在⽹上找到⼀篇⽂章,⼤体意思是MAN删除归档⽇志的依据是controlfile中记录的归档⽇志,⽽不是你磁盘上实际存在的归档⽇志,如果你的归档⽇志已经不在controlfile中就⽆法被RMAN识别到,也就⽆法被删除。
数据库归档日志随着信息化时代的不断发展,数据的处理和存储越来越成为了企业和组织管理的重要部分。
而数据库作为数据存储和管理的核心,更是被广泛应用于各行各业。
在数据库的管理中,数据的备份和恢复是一项至关重要的工作。
而其中一个重要的备份手段就是数据库归档日志。
一、什么是数据库归档日志数据库归档日志(Archive Log)是指数据库中所有被修改的数据都被记录下来并保存到一个特定的位置,以便在需要进行数据恢复时使用。
它是数据库备份的重要组成部分,可以保证在系统发生故障时,恢复数据的完整性和一致性。
归档日志记录了所有的数据库变化操作,包括数据的插入、更新、删除、表结构的改变等,同时记录了这些操作的时间和顺序。
二、归档日志的作用1. 数据备份归档日志可以记录数据库中所有的操作,并将这些操作的记录保存在一个特定的位置。
这样,在系统出现故障时,可以利用归档日志来恢复数据库,保证数据的完整性和一致性。
归档日志的备份还可以用于数据迁移、数据同步等操作。
2. 数据恢复当数据库发生故障时,可以通过归档日志来恢复数据。
在进行数据恢复时,需要使用归档日志中记录的操作来还原数据库中的数据。
这样,可以保证数据的完整性和一致性,避免数据丢失和数据不一致的情况发生。
3. 数据迁移归档日志的备份可以用于数据迁移。
在进行数据迁移时,可以利用归档日志将数据从一个数据库迁移到另一个数据库。
这样,可以保证数据的完整性和一致性。
4. 数据同步归档日志的备份还可以用于数据同步。
在进行数据同步时,可以利用归档日志将数据从一个数据库同步到另一个数据库。
这样,可以保证数据的一致性。
三、归档日志的实现方式归档日志的实现方式主要有两种:物理备份和逻辑备份。
1. 物理备份物理备份是通过备份数据库的物理文件来实现的。
在进行物理备份时,需要将数据库的数据文件、控制文件、归档日志文件等全部备份下来。
这样,在进行数据恢复时,可以将备份的物理文件还原到原数据库中,从而实现数据的恢复。
Oracle数据库的归档日志写满磁盘空间解决办法1、数据库不能启动SQL> sta rtupOR ACLE例程已经启动。
Tota l Sys tem G lobal Area 289406976 byte sFixed Size 1248576 byte sVaria ble S ize 83886784 byte sDatab ase B uffer s 197132288 byte sRedoBuffe rs 7139328 byte s数据库装载完毕。
ORA-16038: 日志 2 序列号 44无法归档OR A-19809: 超出了恢复文件数的限制O RA-00312:联机日志2 线程1:'D:\ORACL E\PRO DUCT\10.2.0\ORA DATA\ORCL\REDO02.LOG' 2、查看$ORACL E_HOM E\adm in\SI D\bdu mp\al ert_S ID.lo g日志Thu Feb19 09:45:33 2009Error s infiled:\or acle\produ ct\10.2.0\admin\orcl\bdum p\orc l_arc1_660.trc:O RA-19815:WARNI NG: d b_rec overy_file_dest_size of 2147483648bytesis 99.95% used, and has1129472 re maini ng by tes a vaila ble.Th u Feb 19 09:45:33 2009Erro rs in file d:\o racle\prod uct\10.2.0\admi n\orc l\udu mp\or cl_or a_4708.trc: ORA-19815:警告:db_re cover y_fil e_des t_siz e 字节(共 2147483648 字节) 已使用99.95%,尚有 1129472字节可用。
oracle归档⽇志满了oracle归档⽇志满了/oracle归档⽇志清理查看归档⽂件信息--登录Oraclesqlplus 账号/密码 as sysdba--查看当前归档⽇志⽬录show parameter recovery;解决⽅法⼀:修改归档⽇志⽂件⼤⼩--登录Oraclesqlplus 账号/密码 as sysdba--更改归档⽇志⽬录alter system set db_recovery_file_dest='/u01/app/oracle/archivelog' scope=spfile;--更改归档⽇志⽬录⼤⼩alter system set db_recovery_file_dest_size=4096m scope=spfile;--重启数据库并查看归档⽇志⽬录及⼤⼩(修改后记得重启)shutdown immediate;startup;show parameter recovery;解决⽅法⼆:删除归档⽇志⽂件--rman流程set oracle_sid=你⾃⼰的sid --1-- 查看⾃⼰的sid: 开始(右键)->run->输⼊: services.msc ->找 ORACLEService....(....即为你的sid)格式的Name rman --2connect target/ --3--查看是否开启归档⽇志archive log list;--校验⽇志的可⽤性crosscheck archivelog all;--列出所有失效的归档⽇志list expired archivelog all;--删除log sequencewei16及16之前的所有归档⽇志delete archivelog until sequence 16;--删除系统时间7天以前的归档⽇志,不会删除闪回去有效的归档⽇志delete archivelog all completed before 'sysdate-7';--注意这个命令,删除系统时间1天以内到现在的归档⽇志delete archivelog from time 'sysdate-1';--该命令清除所有的归档⽇志delete noprompt archivelog all completed before 'sysdate';或delete noprompt archivelog all;Oracle 启动关闭⽅式⼀、⼏种启动⽅式: 1、startup nomount ⾮安装启动,这种⽅式启动下可执⾏:重建控制⽂件、重建数据库 启动instance,即启动SGA和后台进程,这种启动只需要init.ora⽂件。
Oracleg日志查看方法Oracle 11g的日志文件包括数据库日志(Redo Log)、归档日志(Archive Log)和警告日志(Alert Log)。
这些日志文件记录了数据库的运行状态、操作记录、错误信息等重要信息,对于数据库管理员来说非常重要。
下面将详细介绍Oracle 11g的日志查看方法。
1. 数据库日志(Redo Log):数据库日志是Oracle数据库中最重要的日志文件之一,它记录了数据库中所有修改操作的详细信息,包括插入、更新和删除操作。
数据库日志文件的默认位置是$ORACLE_HOME/oradata/<SID>/redo<file_number>.log。
查看数据库日志的方法如下:- 使用SQL*Plus登录到数据库。
-运行以下命令查看数据库日志的信息:```SELECT group#, thread#, sequence#, members, archivedFROM v$log;```这个命令将显示数据库日志的组号(group#)、线程号(thread#)、序列号(sequence#)、成员数(members)和是否已归档(archived)等信息。
-运行以下命令查看数据库日志的详细信息:```SELECT * FROM v$log;```这个命令将显示数据库日志的详细信息,包括日志组的状态、大小、成员的路径等。
2. 归档日志(Archive Log):归档日志是数据库日志的备份,它可以用于数据库的恢复和还原。
归档日志文件的默认位置是$ORACLE_HOME/dbs/arch<thread_number>_<sequence_number>.arc。
查看归档日志的方法如下:- 使用SQL*Plus登录到数据库。
-运行以下命令查看已归档的日志文件:```FROM v$archived_logWHERE status='A';```-运行以下命令查看归档日志的详细信息:```SELECT * FROM v$archived_log;```这个命令将显示归档日志的详细信息,包括日志文件的路径、大小、归档时间等。
Oracle的闪回恢复区和归档⽇志多路径设置Oracle9i开始提供闪回查询,以便能在需要的时候查到过去某个时刻的⼀致性数据,这是通过Undo实现的。
这个功能有很⼤的限制,就是相关事务的undo不能被覆盖,否则就⽆⼒回天了。
oracle10g⼤⼤的增强了闪回查询的功能,并且提供了将整个数据库回退到过去某个时刻的能⼒,这是通过引⼊⼀种新的flashback log实现的。
flashback log有点类似redo log,只不过redo log将数据库往前滚,flashback log则将数据库往后滚。
为了保存管理和备份恢复相关的⽂件,oracle10g提供了⼀个叫做闪回恢复区(Flashback recovery area)的新特性,可以将所有恢复相关的⽂件,⽐如flashback log,archive log,backup set等,放到这个区域集中管理。
1.设置闪回恢复区闪回恢复区主要通过3个初始化参数来设置和管理db_recovery_file_dest :指定闪回恢复区的位置db_recovery_file_dest_size :指定闪回恢复区的可⽤空间⼤⼩db_flashback_retention_target :指定数据库可以回退的时间,单位为分钟,默认1440分钟,也就是⼀天。
当然,实际上可回退的时间还决定于闪回恢复区的⼤⼩,因为⾥⾯保存了回退所需要的flash log。
所以这个参数要和db_recovery_file_dest_size配合修改。
2.启动flashback database设置了闪回恢复区后,可以启动闪回数据库功能。
⾸先,数据库必须已经处于归档模式1.关闭数据库SQL> shutdown immediate;2.启动数据库为mount模式SQL> startup mount3.显⽰和修改归档模式SQL> archive log listSQL> alter database archivelog;SQL> alter database open4.设置归档⽇志的格式SQL>alter system set log_archive_format='ARC%s%t%r.log' scope=spfile;5.设置归档⽇志的存放路径SQL>alter system set log_archive_dest='+data/arcl' scope=spfile;SQL>shutdown immediateSQL>startup6.强制切换归档⽇⾄SQL>alter system switch logfile;7.取消归档SQL>alter database noarchivelog;参数1.格式参数%s⽇志序列号%S⽇志序列号(带前导的0)%t重做线程编号%a活动的ID号%d数据库ID号%r RESELOGS的iD值SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 156Next log sequence to archive 158Current log sequence 158然后,启动数据库到mount状态SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startup mountORACLE instance started.Total System Global Area 285212672 bytesFixed Size 1218992 bytesVariable Size 75499088 bytesDatabase Buffers 205520896 bytesRedo Buffers 2973696 bytesDatabase mounted.SQL>alter database flashback on;数据库已更改。
oracle查归档日志位置的语句
在Oracle中,我们可以使用以下语句来查找归档日志的位置: ```sql
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME LIKE '%archivelog%';
```
此语句将返回V$PARAMETER视图中所有名称包含“archivelog”的参数及其值。
这些参数中的一些参数可能与归档日志位置有关。
其中,我们主要关注以下两个参数:
- log_archive_dest:此参数指定了归档日志的默认位置。
该参数的值可以是一个目录路径或数据库连接字符串。
- log_archive_dest_1:此参数指定了归档日志的备用位置。
如果主归档位置不可用,则日志将被写入备用位置。
您也可以使用以下命令来检查当前是否启用了归档日志:
```sql
SELECT LOG_MODE FROM V$DATABASE;
```
如果返回值为ARCHIVELOG,则表示已启用归档日志。
如果返回值为NOARCHIVELOG,则表示未启用归档日志。
- 1 -。
清理oracle日志
清理Oracle日志是数据库管理中的重要任务,可以通过以下几
种方式来进行清理:
1. 使用日志归档(Archive Log)功能,Oracle数据库可以配
置为使用归档日志模式,这样数据库日志会被自动归档到指定的位置,可以定期清理已经归档的日志文件,以释放磁盘空间。
归档日
志的清理可以通过RMAN(Recovery Manager)工具或者手动方式进行。
2. 使用日志切换(Log Switch),在Oracle数据库中,日志
文件会不断切换,当一个日志文件写满后,数据库会自动切换到下
一个日志文件。
可以通过手动触发日志切换来间接实现日志的清理,但这通常是在非常特殊的情况下使用,不建议经常性地手动切换日志。
3. 使用日志清理工具,Oracle数据库提供了一些工具和脚本
来帮助管理和清理日志文件,比如可以使用
DBMS_LOGMNR.CLEAN_LOG等存储过程来清理归档日志。
4. 定期备份和恢复,定期备份数据库是非常重要的,备份过程中可以清理不再需要的日志文件,同时在恢复过程中也可以进行日志的清理。
需要注意的是,在进行日志清理时,一定要确保不会影响数据库的正常运行和数据的完整性,建议在清理日志之前先做好备份工作,并且在清理过程中要小心谨慎,避免删除错误的日志文件。
另外,清理日志时要遵循数据库管理的最佳实践和安全规范。
oracle数据库归档日志使用情况
Oracle数据库归档日志使用情况
概述:
数据库归档日志是Oracle数据库中一个重要的组成部分,它用于记录数据库的所有变更操作,以便数据库在出现故障或需要恢复时能够通过日志进行数据的恢复。
本文将详细介绍Oracle数据库归档日志的使用情况,包括归档日志的作用、生成方式、存放位置以及管理方法等。
一、归档日志的作用
数据库归档日志的主要作用是提供了数据的完整性和可恢复性。
当数据库发生故障,如硬件故障、数据库崩溃或意外删除数据等情况,通过归档日志可以使数据库回滚到故障前的状态或恢复数据至故障发生时的状态。
此外,归档日志还可以用于数据库的灾难恢复、数据库的克隆和备份等操作。
当数据库需要从远程站点进行恢复或克隆时,可以通过归档日志来还原数据库至远程站点的状态,实现数据的同步。
同时,归档日志还可以用于数据库的备份,确保备份是最新的,并且能够完全恢复数据库。
二、归档日志的生成方式
Oracle数据库归档日志有两种生成模式,一种是归档模式,另一种是非归档模式。
1. 归档模式
数据库处于归档模式时,它会自动将日志文件复制到指定的目录中,以便进行数据的归档和恢复。
在归档模式下,数据库的归档日志会自动生成,并且只有归档日志被才会被复制到指定的归档目录中。
归档模式是默认的数据库模式,它可以通过以下命令进行启用:ALTER DATABASE ARCHIVELOG;
2. 非归档模式
与归档模式相反,非归档模式下数据库不会自动进行归档操作,也就是说不会生成归档日志。
这种模式适用于对数据的可恢复性要求不高的情况,或者是为了降低数据库的I/O负载,减少磁盘空间的占用。
非归档模式可以通过以下命令进行启用:
ALTER DATABASE NOARCHIVELOG;
需要注意的是,一旦数据库启用了归档模式,就不能再切换到非归档模式。
因此,在启用归档模式前需要谨慎考虑数据库的需求和成本效益。
三、归档日志的存放位置
归档日志的存放位置由参数log_archive_dest_n(n为1-10的整数)指定。
可以通过以下命令查看归档日志的存放位置:SELECT name, value FROM vparameter WHERE name LIKE 'log_archive_dest';
其中,参数log_archive_dest_1用于指定主要归档日志的存储位置,而log_archive_dest_2及以后的参数用于指定备用归档日志的存储位置。
主要归档日志即指归档日志的生成位置,而备用归档日志
用于备份或远程站点的数据同步。
四、归档日志的管理方法
为了有效管理归档日志,保证数据库的正常运行和数据的完整性,需要进行定期的归档日志的检查、清理和备份等操作。
1. 归档日志的检查
通过查询varchive_log视图可以获取到归档日志的信息,包括日志的路径、开始和结束的时间等。
可以通过该视图判断归档日志是否已经正常生成,并且是否存在滞后的情况。
2. 归档日志的清理
归档日志的清理是为了释放磁盘空间,并避免过多的归档日志影响数据库的性能。
可以通过命令ARCHIVE LOG LIST来查看数据库中已经归档的日志和未归档的日志数量,并通过命令进行手动的归档日志清理。
3. 归档日志的备份
为了保证数据库的可恢复性和备份的完整性,需要对归档日志进行备份。
可以通过常规的备份工具,如RMAN(Recovery Manager)、Data Pump等进行归档日志的备份。
备份的目的是为了在数据丢失或数据库发生灾难的情况下,能够通过归档日志进行数据库的完全恢复。
总结:Oracle数据库归档日志的使用情况对于数据库的可恢复性和可靠性至关重要。
它提供了数据的完整性,在数据库发生故障时可
以通过归档日志进行数据的恢复和混乱操作的回滚。
归档日志的生成方式可以通过启用或禁用归档模式进行控制,归档日志的存放位置可以通过相关参数进行配置,而归档日志的管理方法包括检查、清理和备份等。
使用正确的归档日志管理方法可以最大限度地保证数据库的稳定性和数据的完整性。