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.数据库安全分析:通过分析归档日志,可以监控数据库访问权限和操作,提高数据库安全。
五、总结与建议归档日志在数据库管理中具有重要意义。
对于数据库管理员而言,应充分利用归档日志进行故障排查、性能优化和数据审计等工作。
oracle数据库归档与非归档

oracle数据库归档与⾮归档oracle运⾏的时候⾄少需要两组联机⽇志,每当⼀组⽇志写满后会发⽣⽇志切换,继续向下⼀组联机⽇志写⼊。
如果是归档模式,则会触发ARCn进程,把切换后的重做⽇志⽂件复制到归档⽇志⽂件。
如果是⾮归档模式,重做⽇志就会被覆盖。
将联机⽇志转换为归档⽇志的过程称之为归档。
相应的⽇志被称为归档⽇志。
归档模式的优点:1、可以进⾏完全、不完全恢复:对于数据库所作的全部改动都记录在⽇志⽂件中,如果发⽣磁盘故障等导致数据⽂件丢失的话,则可以利⽤物理备份和归档⽇志完全恢复数据库,不会丢失任何数据。
2、可以进⾏联机热备,所谓的联机热备,就是在数据库运⾏的状态下对数据库进⾏备份,其他⽤户不受影响。
3、可以实施Data Guard:可以部署⼀个或者多个备⽤数据库,从⽽最⼤限制的提供灾难保护。
4、可以实施stream:利⽤stream技术,可以实现最简单的单向复制、双向复制和多向复制,提供更加灵活的数据冗余⽅案。
5、表空间可以脱机:可以备份部分数据库和重要的表空间。
6、能够增量备份,只需做⼀次完整的备份,以后之备份改变的数据,提⾼备份速度。
7、更多的优化选择。
使⽤归档模式的缺点:1、需要更多的磁盘空间来保存归档⽇志2、需要定期维护归档表空间和备份归档⽇志⾮归档模式的优点:不⽣成归档⽇志,从数据安全的⾓度上看,缺点⾜以弥盖所有优点.使⽤⾮归档模式的缺点:1、只能进⾏脱机备份,也叫冷备份,就是必须数据库关闭之后才能备份,备份过程中数据库不能使⽤。
2、必须备份整个数据库,不能备份部分数据库3、不能增量备份,对于TB级别的数据库(VLDB),将是个很⼤的缺点。
4、只能部分恢复,如果数据⽂件丢失,只能恢复最后⼀次的完全备份,⽽之后的所有数据库改变将全部丢失。
查看当前数据库是否处于归档模式可使⽤如下两种⽅式查看1、select name, log_mode from v$database;log_mode的值为 NOARCHIVELOG 表⽰数据库处于⾮归档模式log_mode的值为 ARCHIVELOG 表⽰数据库处于归档模式2、archive log list;此⽅法需要 as sysdbaDatabase log mode 的值为 No Archive ModeAutomatic archival 的值为 Disabled表⽰当前数据库处于⾮归档模式Database log mode 的值为 Archive ModeAutomatic archival 的值为 Enabled表⽰数据库已开启归档模式归档模式和⾮归档模式下的相互切换:1、⾮归档模式转归档模式(1)、关闭数据库shutdown immediate;(2)、启动数据库到mount状态(连接控制⽂件)startup mount;(3)、修改数据库为归档模式alter database archivelog;(4)、打开数据库alter database open;(5)、查询数据库是否已处于归档模式archive log list;(6)、设置本地归档⽇志的路径alter system set log_archive_dest_1="location=路径" scope=both;该语句含义是确定归档⽇志的路径,实际上Oracle 10g以后可以⽣成多份⼀样的⽇志,保存多个位置,以防不测例如再添加⼀个⽇志位置可使⽤以下语句alter system set log_archive_dest_2="location=路径" scope=both;设置为远程归档⽇志的路径alter system set log_archive_dest-1="server=路径" scope=both;(7)、修改归档⽇志⽂件命名格式alter system set log_archive_max_processes = 5;alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;需重启后⽣效,归档的⽇志⽂件格式会更改为 archive_%t_%s_%r.log 格式(8)、查看当前被归档的重做⽇志select name from v$archived_log;由于没有重启数据库,所以归档⽇志的⽂件格式仍然是默认的格式。
查询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 数据库的开发环境和测试环境中,数据库的日志模式和自动归档模式一般都是不设置的,这样有利于系统应用的调整,也免的生成大量的归档日志文件将磁盘空间大量的消耗。
但在系统上线,成为生产环境时,将其设置为日志模式并自动归档就相当重要了,因为,这是保证系统的安全性,有效预防灾难的重要措施。
这样,通过定时备份数据库和在两次备份间隔之间的日志文件,可以有效的恢复这段时间的任何时间点的数据,可以在很多时候挽回或最大可能的减少数据丢失。
一、要使OARCLE 数据库进行日志的自动归档,需要做两方面的事情;1.是数据库日志模式的设置(可为Archive Mode 和No Archive Mode);2.就是自动归档模式设置(Automatic archival,可为Enabled 和Disabled)。
二、如何查看数据库的现行日志和自动归档模式的设置可用archive log list 命令来查看。
运行在日志自动归档模式下的数据库系统查看结果如下(一般是生产环境):SQL> archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination /backup/archivelogOldest online log sequence 2131Next log sequence to archive 2133Current log sequence 2133没有启动数据库日志模式和自动归档的数据库系统查看结果如下(一般是测试环境):SQL> archive log listDatabase log mode No Archive ModeAutomatic archival DisabledArchive destination /u01/app/oracle/product/8.1.7/dbs/archOldest online log sequence 194Current log sequence 196三. 数据库日志模式的设置在创建数据库时,可以在CREATE DATABASE 语句中指定数据库的日志模式。
oracle11g开启归档模式及修改归档目录日志满

oracle11g开启归档模式及修改归档⽬录⽇志满oracle 11g开启归档模式及修改归档⽬录⽇志满/s/blog_95b5eb8c01018ylb.htmloracle 11g开启归档模式及修改归档⽬录2011-06-28 22:29在Oracle 11g,开启archive log模式时,默认归档⽬录为db_recovery_file_dest指定。
此参数在pfile/spfile中可以指定:db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'更改归档模式需要在mount状态下,更改归档模式。
SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startup mountORACLE instance started.--如果安装多个库,会报错,找不到句柄exit 再⽤管理员进⼊Total System Global Area 1258291200 bytesFixed Size 1219160 bytesVariable Size 318768552 bytesDatabase Buffers 922746880 bytesRedo Buffers 15556608 bytesDatabase mounted.SQL> alter database archivelog;Database altered.SQL> alter database open;Database altered.SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 15Next log sequence to archive 17Current log sequence 17更改log_archive_dest_1参数可更改归档⽇志⽬录(pfile/spfile中参数db_recovery_file_dest指定的⽬录将⽆效)SQL> alter system set log_archive_dest_1='location=/data/oracle/log1/archive_log'; 最后的⽬录名称需要为archive_log! Linux:alter system set log_archive_dest_1='location=/u01/oracle/log/archive_log';System altered.SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination /data/oracle/log1/archive_logOldest online log sequence 26Next log sequence to archive 28Current log sequence 28实际上从Oracle 10g开始,可以⽣成多份⼀样的⽇志,保存多个位置,以防不测,⽅法如下:SQL>alter system set log_archive_dest_2='location=/data/oracle/log2/archive_log';SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination /data/oracle/log2/archive_log 只能看到最新设置的归档⽬录。
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数据库的开发环境和测试环境中,数据库的日志模式和自动归档模式一般都是不设置的,这样有利于系统应用的调整,也免的生成大量的归档日志文件将磁盘空间大量的消耗。
但在系统上线,成为生产环境时,将其设置为日志模式并自动归档就相当重要了,因为,这是保证系统的安全性,有效预防灾难的重要措施。
这样,通过定时备份数据库和在两次备份间隔之间的日志文件,可以有效的恢复这段时间的任何时间点的数据,可以在很多时候挽回或最大可能的减少数据丢失。
一、要使OARCLE 数据库进行日志的自动归档,需要做两方面的事情;1.是数据库日志模式的设置(可为Archive Mode 和No Archive Mode);2.就是自动归档模式设置(Automatic archival,可为Enabled 和Disabled)。
二、如何查看数据库的现行日志和自动归档模式的设置可用archive log list 命令来查看。
运行在日志自动归档模式下的数据库系统查看结果如下(一般是生产环境):SQL> archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination /backup/archivelogOldest online log sequence 2131Next log sequence to archive 2133Current log sequence 2133没有启动数据库日志模式和自动归档的数据库系统查看结果如下(一般是测试环境):SQL> archive log listDatabase log mode No Archive ModeAutomatic archival DisabledArchive destination /u01/app/oracle/product/8.1.7/dbs/archOldest online log sequence 194Current log sequence 196三. 数据库日志模式的设置在创建数据库时,可以在CREATE DATABASE 语句中指定数据库的日志模式。
oracle 日志归档 原理

oracle 日志归档原理Oracle数据库日志归档(Archive Log Mode)是数据库管理系统中用于实现数据库可恢复性的重要机制。
在归档模式下,Oracle数据库会将已填满的联机重做日志文件的内容复制到单独的归档日志文件中,并且只有在当前的日志内容被安全地归档后,才会覆盖或重新使用这些联机重做日志。
以下是Oracle日志归档的基本原理:1.联机重做日志:•Oracle数据库运行时会产生一系列的联机重做日志文件(Online Redo Logs),这些文件按照日志组的方式组织,每个日志组内包含一个或多个日志成员。
•当数据库执行事务处理时,所有对数据库的修改都会以重做记录的形式写入当前活动的日志组中。
2.日志切换:•随着数据库操作的进行,当前日志组填满后,会触发日志切换(Log Switch),即系统开始往下一个日志组中写入新的重做记录。
•在非归档模式下,旧的日志组可以被覆盖和重复使用;而在归档模式下,必须先将旧日志组的内容归档才能进行切换。
3.归档过程:•归档是由后台进程ARCn (Archiver) 自动完成的,或者管理员可以通过手动方式将填满的联机重做日志文件复制到指定的归档位置。
•归档日志文件具有与原始联机日志相同的逻辑内容,并带有唯一的日志序列号(Log Sequence Number, LSN),以便在恢复过程中确定应用重做记录的顺序。
4.作用:•在发生故障需要恢复数据库时,通过应用归档日志中的重做记录,可以将数据库状态恢复到故障发生前的任意时间点(Point-in-Time Recovery, PITR)。
•对于数据库镜像、数据保护以及维护高可用性环境如Data Guard(物理/逻辑standby数据库)也是至关重要的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
oracle日志归档模式改变2011-12-29 13:30:37| 分类:oracle | 标签:|字号大中小订阅在Oracle数据库中,主要有两种日志操作模式:归档模式(archivelog mode)及非归档模式(noarchivelog mode)。
在默认情况下oracle数据库采用的是非归档模式。
作为一个合格的DBA,应当深入了解这两种日志操作模式的特点,并且保证数据库运行在合适的日志操作模式下。
在讲重做日志归档模式(archivelog mode)及非归档模式(noarchivelog mode)之前我们先简单的了解一下oracle的日志切换步骤。
oracle数据库的重做日志是重复写的,一般来说oracle数据库拥有多个重做日志组(redo log group),每个重做日志组又包含多个成员(详细介绍请查考oracle官方文档),我们大部分的数据更改操作都会写入在线日志中,也就是当前正在使用的重做日志。
当一个重做日志写满或DBA发出switch log 命令的时候就会发生日志切换,如果oracle运行在非归档模式下,oracle直接覆盖写下一个重做日志组。
如果oracle运行在归档模式下则oracle会查询即将写入的重做日志是否归档,没有归档则等待其归档,等归档完成以后再覆盖写入重做日志记录。
当然如果发生了归档等待的话可以通过添加重做日志组或开启更多的归档进程来避免这个等待事件。
总的来说重做日志归档模式(archivelog mode)及非归档模式(noarchive mode)的最重要的区别就是当前的重做日志切换以后会不会被归档进程(archive process)copy到归档目的地(log_archive_dest)。
一. 非归档模式(noarchivelog mode)的利与弊当oracle数据库运行在非归档模式下,控制文件确定了发生日志切换以后重做日志文件不需要归档,同时对于(日志写进程)LGWR来说此重做日志组是可以直接使用的。
非归档模式(noarchivelog mode)只能提供实例级别的故障恢复,需要介质恢复的时候oracle就爱莫能助了。
如果很不幸的发生了,那么我们只能把数据库恢复到过去的某个时间点上,前提是你完全冷备份了数据库。
从备份时间点到故障发生期间的所有数据都只有丢失了。
而且当oracle运行在非归档模式(noarchivelog mode)下的时候数据库不提供在线的表空间备份,换句话说热备是不可用的。
二. 归档模式(archivelog mode)的利与弊当oracle数据库运行在归档模式下,控制文件确定了发生日志切换后的重做日志文件在归档前是不能被日志写进程)LGWR重用的。
归档模式(archivelog mode)下oracle数据库能从实例,介质的失败中得到恢复,当然最近一次的数据库全备及备份以来的所有归档日志的备份时必须的。
同时我们还能利用归档日志的重放来完成oracle standby的搭建(oracle standby以后会介绍,请大家留意)。
归档模式(archivelog mode)又可以分为手动归档和自动归档,顾名思义手动归档需要DBA的干预;而自动归档,oracle会自己完成归档任务。
通过上面的简单描述我们应该对两种模式的利与弊有所了解了,但是具体选择哪种模式则需要我们从实际情况出发综合考虑。
不过作为生产环境一般都是选用归档模式(archivelog mode)。
接下来将要介绍一下当前模式的查询以及模式的切换。
三. 当前模式查询可以通过以下方式查询当前数据库是运行在哪种模式下的:[oracle@localhost~]$ sqlplus "/ as sysdba"SQL> archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination /u01/oradata/archive_sidOldest online log sequence 9975Next log sequence to archive 9977Current log sequence 9977SQL> select name,log_mode from v$database;NAME LOG_MODE--------- ------------SID ARCHIVELOG四. 模式切换oracle数据库日志操作模式的切换主要有两种: 1. 非归档模式(noarchivelog mode)-> 归档模式(archivelog mode)2. 归档模式(archivelog mode)-> 非归档模式(noarchivelog mode)。
两种模式的切换步骤大致都是相同的,只是在细微处有所差别。
当日志操作模式由归档模式切换到非归档模式的时候需要保证数据不需要介质恢复,也就是说数据库能正常打开。
下面主要介绍一下数据库由非归档模式(noarchivelog mode)-> 归档模式(archivelog mode)。
1. 关闭数据shutdown,最好是正常关闭(不使用abort选项)2. 备份数据库为了防止在模式切换的时候发生不可预知的错误,请先备份一下数据库3. 启动数据库到mount状态SQL>startup mountSQL>alter database archivelog;SQL>alter system set log_archive_dest_1/log_archive_format .... --如果有必要则修改归档目的,归档文件名等参数SQL>alter database force logging; --可选,强制记录日志。
4. 重启数据库五. 相关参数简介在oracle 10g R2中与归档相关的参数有:SQL> show parameter archive;NAME TYPE VALUE------------------------------------ ----------- ------------------------------archive_lag_target integer 3600log_archive_config stringlog_archive_dest stringlog_archive_dest_1 string location=/u01/oradata/archive_sidlog_archive_dest_10 stringlog_archive_dest_2 string SERVICE=tnsnamelog_archive_dest_3 stringlog_archive_dest_4 stringlog_archive_dest_5 stringlog_archive_dest_6 stringlog_archive_dest_7 stringlog_archive_dest_8 stringlog_archive_dest_9 stringlog_archive_dest_state_1 string enablelog_archive_dest_state_10 string enablelog_archive_dest_state_2 string enablelog_archive_dest_state_3 string enablelog_archive_dest_state_4 string enablelog_archive_dest_state_5 string enablelog_archive_dest_state_6 string enablelog_archive_dest_state_7 string enablelog_archive_dest_state_8 string enablelog_archive_dest_state_9 string enablelog_archive_duplex_dest stringlog_archive_format string arch_%t_%s_%rlog_archive_local_first boolean TRUElog_archive_max_processes integer 2log_archive_min_succeed_dest integer 1log_archive_start boolean FALSElog_archive_trace integer 0remote_archive_enable string truestandby_archive_dest string ?/dbs/arch其中log_archive_dest_n为归档日志存放的地址,可以使远程的也可以是本地。
在10g r2中最多支持10个归档目的地(这个数目也就限制了standby的数量最多有9个);与之相对应的是log_archive_dest_state_n,此参数决定了log_archive_dest_n的设置是否启用。
参数log_archive_format 确定了归档日志文件的名称%t表示归档线程号,%s表示日志序列号,t%是重置日志ID(包含时间戳)。
参数log_archive_max_processes确定了启动多少个归档进程。
这几个参数对于我们来说是比较重要的,当然其他的参数也需要了解,具体的介绍请参考oracle administrator guid========================================================================== ===================原文地址:/blog/static/421508120071011103325480/一. 确认日志工作模式:1.查询v$databaseSQL> select log_mode from v$database;LOG_MODE------------ARCHIVELOG表明目前数据库运行在归档日志下,即数据库在归档日志模式下工作。
2.执行命令archive log list;SQL> archive log list归档模式,但是目前自动存档进程未启用!数据库日志模式存档模式自动存档禁用存档终点D:\oracle\ora92\RDBMS最早的概要日志序列214下一个存档日志序列214当前日志序列216二.修改日志工作模式1、由NOARCHIVELOG模式到ARCHIVELOG模式第一步骤:关闭数据库SQL> shutdown immediate;数据库已经关闭。