oracle数据库归档日志使用情况

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数据库归档日志的使用情况对于数据库的可恢复性和可靠性至关重要。

它提供了数据的完整性,在数据库发生故障时可
以通过归档日志进行数据的恢复和混乱操作的回滚。

归档日志的生成方式可以通过启用或禁用归档模式进行控制,归档日志的存放位置可以通过相关参数进行配置,而归档日志的管理方法包括检查、清理和备份等。

使用正确的归档日志管理方法可以最大限度地保证数据库的稳定性和数据的完整性。

合集下载

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物化视图定时全量刷新导致归档⽇志骤增⼀、问题描述 某项⽬组来电,说有⼀个源表约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 归档日志原理

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

Oracle Archive log

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 数据清理和归档方案概述在日常的数据管理中,数据清理和归档是非常重要的环节。

在Oracle数据库中,合理的数据清理和归档方案可以提高数据库的性能和可靠性,同时也能减少数据库的存储空间和备份/恢复的时间和成本。

本文将就Oracle数据库中的数据清理和归档方案进行详细的探讨。

数据清理方案数据清理是指清理不再需要的数据,以释放数据库的存储空间和提高查询性能。

下面是一些常用的数据清理方案:1. 删除过期数据在数据库中,某些数据可能有一定的保存期限,超过期限后就可以被删除。

可以通过编写定时任务或者使用Oracle的调度程序来定期删除过期数据。

例如,可以根据时间戳或者某个字段的值来判断数据是否过期,然后使用DELETE语句将其删除。

2. 聚合数据对于一些历史数据,可以根据需要将其进行聚合,以减少数据库的存储空间。

例如,可以将按天存储的数据聚合到按周、按月或者按年存储的数据中。

在聚合数据之后,可以删除原始的细粒度数据,以释放存储空间。

3. 数据归档对于一些历史数据,虽然可能不再被频繁访问,但是仍然需要保留。

这时可以考虑将这些数据归档到其他存储介质中,例如磁带库或者归档文件系统。

通过归档可以释放数据库的存储空间,同时仍然可以满足数据保留的需求。

数据归档方案数据归档是指将历史数据从Oracle数据库中移动到其他存储介质中,以解决存储空间不足的问题。

下面是一些常用的数据归档方案:1. 使用Oracle归档功能Oracle数据库提供了强大的归档功能,可以自动将历史数据归档到归档日志文件中。

通过配置适当的参数,可以调整归档的频率和方式。

归档日志文件可以保存在磁盘、磁带库或者归档文件系统中。

2. 使用第三方软件除了Oracle自带的归档功能,还可以使用一些第三方软件来进行数据归档。

这些软件通常具有更多的定制化和可扩展性,可以根据需要进行灵活的配置和管理。

例如,可以使用EMC Data Domain、IBM Tivoli Storage Manager等软件来进行数据归档。

Oracle特殊类型文件

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归档操作步骤
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数据库中可能会产生很多无用的数据或历史数据,这些数据会占用大量的存储空间,影响数据库性能。

因此,对于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数据库调整归档日志空间大小

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已经满了,导致数据库无法启动。

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