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数据库)也是至关重要的。
ORACLE归档模式和非归档模式的利与弊
ORACLE归档模式和⾮归档模式的利与弊转:在Oracle数据库中,主要有两种⽇志操作模式,分别为⾮归档模式与归档模式。
默认情况下,数据库采⽤的是⾮归档模式。
作为⼀个合格的数据库管理员,应当深⼊了解这两种⽇志操作模式的特点,并且在数据库建⽴时,选择合适的操作模式笔者今天就谈谈⾃⼰对这两种操作模式的理解,并且给出⼀些可⾏的建议,跟⼤家⼀起来提⾼Oracle数据库的安全性。
⼀、⾮归档模式的利与弊。
⾮归档模式是指不保留重做历史的⽇志操作模式,只能够⽤于保护例程失败,⽽不能够保护介质损坏。
如果数据库采⽤的是⽇志操作模式的话,则进⾏⽇志切换时,新的⽇志会直接覆盖原有⽇志⽂件的内容,不会保留原有⽇志⽂件中的数据。
这么说听起来可能⽐较难理解。
笔者举⼀个简单的例⼦,就会清楚许多。
如现在Oracle数据库中有四个⽇志组,⽇志序列号分别为11、12、13、14。
当数据库事务变化写满第⼀个⽇志组⽂件(序列号为11)时,Oracle数据库就会⾃动切换到第⼆个⽇志组⽂件(序列号为12)中。
依次类推。
当第三个⽇志组⽂件(序列号为13)写满时,就会切换到第四个⽇志组(序列号为14)。
当第四个⽇志组(序列号为14)满时,其就会切换到第⼀个⽇志组(序列号为15)。
这⾥,序列号虽然与刚才第⼀个⽇志⽂件组不同,但是⽇志组仍然是同⼀个。
此时,由于数据库的操作模式选择为⾮归档模式,所以第⼀组⽇志⽂件(序列号为11)中的内容并没有归档。
新的⽇志⽂件的内容将直接覆盖第⼀个⽇志组⽂件中的内容。
若第⼀个⽇志组⽂件(序列号为15)满时,切换到第⼆个⽇志⽂件组时,新的内容⼜会在第⼆个⽇志⽂件组没有归档的情况下,直接覆盖⽇志⽂件12中的原有数据。
通过以上的分析,我们可以归纳出⾮归档操作⽇志模式的⼀些特点。
⼀是当检查点完成之后,后台进程可以覆盖原有重做⽇志的内容。
也就是说,在⽇志切换时,后来的⽇志⽂件内容可以在以前的⽇志⽂件内容没有归档的情况下,覆盖原有⽇志⽂件的内容。
oracle修改归档日志路径与格式
db_recovery_file_dest_size
big integer 4182M
修改: SQL> alter system set log_archive_dest_1 = 'location=/data1/arch' scope=spfile;
四、重启数据库生效
手动切换日志查看是否生成: alter system switch logfile;
----已经开启归档模式
Archive destination USE_DB_RECOVERY_FILE_DEST ----修改此归档路径
Oldest online log sequence 3
Next log sequence to archive 5
Current log sequence 5
二、修改归档日志格式
NAME
TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest
string /oracle/app/fast_recovery_area
log_archive_format
string %t_%s_%r.dbf
修改格式: SQL> alter system set log_archive_format='%t_%s_%r.arch' scope=spfile;
三、修改日志路径
SQL> show parameter DB_RECOVERY_FILE_DEST;
大佬我的初始化后novacell0依旧没数据但是不影响向后指向但是在创建主机后会报错
oracle数据库处理归档日志的步骤
一、了解归档日志归档日志是Oracle数据库中一种重要的日志记录方式,它记录了数据库中所有发生的修改操作,包括插入、更新、删除等。
归档日志的作用是用于数据库的恢复和回滚操作,确保数据库的完整性和可靠性。
二、启用归档模式1. 确认数据库当前日志模式在连接数据库后,可以使用以下SQL语句确认当前的数据库日志模式:```SELECT log_modeFROM v$database;```如果返回结果为ARCHIVELOG,则表示数据库已经处于归档模式;如果返回结果为NOARCHIVELOG,则表示数据库尚未启用归档模式。
2. 修改数据库为归档模式如果数据库尚未启用归档模式,可以使用以下步骤将数据库修改为归档模式:```SHUTDOWN IMMEDIATE;STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;```通过以上步骤,数据库将被修改为归档模式,并可以开始处理归档日志。
三、配置归档参数1. 确认归档目标归档目标是指归档日志文件的存储位置。
可以使用以下SQL语句确认当前的归档目标:```SHOW PARAMETER LOG_ARCHIVE_DEST;```如果没有设置归档目标,需要通过以下SQL语句进行设置:```ALTER SYSTEM SETLOG_ARCHIVE_DEST_1='LOCATION=/archivelog';```其中,/archivelog为归档日志存储的路径,可以根据实际情况进行调整。
2. 确认归档模式归档模式是指数据库在何种情况下触发归档日志的记录。
可以使用以下SQL语句确认当前的归档模式:```SHOW PARAMETER LOG_ARCHIVE_START;```如果归档模式未启用,需要通过以下SQL语句进行设置:```ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE;```通过以上步骤,归档参数将被正确配置,数据库可以开始处理归档日志。
Oracle归档模式和非归档模式的区别
Oracle归档模式和⾮归档模式的区别⼀。
查看oracle数据库是否为归档模式:Sql代码1.select name,log_mode from v$database;NAME LOG_MODE------------------ ------------------------QUERY NOARCHIVELOG2.使⽤ARCHIVE LOG LIST 命令Database log mode No Archive ModeAutomatic archival DisabledArchive destination /data/oracle/product/10.2.0/db_1//dbs/archOldest online log sequence 739Current log sequence 741[sql] view plaincopyprint?1.select name,log_mode from v$database;NAME LOG_MODE------------------ ------------------------QUERY NOARCHIVELOG2.使⽤ARCHIVE LOG LIST 命令Database log mode No Archive ModeAutomatic archival DisabledArchive destination /data/oracle/product/10.2.0/db_1//dbs/archOldest online log sequence 739Current log sequence 7411.select name,log_mode from v$database;NAME LOG_MODE------------------ ------------------------QUERY NOARCHIVELOG2.使⽤ARCHIVE LOG LIST 命令Database log mode No Archive ModeAutomatic archival DisabledArchive destination /data/oracle/product/10.2.0/db_1//dbs/archOldest online log sequence 739Current log sequence 741⼆。
Oracle归档模式及归档日志的操作
ORACLE归档模式及归档日志的操 作
归档模式及归档日志基本概念
为什么要给Oracle做归档操作? Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插 入,删除,更新数据等,对这些操作都会记录在联机重做日志里。 当ORACLE数据库运行在ARCHIVELOG(归档模式)模式时,所有的事务重做日志 都将保存.这意味着对数据库进行的所有事务都留有一个备份,尽管重做日志以 循环方式工作,但在一个重做日志被覆盖前均将为其建立一个副本.在重做日志 文件复制完成之前,ORACLE数据库将停止一切新的操作,在旧的事务记录完成之 前ORACLE不对其进行覆盖.有了所有事务的副本,数据库就可以从所有类型的失 败中恢复,包括用户错误或磁盘崩溃.这是一种最安全的数据库工作方式。在实 际开发中,归档模式是符合开发的,归档模式可以提高Oracle数据库的可恢复 性,生产数据库都应该运行在此模式下,数据库使用归档方式运行时才可以进 行灾难性恢复。
LINUX系统开启归档模式
修改数据库为归档模式(需在关闭数据库后操作,操作完成后启动数据库) alter database 改为非归档,则执行: alter database noarchivelog;)
WINDOWS开启归档模式
删除归档日志释放磁盘空间
先查看归档日志状态: RMAN>list archivelog all; 手工删除归档日志文件(删除7天前的所有归档日志) RMAN>DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; 说明: SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志, 如果使用了闪回功能,也会删除闪回的数据。 同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚, 做完这个删除,最好马上进行全备份数据库。
Oracle归档日志与非归档日志的切换及路径设置
Oracle归档⽇志与⾮归档⽇志的切换及路径设置--====================-- Oracle 归档⽇志--====================Oracle可以将联机⽇志⽂件保存到多个不同的位置,将联机⽇志转换为归档⽇志的过程称之为归档。
相应的⽇志被称为归档⽇志。
⼀、归档⽇志是联机重做⽇志组⽂件的⼀个副本包含redo记录以及⼀个唯⼀的log sequence number对⽇志组中的⼀个⽇志⽂件进⾏归档,如果该组其中⼀个损坏,则另⼀个可⽤的⽇志将会被归档对于归档模式的⽇志切换,当⽇志归档完成后,下⼀个⽇志才能被覆盖或重新使⽤⾃动归档功能如开启,则后台进程arcn在⽇志切换时⾃动完成归档,否则需要⼿动归档归档⽇志⽤途恢复数据库更新standby数据库使⽤LogMiner 提取历史⽇志的相关信息⼆、⽇志的两种模式1.⾮归档模式不适⽤与⽣产数据库创建数据库时,缺省的⽇志管理模式为⾮归档模式当⽇志切换,检查点产⽣后,联机重做⽇志⽂件即可被重新使⽤联机⽇志被覆盖后,介质恢复仅仅⽀持到最近的完整备份不⽀持联机备份表空间,⼀个表空间损坏将导致整个数据库不可⽤,需要删除掉损坏的表空间或从备份恢复对于操作系统级别的数据库备份需要将数据库⼀致性关闭应当备份所有的数据⽂件、控制⽂件(单个)、参数⽂件、密码⽂件、联机⽇志⽂件(可选)2.归档模式能够对联机⽇志⽂件进⾏归档,⽣产数据库强烈建议归档在⽇志切换时,下⼀个即将被写⼊⽇志组必须归档完成之后,⽇志组才可以使⽤归档⽇志的Log sequence number信息会记录到控制⽂件之中必须有⾜够的磁盘空间⽤于存放归档⽇志Oracle 9i 需要设置参数log_archive_start=true 才能够进⾏⾃动归档备份与恢复⽀持热备份,且当某个⾮系统表空间损坏,数据库仍然处于可⽤状态,且⽀持在线恢复使⽤归档⽇志能够实现联机或脱机时点恢复(即可以恢复到指定的时间点、指定的归档⽇志或指定的SCN)三、两种模式的切换设置及⼿动归档1.⾮归档到归档模式a.⼀致性关闭数据库(shutdown [immediate | transactional |normal])b.启动到mount阶段(startup mount)c.切换到归档模式(alter database archivelog [manual])d.切换到open阶段(alter database open)e.对数据做⼀个完整备份(full backup)--演⽰⾮归档到归档模式SQL> ARCHIVE LOG LIST --查看数据库是否处于归档模式Database log mode No Archive ModeAutomatic archival DisabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 14Current log sequence 16SQL> SELECT log_mode FROM v$database; --查看数据库是否处于归档模式LOG_MODE------------NOARCHIVELOGSQL> SHUTDOWN IMMEDIATE; --⼀致性关闭数据库Database closed.Database dismounted.ORACLE instance shut down.SQL> STARTUP MOUNT; --启动到mount状态ORACLE instance started.Total System Global Area 251658240 bytesFixed Size 1218796 bytesVariable Size 75499284 bytesDatabase Buffers 171966464 bytesRedo Buffers 2973696 bytesDatabase mounted.SQL> ALTER DATABASE ARCHIVELOG; --切换到⾃动归档模式Database altered.SQL> ALTER DATABASE OPEN; --切换到open状态Database altered.SQL> ARCHIVE LOG LIST; --查看数据库的归档状态Database log mode Archive Mode --已置为归档模式Automatic archival Enabled --对⽇志进⾏⾃动归档Oldest online log sequence 14Next log sequence to archive 16Current log sequence 16--备份数据库步骤省略2.归档模式切换到⾮归档模式(步骤同⾮归档到归档模式仅仅是c步骤使⽤alter database noarchivelog,演⽰省略)a.⼀致性关闭数据库(shutdown [immediate | transactional |normal])b.启动到mount阶段(startup mount)c.切换到归档模式(alter database noarchivelog )d.切换到open阶段(alter database open)e.对数据做⼀个完整备份(full backup)3.⼿动归档⼿动归档时需要将⽇志模式切换为alter database archivelog manual再使⽤alter system archive log current | all 实现归档更多⼿动归档命令:ALTER SYSTEM archive_log_clause注意:⼿动归档模式下不⽀持stanby数据库在alter database archivelog模式下也可以实现对⽇志的归档SQL> ALTER DATABASE ARCHIVELOG MANUAL; --将⽇志模式切换为⼿⼯归档模式Database altered.SQL> ALTER DATABASE OPEN; --打开数据库Database altered.SQL> ALTER SYSTEM ARCHIVE LOG CURRENT; --对当前的⽇志进⾏归档(建议在mount阶段完成)System altered.SQL> ALTER SYSTEM ARCHIVE LOG ALL; --对所有的⽇志进⾏归档alter system archive log all*ERROR at line 1:ORA-00271: there are no logs that need archiving --没有需要归档的⽇志通过设置LOG_ARCHIVE_MAX_PROCESSES 参数,可以指定数据库规定所需初始化的进程数,缺省的归档进程数为2⼀般情况下不需要修改该参数,Oracle会根据归档情况⾃动启动额外的归档进程也可以动态的增加或减少归档进程数,⽐如有些业务在⽉底需要进⾏⼤量归档,平时则归档较少,对此可以动态修改修改⽅法ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3;5.配置归档(两种归档位置配置⽅法)a.归档到本机且少于等于两个归档位置设置LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST参数alter system set log_archive_dest = '/u01/app/oracle/archivelog1' scope = spfile;alter system set log_archive_duplex_dest = '/u01/app/oracle/archivelog2' scope = spfile;b.归档到本机或远程主机设置LOG_ARCHIVE_DEST_n 参数,n最⼤值为10alter system set log_archive_dest_1 = 'LOCATION=/u01/app/oracle/archivelog3';alter system set log_archive_dest_2 = 'SERVICE=standby1';对于远程归档位置,SERVICE选项需要指定远程数据库的⽹络服务名(在tnsnames.ora⽂件中配置)LOG_ARCHIVE_DEST_n的两个常⽤选项MANADATORY | OPTIONAL:MANADATORY表⽰归档必须成功复制到⽬的路径之后,联机重做⽇志才能被复⽤,OPTIONAL正好相反REOPEN:指定归档失败后指定间隔多少时间重试归案,缺省的为300秒⽰例:log_archive_dest_1 = 'LOCATION=/u01/app/oracle/archivelog3 manadatory reopen = 600'log_archive_dest_2 = 'SERVICE=standby1 manadatory reopen'c.两种归档⽅法异同(前者log_archive_dest、log_archive_duplex_dest ,后者log_archive_dest_n)两者都可以归档到本机,后者可以归档到远程主机,前者不⽀持该功能前者最多配置两个归档位置,后者可以配置10个归档位置两者互不兼容,要么使⽤前者,要么使⽤后者使⽤后者归档到本地时需要增加LOCATION选项,备份到远程主机需要使⽤SERVICE选项但上述两种⽅式未指定路径时,归档⽇志位于db_recovery_file_dest 缺省为$ORACLE_BASE/flash_recovey_aread.归档⽇志命名格式设置LOG_ARCHIVE_FORMAT参数,Unix下的缺省设置为LOG_ARCHIVE_FORMAT=%t_%s_%r.dbf%s: ⽇志序列号:%S: ⽇志序列号(带有前导)%t: 重做线程编号.%a: 活动ID号%d: 数据库ID号%r RESETLOGS的ID值.alter system set log_archive_format = 'arch_%t_%s_%r.arc';e.归档位置状态Valid/Invalid --磁盘位置及服务名等是否有效Enabled/Disabled --磁盘位置的可⽤状态及数据库能否使⽤该归档位置Active/Inactive --访问归档⽬的地是否有异常f.归档成功的最⼩个数(使⽤参数log_archive_min_succeed_dest = n)alter system set log_archive_min_succeed_dest = 2; --缺省为1联机重做⽇志组能够被覆盖的前提所有强制路径归档位置成功实现归档归档⽬的地的成功归档的个数⼤于或等于上述参数设定的值当强制个数⼤于该参数设定的个数,则以强制个数为准当强制个数⼩于该参数设定的个数,则可选的成功归档路径加上强制的归档路径个数⾄少等于该参数设定值g.控制归档的可⽤性(使⽤参数log_archive_dest_state_n)alter system set log_archive_dest_state_1 = enable | deferenable -->缺省状态,可以在该归档位置进⾏归档defer -->禁⽤该归档位置h.演⽰归档路径配置及查看归档进程,归档位置状态SQL> ARCHIVE LOG LIST; --查看⽇志是否处于归档状态Database log mode Archive ModeAutomatic archival EnabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 24Next log sequence to archive 26Current log sequence 26SQL> ho ps -ef | grep ora_arc --查看归档进程是否已启动oracle 4062 1 0 11:43 ? 00:00:00 ora_arc0_orcloracle 4064 1 0 11:43 ? 00:00:00 ora_arc1_orclSQL> SHOW PARAMETER ARCHIVE --查看归档路径是否已设置,为空值表⽰未设置------------------------------------ ----------- ------------------------------archive_lag_target integer 0log_archive_config stringlog_archive_dest stringlog_archive_dest_1 stringlog_archive_dest_10 stringlog_archive_dest_2 stringlog_archive_dest_3 stringlog_archive_dest_4 stringlog_archive_dest_5 stringlog_archive_dest_6 stringlog_archive_dest_7 stringNAME TYPE VALUE------------------------------------ ----------- ------------------------------log_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 enableNAME TYPE VALUE------------------------------------ ----------- ------------------------------log_archive_dest_state_9 string enablelog_archive_duplex_dest stringlog_archive_format string %t_%s_%r.dbflog_archive_local_first boolean TRUElog_archive_max_processes integer 2log_archive_min_succeed_dest integer 1log_archive_start boolean FALSE --该参数在9i中使⽤log_archive_trace integer 0remote_archive_enable string trueSQL> alter system set log_archive_dest = '/u01/app/oracle/archivelog1' scope = spfile; System altered.SQL> alter system set log_archive_duplex_dest= '/u01/app/oracle/archivelog2' scope=spfile; System altered.SQL> alter system set log_archive_format = 'arch_%t_%s_%r.arc' scope = spfile;--设定完毕后需要重新启动实例,在此省略关闭启动信息SQL> ho ls /u01/app/oracle/archivelog1 --查看归档路径下是否存在⽂件或⽂件夹SQL> ho ls /u01/app/oracle/archivelog2 --查看归档路径下是否存在⽂件或⽂件夹SQL> alter system archive log current; --⼿动进⾏归档System altered.SQL> ho ls -l /u01/app/oracle/archivelog1 --在指定的⽂件夹archivelog1已产⽣归档⽇志total 18224-rw------- 1 oracle oinstall 18636800 Jul 28 20:39 arch_1_26_724852763.arcSQL> ho ls -l /u01/app/oracle/archivelog2 --在指定的⽂件夹archivelog2已产⽣归档⽇志total 18224-rw------- 1 oracle oinstall 18636800 Jul 28 20:39 arch_1_26_724852763.arcSQL> ho mkdir /u01/app/oracle/archivelog3 --创建新的归档路径SQL> ho mkdir /u01/app/oracle/archivelog4 --创建新的归档路径SQL> alter system set log_archive_dest_1 = 'location=/u01/app/oracle/archivelog3'2 scope = spfile;System altered.SQL> alter system set log_archive_dest_2 = 'location=/u01/app/oracle/archivelog4'2 scope = spfile;System altered.SQL> shutdown immediate; --关闭实例Database closed.Database dismounted.ORACLE instance shut down.SQL> startup --启动实例后,收到错误提⽰表明两种归档⽅式不兼容ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST--关于上述设置导致的错误处理请参照:⼜⼀例SPFILE设置错误导致数据库⽆法启动SPFILE错误导致数据库⽆法启动--下⾯是正确的处理办法,应当先将⼀种归档⽅式路径置空,此处是将log_archive_dest置空SQL> alter system set log_archive_dest = '' scope = spfile;System altered.--此处是将log_archive_duplex_dest置空SQL> alter system set log_archive_duplex_dest = '' scope = spfile;System altered.--接下来再设定log_archive_dest_1,log_archive_dest_2SQL> alter system set log_archive_dest_1 = 'location=/u01/app/oracle/archivelog3'2 scope = spfile;System altered.SQL> alter system set log_archive_dest_2 = 'location=/u01/app/oracle/archivelog4'2 scope = spfile;System altered.--由于没有配置standby服务器,所以省略配置到远程主机--设定完毕后需要重新启动实例,此时系统能正常启动,在此省略关闭启动信息SQL> alter system archive log current; --进⾏⼿动归档System altered.SQL> ho ls -l /u01/app/oracle/archivelog3/ --查看归档⽇志total 27752-rw------- 1 oracle oinstall 28382208 Aug 2 13:46 arc_1_38_724852763.arcSQL> ho ls -l /u01/app/oracle/archivelog4/ --查看归档⽇志total 27752-rw------- 1 oracle oinstall 28382208 Aug 2 13:45 arc_1_38_724852763.arcSQL> col dest_name format a20;SQL> col destination format a30;SQL> select dest_name,status,archiver,destination,2 log_sequence,reopen_secs,transmit_mode,process3 from v$archive_dest; --查看归档⽬的地的相关状态信息DEST_NAME STATUS ARCHIVER DESTINATION LOG_SEQUENCE REOPEN_SECS TRANSMIT_MOD PROCESS -------------------- --------- ---------- ------------------------------ ------------ ----------- ------------ -------LOG_ARCHIVE_DEST_1 VALID ARCH /u01/app/oracle/archivelog3/ 38 300 SYNCHRONOUS ARCHLOG_ARCHIVE_DEST_2 VALID ARCH /u01/app/oracle/archivelog4/ 38 300 SYNCHRONOUS ARCHLOG_ARCHIVE_DEST_3 INACTIVE ARCH 0 0 SYNCHRONOUS ARCH-----------------------------------------------------------------------------------------------------------------------SQL> alter system set log_archive_dest_state_2 = defer; --停⽤log_archive_dest_state_2System altered.SQL> show parameter log_archive_dest_stateNAME TYPE VALUE------------------------------------ ----------- ---------------log_archive_dest_state_1 string enablelog_archive_dest_state_10 string enablelog_archive_dest_state_2 string DEFER --该路径显⽰为deferlog_archive_dest_state_3 string enablelog_archive_dest_state_4 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 enableSQL> alter system archive log current; --⼿动归档System altered.SQL> ho ls -l /u01/app/oracle/archivelog3; --可以看出archivelog3⽐archivelog4多出⼏个归档⽂件total 124772 --建议将多出⽂件件的使⽤系统命令复制到archivelog4-rw------- 1 oracle oinstall 28382208 Aug 2 13:46 arc_1_38_724852763.arc-rw------- 1 oracle oinstall 1788416 Aug 2 20:41 arc_1_39_724852763.arc-rw------- 1 oracle oinstall 30257664 Aug 2 22:21 arc_1_40_724852763.arc-rw------- 1 oracle oinstall 30257664 Aug 2 22:22 arc_1_41_724852763.arc-rw------- 1 oracle oinstall 30257664 Aug 2 22:22 arc_1_42_724852763.arc-rw------- 1 oracle oinstall 6647296 Aug 2 22:23 arc_1_43_724852763.arcSQL> ho ls -l /u01/app/oracle/archivelog4;total 29504-rw------- 1 oracle oinstall 28382208 Aug 2 13:45 arc_1_38_724852763.arc-rw------- 1 oracle oinstall 1788416 Aug 2 20:41 arc_1_39_724852763.arcSQL> alter system set log_archive_dest_state_2 = enable; --启⽤log_archive_dest_state_2 System altered.SQL> alter system archive log current; --⼿动归档System altered.SQL> ho ls -l /u01/app/oracle/archivelog3; --启⽤后出现了相同的arc_1_44_724852763.arc⽂件total 124856-rw------- 1 oracle oinstall 28382208 Aug 2 13:46 arc_1_38_724852763.arc-rw------- 1 oracle oinstall 1788416 Aug 2 20:41 arc_1_39_724852763.arc-rw------- 1 oracle oinstall 30257664 Aug 2 22:21 arc_1_40_724852763.arc-rw------- 1 oracle oinstall 30257664 Aug 2 22:22 arc_1_41_724852763.arc-rw------- 1 oracle oinstall 30257664 Aug 2 22:22 arc_1_42_724852763.arc-rw------- 1 oracle oinstall 81408 Aug 2 22:25 arc_1_44_724852763.arcSQL> ho ls -l /u01/app/oracle/archivelog4;total 29588-rw------- 1 oracle oinstall 28382208 Aug 2 13:45 arc_1_38_724852763.arc-rw------- 1 oracle oinstall 1788416 Aug 2 20:41 arc_1_39_724852763.arc-rw------- 1 oracle oinstall 81408 Aug 2 22:25 arc_1_44_724852763.arc四、归档⽇志相关视图v$archived_log -->从控制⽂件中获得归档的相关信息v$archive_dest -->归档路径及状态v$log_history -->控制⽂件中⽇志的历史信息v$database -->查看数据库是否处于归档状态v$archive_processes -->归档相关的后台进程信息命令:archive log listSQL> select name,sequence#,registrar,standby_dest,archived,status2 from v$archived_log;NAME SEQUENCE# REGISTR STA ARC S------------------------------------------------------- ---------- ------- --- --- -/u01/app/oracle/archivelog4/arc_1_38_724852763.arc 38 FGRD NO YES A/u01/app/oracle/archivelog3/arc_1_39_724852763.arc 39 ARCH NO YES A/u01/app/oracle/archivelog4/arc_1_39_724852763.arc 39 ARCH NO YES A/u01/app/oracle/archivelog3/arc_1_40_724852763.arc 40 ARCH NO YES A/u01/app/oracle/archivelog3/arc_1_41_724852763.arc 41 ARCH NO YES A/u01/app/oracle/archivelog3/arc_1_42_724852763.arc 42 ARCH NO YES A/u01/app/oracle/archivelog3/arc_1_43_724852763.arc 43 ARCH NO YES A/u01/app/oracle/archivelog3/arc_1_44_724852763.arc 44 FGRD NO YES A/u01/app/oracle/archivelog4/arc_1_44_724852763.arc 44 FGRD NO YES A转:/leshami/article/details/5784713ORA-16032,ORA-09291,ORA-04018的解决⽅法:#原因描述:数据库服务器挂载的⼀块硬盘坏掉了,重新启动操作系统后发现数据库启动不了了,启动报错:ORA-16032: parameter LOG_ARCHIVE_DEST_1 destination string cannot be translated说明:之前Oracle开启过归档⽇志且⽇志就是存储在该块硬盘,后来因为⽇志导致数据库变慢就把归档关掉了。
Oracle 控制归档
Oracle 控制归档在安装Oracle 11g时,默认为数据库运行在非归档模式下,这样可以避免在创建数据库的过程中对生成的重做日志进行归档。
当数据库开始正常运行后,就可以将它切换到归档模式中。
要将数据库在归档模式与非归档式之间进行切换,需要使用带ARCHIVELOG或NOARCHIVELOG子句的ALTER DATABAS语句。
1.改变日志操作模式从Oracle 10g开始,改变日志操作模式已经变得很简单,更容易管理。
在11g中,默认情况下,归档日志会存放到快速恢复区所对应的目录(由初始化参数DB_RECOVERY_FILE_DEST设定),并且会按照特定的格式生成归档日志文件名。
当想要将归档日志放在默认的路径下是,只需执行ALTER DATABASE ARCHIVELOG即可。
改变日志操作模式时,必须以SYSDBA和SYSOPER身份执行相应操作。
将数据库由非归档模式切换为归档式的具体操作步骤:(1)检查当前日志操作模式。
在改变日志操作模式之前,DBA应首先检查当前日志操作模式。
通过查询动态性能视图V$DATABASE,可以确定当前日志操作模式。
示例如下:SQL> select log_mode from v$database;LOG_MODE------------NOARCHIVELOG(2)关闭数据库,然后装载数据库。
改变日志操作模式只能在MOUNT状态下进行,因此必须先关闭数据库,然后重新装载数据库。
需要注意,如果要改变日志操作模式,那么在关闭数据库时不能使用SHUTDOWN ABORT命令。
示例如下:SQL> shutdown immediate;SQL>startup mount(3)改变日志操作模式,然后打开数据库。
将数据库转变为MOUNT状态后,就可以使用ALTER DATABASE语句将数据库切换到归档模式。
改变日志操作模式后,打开数据库。
示例如下:SQL> alter database archivelog;数据库已更改。
(Oracle管理)oracle归档日志管理
(Oracle 管理)oracle 归档日志管理oracle 归档日志管理在 Oracle 中,数据一般是存放在数据文件中,不过数据库与 Oracle 最大的区别之一就是数据库可以在数据出错的时候进行恢复。
这个也就是我们常见的 Oracle 中的重做日志(REDOFILE)的功能了。
在重做日志分成 2 部分,一个是在线重做日志文件,另外一个就是归档日志文件。
这里不详细说明在线重做日志,而是说一下归档日志(ArchiveLog)。
在线重做日志大小毕竟是有限的,当都写满了的时候,就面临着 2 个选择,第一个就是把以前在线重做日志从头擦除开始继续写,第二种就是把以前的在线重做日志先进行备份,然后对被备份的日志擦除开始写新的在线 RedoFile。
这种备份的在线重做日志就是归档日志。
而数据库如果采用这种生成归档日志的模式的话,就是归档日志模式(ARCHIVELOG 模式),反之如果不生成归档日志,就是非归档日志模式(NOARCHIVELOG 模式)。
有了归档日志有什么好处了。
比如在这个月 1 号的时候备份了一次数据,然后过了 10 天,这 10 天生成了成百上千个在线重做日志,突然发现其中有一个数据磁盘出问题了,不能用了,那我该如何是好呢。
如果没有采用归档日志,那么实际上磁盘中只会有几个最新的在线重做日志。
那么我只能要不然把出问题的数据磁盘上所占据的表空间都删除掉。
但是如果是SYSTEM 表空间所涉及的磁盘出错,就没办法这么做了,只能用第二种方法。
那第二种方法就是把 1 号备份的数据拿出来恢复。
那么 1 号到 10 号之间的 10 天的数据都丢了,如果是关键系统,比如证券金融什么的系统,就要让你赔钱赔死掉。
但是如果有了归档日志,那么你这 10 天的重做日志都会存放起来,那么 DBA 首先把 1 号的备份数据恢复,然后再拿这 10 天的 REDO 日志来进行一次数据操作重放,那么就可以完全恢复最新的数据库,不会有什么后果了。
Oracle归档的开启和关闭
Oracle归档的开启和关闭⼀、开启归档1.设置归档⽬录alter system set log_archive_dest_1='location=/arch' scope=spfile;2.设置归档⽇志格式alter system set log_archive_format='arch_%t_%s_%r.arc' scope=spfile;3.⼀致性关闭数据库shutdown [immediate | normal]4.启动到mount阶段(startup mount)5.切换到归档模式(alter database archivelog[manual])6.切换到open阶段(alter database open)7.查看是否归档模式(archive log list;)Database log mode Archive ModeAutomatic archival EnabledArchive destination /arch/orclOldest online log sequence 32855Next log sequence to archive 32859Current log sequence 32859select log_mode from v$database;LOG_MODE-------------------ARCHIVELOGselect archiver from v$instance;ARCHIVE-----------------STARTED8.⼿⼯切换⽇志alter system switch logfile;select name from v$archived_log;⼆、关闭归档1.⼀致性关闭数据库shutdown [immediate | normal]2.启动到mount阶段(startup mount)3.切换到归档模式(alter database noarchivelog)4.切换到open阶段(alter database open)5.查看是否归档模式(archive log list;)Database log mode No Archive ModeAutomatic archival DisabledArchive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 35837Current log sequence 35841select log_mode from v$database;LOG_MODE-------------------NOARCHIVELOGselect archiver from v$instance;ARCHIVE-----------------STOPPED。
oracle数据库归档日志使用情况
oracle数据库归档日志使用情况Oracle数据库归档日志使用情况概述:数据库归档日志是Oracle数据库中一个重要的组成部分,它用于记录数据库的所有变更操作,以便数据库在出现故障或需要恢复时能够通过日志进行数据的恢复。
本文将详细介绍Oracle数据库归档日志的使用情况,包括归档日志的作用、生成方式、存放位置以及管理方法等。
一、归档日志的作用数据库归档日志的主要作用是提供了数据的完整性和可恢复性。
当数据库发生故障,如硬件故障、数据库崩溃或意外删除数据等情况,通过归档日志可以使数据库回滚到故障前的状态或恢复数据至故障发生时的状态。
此外,归档日志还可以用于数据库的灾难恢复、数据库的克隆和备份等操作。
当数据库需要从远程站点进行恢复或克隆时,可以通过归档日志来还原数据库至远程站点的状态,实现数据的同步。
同时,归档日志还可以用于数据库的备份,确保备份是最新的,并且能够完全恢复数据库。
二、归档日志的生成方式Oracle数据库归档日志有两种生成模式,一种是归档模式,另一种是非归档模式。
1. 归档模式数据库处于归档模式时,它会自动将日志文件复制到指定的目录中,以便进行数据的归档和恢复。
在归档模式下,数据库的归档日志会自动生成,并且只有归档日志被才会被复制到指定的归档目录中。
归档模式是默认的数据库模式,它可以通过以下命令进行启用:ALTER DATABASE ARCHIVELOG;2. 非归档模式与归档模式相反,非归档模式下数据库不会自动进行归档操作,也就是说不会生成归档日志。
这种模式适用于对数据的可恢复性要求不高的情况,或者是为了降低数据库的I/O负载,减少磁盘空间的占用。
非归档模式可以通过以下命令进行启用:ALTER DATABASE NOARCHIVELOG;需要注意的是,一旦数据库启用了归档模式,就不能再切换到非归档模式。
因此,在启用归档模式前需要谨慎考虑数据库的需求和成本效益。
三、归档日志的存放位置归档日志的存放位置由参数log_archive_dest_n(n为1-10的整数)指定。
- 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;数据库已经关闭。