Oracle Archive log
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 数据库归档日志在各行各业中发挥着越来越重要的作用。
本文将对归档日志进行简要概述,分析其作用,介绍解析方法,并讨论应用场景。
最后给出总结与建议。
一、归档日志概述Oracle 归档日志(Archive Log)是一种用于记录数据库事务日志的技术。
它可以将数据库中的更改操作(如插入、更新和删除)记录下来,以便在出现故障时恢复数据。
归档日志采用增量方式记录,即每次更改操作后,日志文件会逐步变大。
二、归档日志的作用1.数据恢复:归档日志可以在数据库发生故障时,用于恢复数据至故障发生前的状态。
2.数据审计:归档日志可以记录所有对数据库的更改操作,方便审计人员追溯和分析数据变更原因。
3.性能优化:通过分析归档日志,可以找出数据库性能瓶颈,为优化数据库性能提供依据。
三、归档日志解析方法1.手工解析:通过编写SQL 语句或使用第三方工具,查询归档日志文件内容,分析日志中的数据。
2.使用Oracle 提供的事件解析工具:如DBMS_LOGSTD.REPORT 等,可以方便地生成归档日志的报表和统计数据。
3.使用第三方归档日志分析工具:如Oracle 的Partner 产品OraInsight 等,可以提供更丰富的归档日志分析功能。
四、归档日志解析的应用场景1.数据库故障排查:通过分析归档日志,可以找出导致数据库故障的原因,快速恢复业务。
2.性能监控与优化:分析归档日志中的SQL 语句执行情况,找出性能瓶颈,优化数据库性能。
3.数据审计与追溯:归档日志可以记录所有数据变更操作,方便审计人员分析和追溯数据变更原因。
4.数据库安全分析:通过分析归档日志,可以监控数据库访问权限和操作,提高数据库安全。
五、总结与建议归档日志在数据库管理中具有重要意义。
对于数据库管理员而言,应充分利用归档日志进行故障排查、性能优化和数据审计等工作。
oracle启用归档日志
oracle启⽤归档⽇志⼀、开启归档1、查看归档信息SQL> archive log listDatabase log mode No Archive ModeAutomatic archival DisabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 244Current log sequence 246当前数据库未开启归档2、设置归档⽬录oracle默认使⽤闪回恢复区DB_RECOVERY_FILE_DEST作为归档路径SQL> show parameter DB_RECOVERY_FILE_DESTNAME TYPE VALUE------------------------------------ ----------- ------------------------------db_recovery_file_dest string /u01/app/oracle/flash_recovery_areadb_recovery_file_dest_size big integer 3882M闪回恢复区在安装过程中有限制其⼤⼩,如果闪回恢复区满了,归档⽇志会⽆法写⼊⽽导致数据库hang住,解决办法可以增加闪回区⼤⼩或者修改归档路径3、修改归档路径修改log_archive_dest_1参数可修改归档⽇志路径(pfile/spfile中参数db_recovery_file_dest指定的⽬录将⽆效)实际上从Oracle 10g开始,可以⽣成多份⼀样的⽇志,保存多个位置,以防不测。
多个位置通过设置不同的log_archive_dest_n 参数实现,archive log list输出中的Archive destination路径只显⽰最新修改的路径。
SQL> show parameter log_archive_dest_1NAME TYPE VALUE------------------------------------ ----------- ------------------------------log_archive_dest_1 stringlog_archive_dest_10 stringlog_archive_dest_11 stringlog_archive_dest_12 stringlog_archive_dest_13 stringlog_archive_dest_14 stringlog_archive_dest_15 stringlog_archive_dest_16 stringlog_archive_dest_17 stringlog_archive_dest_18 stringlog_archive_dest_19 string修改归档路径为/u01/app/oracle/archive_logSQL>alter system set log_archive_dest_1='location=/u01/app/oracle/archive_log' scope=spfile;System altered.重启⽣效4、修改归档⽇志格式SQL>alter system set log_archive_format='ARC%S_%R.%T_%D.dbf' scope=spfile;System altered.重启⽣效5、开启归档需要在mount状态下开启数据库归档,重启⾄mountSQL>shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startup mountORACLE instance started.Total System Global Area 1603411968 bytesFixed Size 2213776 bytesVariable Size 989857904 bytesDatabase Buffers 603979776 bytesRedo Buffers 7360512 bytesDatabase mounted.开启数据库归档SQL>alter database archivelog;Database altered.查看归档情况SQL> archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination /u01/app/oracle/archive_logOldest online log sequence 244Next log sequence to archive 246Current log sequence 246ALTER DATABASE FORCE LOGGING;开启强制归档打开数据库SQL>alter database open;Database altered.6、确认数据库为归档模式SQL>select log_mode from v$database;LOG_MODE------------ARCHIVELOGSQL>select archiver from v$instance;ARCHIVE-------STARTED7、强制⽇志切换先查看当前归档⽇志视图和归档⽇志路径:SQL>select name from v$archived_log;no rows selected[oracle@zml-rhel6 archive_log]$ lltotal 0没有归档⽇志,下⾯执⾏强制⽇志切换SQL>alter system switch logfile;System altered.再次查看视图SQL>select name from v$archived_log;NAME--------------------------------------------------------------------------------/u01/app/oracle/archive_log/ARC0000000246_0963417259.0001_6833bc69.dbf 有归档⽇志产⽣,验证成功关闭数据库归档在mount状态下关闭:alter database noarchivelog⼆、归档⽇志清理1、⼿动物理删除归档⽇志该⽅式利⽤linux的命令find查找N天以前的⽇志,直接删除[oracle@localhost archive_log]$ find . -type f -mtime +2.4-print|xargs ls -rlt-rw-r----- 1 oracle oinstall 16092672 6⽉ 4 20:45 ./ARC0000000606_0977259429.0001_fb0ffee2.dbf-rw-r----- 1 oracle oinstall 38390272 6⽉ 4 22:00 ./ARC0000000607_0977259429.0001_fb0ffee2.dbf-rw-r----- 1 oracle oinstall 32950272 6⽉ 4 22:02 ./ARC0000000608_0977259429.0001_fb0ffee2.dbf该例⼦中查询到2.4天前⽇志列表。
关于Oracle归档介绍
数据库归档模式介绍简介:归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换时,后台进程ARCH会将重做日志的内容保存到归档日志中,当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库。
在Oracle10g中,只要启动数据库的归档模式,Oracle就会启用自动归档,从而避免了10g以前由于用户疏忽所带来的一系列问题。
日志操作模式:ARCHIVELOG(归档),NOARCHIVELOG(非归档)启动Oracle10g数据库的归档模式详细步骤对于非归档模式的数据库改为归档模式(主要以Oracle 10g为参考)使用以下步骤:步骤1(查看数据库的归档状态)首先查看数据库现有模式可使用以下语句,显示数据库处于非归档模式下SQL> select name,log_mode from v$database;NAME LOG_MODE--------- ------------ZHQHDB NOARCHIVELOG也可以用下面的语句[oracle@wangdm ~ 10:28 #9]$ sqlplus / as sysdbaSQL> archive log listDatabase log mode No Archive ModeAutomatic archival DisabledArchive destination ?/dbs/archOldest online log sequence 534Current log sequence 536步骤2(设置归档日志文件路径)SQL>alter system set log_archive_dest_1='location=/u01/arch';该语句含义是设置归档日志文件的存放路径,实际上Oracle 10g以后可以生成多份一样的日志,保存多个位置以防不测例如再添加一个归档日志文件存放位置可使用以下语句SQL>alter system set log_archive_dest_2='location=/u02/arch ';“location=/u01/arch”此目录是要从根目录开始的一个完整的目录详细介绍归档日志文件的存放的两种方法:步骤3(修改数据库为归档模式)关闭数据库SQL> shutdown immediate启动数据mount状态:SQL> startup mount修改数据库为归档模式:SQL> alter database archivelog;打开数据库,查询:SQL> alter database open步骤4(配置归档进程个数)可选初始化参数LOG_ARCHIVE_MAX_PROCESSES用于指定例程初始启动的最大归档进程个数,当将数据库转变为ARCHIVELOG模式时,默认情况下oracle会自动启动两个归档进程.通过改变初始化参数LOG_ARCHIVE_MAX_PROCESS的值,可以动态地增加或降低归档进程的个数,每个实例归档进程数量最多只能为30个取值范围为[0-9 a-t]: ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3 scope=both; 如果设置的归档进程个数超过30如下图会有错误提示其实对于oracle 10g以前的版本还有log_archive_start参数与LOG_ARCHIVE_MAX_PROCESSES结合使用,但是对于10g及后期的版本这个参数完全做废了,如下图数据库已启用归档同时在日志发生切换时日志也会自动归档只是log_archive_start参数值还是false,所以到10G后这个参数就不用理它了步骤5(显示归档日志信息)1.使用ARCHIVE LOG LIST命令可以显示日志操作模式,归档位置,自动归档机器要归档的日志序列号等信息.2.显示归档日志信息.Select name, sequence#, first_change# FROM v$archived_log;Name用于表示归档日志文件名,sequence#用于表示归档日志对应的日志序列号,firs_change#用于标识归档日志的起始SCN值.3.执行介质恢复时,需要使用归档日志文件,此时必须准确定位归档日志的存放位置.通过查询动态性能视图v$archive_dest可以取得归档日志所在目录.SELECT * FROM v$archive_dest;4.显示日志历史信息SELECT * FROM v$loghist;THREAD#用于标识重做线程号,SEQUNCE#用于标识日志序列号,FIRST_CHANGE#用于标识日志序列号对应的起始SCN值,FIRST_TIME用于标识起始SCN的发生时间.SWICTH_CHANGE#用于标识日志切换的SCN值.5.显示归档进程信息.进行日志切换时,ARCH进程会自动将重做日志内容复制到归档目录中,为了加快归档速度,应该启用多个ARCH进程.通过查询动态性能视图V$ARCHIVE_PROCESSES可以显示所有归档进程的信息!SELECT * FROM v$archive_processes;Porcess用于标识ARCH进程的编号,status用于标识ARCH进程的状态(ACTIVE:活动, STOPPED:未启动),log_sequence用于标识正在进行归档的日志序列号,state用于标识ARCH进程的工作状态步骤6(执行手工归档)从oracle database 10g开始,当将日志操作模式转变未ARCHIVELOG模式时,oracle会自动启动ARCH进程.如果要使用手工归档.那么在改变日志操作模式时必须使用命令ALTER DATABASE ARCHIVELOG MANUAL;需要注意,使用手工归档方式,数据库管理员必须手工执行归档命令.如果没有执行手工归档命令,日志组的原有内容将不能被覆盖.ALTER DATABASE ARCHIVELOG MANUAL 命令是为了与先前的版本兼容而保留的,将来的oracle版本会淘汰该命令,使用手工归档方式时,数据库管理员可以执行以下命令归档重做日志:alter system archive log all; --手动归档所有switch的日志alter system archive log sequence 545; --545为日志序列号alter system archive log current; --归档当前联机日志文件arter database archivelog; --用此命令再次将数据库改为自动归档,手动归档一般情况下在10g及后期版本其实已经没什么了注意点1 特别指出的是在Oracle 9i中还要修改参数log_archive_start = true才能生效,oracle 10g中已经废除了该参数,所以不需要设置该参数。
oracle关于归档日志和redo日志问题
oracle关于归档⽇志和redo⽇志问题
使⽤⽤友NC的软件,后台oracle数据库已经使⽤了2年多了,⼀直没有搞清楚redo,归档⽇志是怎么回事。
先来个理论性的知识学习,在深⼊学实际使⽤。
重做⽇志redo log file是LGWR进程从Oracle实例中的redo log buffer写⼊的,是循环利⽤的。
就是说⼀个redo log file(group) 写满后,才写下⼀个。
归档⽇志archive log是当数据库运⾏在归档模式下时,⼀个redo log file(group)写满后,由ARCn进程将重做⽇志的内容备份到归档⽇志⽂件下,然后这个redo log file(group)才能被下⼀次使⽤。
不管数据库是否是归档模式,重做⽇志是肯定要写的。
⽽只有数据库在归档模式下,重做⽇志才会备份,形成归档⽇志。
归档⽇志结合全备份,⽤于数据库出现问题后的恢复使⽤。
查询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 日志归档原理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归档空间的利用率。
第一步:查询数据库的归档模式在Oracle数据库中,归档模式有两种:归档模式(ARCHIVELOG)和非归档模式(NOARCHIVELOG)。
归档模式将数据库的日志文件保存到归档目录中,而非归档模式则不执行该操作。
要查询数据库的归档模式,可以使用以下SQL查询:SELECT log_mode FROM vdatabase;当结果为`ARCHIVELOG`时,表示数据库处于归档模式。
当结果为`NOARCHIVELOG`时,表示数据库处于非归档模式。
第二步:查询数据库的归档日志目录如果数据库处于归档模式,归档日志文件将存储在归档日志目录中。
要查询数据库的归档日志目录,可以使用以下SQL查询:SELECT value FROM vparameter WHERE name ='log_archive_dest_1';查询结果将显示归档日志目录的路径。
这个路径可以是文件系统路径或ASM路径,具体取决于数据库的配置。
第三步:查询归档日志文件的利用率要查询归档日志文件的利用率,可以使用以下SQL查询:SELECT (SUM(blocks) * (SELECT block_size FROM vdatabase)) / (1024 * 1024) AS total_size_mb,(SUM(blocks) - SUM(blocks_remaining)) * (SELECTblock_size FROM vdatabase) / (1024 * 1024) AS used_size_mb, SUM(blocks_remaining) * (SELECT block_size FROMvdatabase) / (1024 * 1024) AS remaining_size_mb,(SUM(blocks) - SUM(blocks_remaining)) / SUM(blocks) * 100 AS used_percentageFROM varchived_log;该查询将返回归档日志文件的总大小、已使用大小、剩余大小和利用率百分比。
查看oracle数据库是否归档和修改归档模式
Oracle分为非归档模式(NOARCHIVELOG) 和归档模式(ARCHIVELOG)。非归档模式不产生归档日志,虽然节省了硬盘空间,但是备份方案选择很有限,通常只能选择冷备份。还原也只能还原到备份那一时刻的数据,通常也仅在开发时使用(据说在数据仓库中也使用),Oracle安装默认就是非归档模式。在生产环境中我们因该使用归档模式,它会产生归档日志,可以使用多种备份和还原方案,对与Oracle管理员来说应该更改模式是必然的选择。
自动归档默认是禁用,需要修改parameter log_archive_start=TRUE才能启用自动归档。
SQL> show parameter log_archive_start
NAME TYPE value
log_archive_start boolean TRUE
SQL>
自动归档模式下强制归档
SQL> alter system switch logfile;
SQL> select * from v$log;
Total System Global Area 320308312 bytes
Fixed Size 730200 bytes
Variable Size 285212672 bytes
Database Buffers 33554432 bytes
SQL> show parameter log_archive_start
NAME TYPE value
------------------------------------ ----------- ------------------------------
oracle归档日志关闭方法
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归档文件解析
oracle归档文件解析
在Oracle数据库中,归档文件(Archive Log Files)是记录数据库操作的重要组成部分,特别是在启用了归档模式的情况下。
归档文件的生成和解析对于数据库的备份和恢复以及数据完整性至关重要。
以下是有关Oracle归档文件解析的一些基本信息:
1.归档模式:在Oracle数据库中,启用归档模式后,数据库会将重要的日志文件保存为归档文件,以便在需要时进行恢复。
2.生成归档文件的条件:归档文件生成的条件通常包括日志切换(log switch)或手动切换,以及达到了特定的归档日志大小或时间限制。
3.归档文件的命名规则:归档文件的命名通常遵循一定的规则,其中包括数据库名称、日志序列号、时间戳等信息。
这有助于在需要时快速识别和检索归档文件。
4.解析归档文件:归档文件的解析可以通过查看归档文件的命名规则和元数据信息来实现。
Oracle提供了一些系统视图,如`V$ARCHIVED_LOG`,用于查看归档文件的相关信息。
5.归档文件的作用:归档文件对于数据库备份、恢复和数据保护非常重要。
它们允许在数据库发生故障时还原到先前的状态。
6.管理归档文件:管理归档文件包括定期备份、清理过期的归档文件,以及确保数据库有足够的空间来存储归档文件。
在进行数据库备份和恢复时,了解和熟悉归档文件的生成、命名规则和解析方法是非常重要的。
这有助于数据库管理员有效地管理数据库的日志文件,确保数据库的可靠性和一致性。
oracle 归档日志概念解释
oracle 归档日志概念解释在Oracle数据库中,归档日志(Archived Logs)是一种重要的数据库日志,用于记录数据库发生的所有变更操作,以便在系统故障或数据损坏时进行数据库恢复。
以下是有关归档日志的一些关键概念和解释:1. 日志文件:Oracle数据库通过日志文件(Redo Log)记录所有对数据库的变更操作。
这包括插入、更新和删除操作。
日志文件的作用是保留数据库的变更历史,以便在需要时进行恢复。
2. 在线日志和归档日志:日志文件分为在线日志和归档日志两种类型。
在线日志包含当前正在进行的事务的日志信息,而归档日志包含已经完成的事务的日志信息。
当在线日志满了或发生特定的切换事件时,其中的日志会被归档到归档目录中。
3. 归档目录:归档日志被存储在一个被称为归档目录(Archive Destination)的特定位置。
这可以是本地磁盘、网络位置或远程服务器。
在配置归档目录时,确保有足够的磁盘空间存储归档日志,因为这对数据库的正常运行和故障恢复至关重要。
4. 日志切换:当在线日志文件满了或发生某些事件时,数据库会执行一个日志切换(Log Switch)。
这时,当前的在线日志文件会被标记为不可用,并且一个新的在线日志文件会开始记录新的变更。
同时,旧的在线日志文件会被归档。
5. 数据库恢复:归档日志对数据库的恢复非常关键。
如果数据库发生故障,系统可以利用归档日志中的信息,从最后一个完整备份以来的任何时间点将数据库还原到一致的状态。
这种恢复过程称为“介质恢复”(Media Recovery)。
总的来说,归档日志是Oracle数据库中一项关键的功能,它确保了数据库的可靠性和一致性,同时提供了故障恢复的能力。
oracle归档日志格式
oracle归档日志格式摘要:一、Oracle归档日志概述1.Oracle归档日志的作用2.Oracle归档日志的类型二、Oracle归档日志格式详解1.归档日志文件名2.归档日志文件扩展名3.归档日志文件头信息4.归档日志文件尾信息5.归档日志记录结构三、Oracle归档日志的应用场景1.数据库故障恢复2.数据迁移3.数据库审计四、Oracle归档日志的配置与管理1.配置归档日志2.查看归档日志状态3.清除归档日志4.管理归档日志文件正文:一、Oracle归档日志概述Oracle数据库中,归档日志(Archive Log)是一种记录数据库操作历史的重要文件,它记录了数据库从创建到现在所有的数据操作,包括数据修改、删除和事务操作等。
归档日志的主要作用是在数据库出现故障时,通过读取归档日志文件来恢复数据。
此外,归档日志还可以用于数据迁移、数据库审计等场景。
二、Oracle归档日志格式详解1.归档日志文件名Oracle归档日志文件名由以下几部分组成:- db_name_arch- log_mode- log_sequence_num- ar_suffix其中,db_name_arch表示数据库名,log_mode表示日志模式(如:NOARCHIVELOG、ARCHIVELOG等),log_sequence_num表示日志序列号,ar_suffix表示归档日志文件后缀(如:.arc、.log等)。
2.归档日志文件扩展名Oracle归档日志文件的扩展名有两种:.arc和.log。
.arc文件是归档日志的当前部分,.log文件是归档日志的当前部分的前一个部分。
在数据库运行过程中,.arc文件会不断地增长,而.log文件会不断地被覆盖。
当.arc文件达到一定大小时,Oracle会将它重命名为.log文件,并创建一个新的.arc文件。
3.归档日志文件头信息Oracle归档日志文件头信息包括日志序列号、日志模式、文件名等。
Oracleg日志查看方法
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的Archive Log模式下的恢复工作档
注意通常Windows版和Unix/Linux版的一些参数写法有差异,请参照各自版本的技术文档。
3. 启动数据库到mount状态startup m ount这样加载了数据库文件,但是不打开数据库。
4. 检查当前的Archive Log归档日志模式archive log list显示的信息是:这时用下面的命令开启数据库的Archive Log模式再次用"archive log list"显示信息,应该是:再用命令alter database open来打开数据库。
上面的工作完了以后,然后,我们可以来进行测试了。
在测试之前,我们来熟悉一下这个归档日志Archive Log是什么样的。
通过Sqlplus 或Svrmgrl以sysdba身份连接到数据库,执行"alter system switch logfile;"在我们指定的F:oraclearchive目录下就可以看到归档日志了。
文件名是我们指定的形同"ORA_0379.arc",其中0379是Oracle自动取的序号.在我们做。
最后,我们要来测试归档模式下的备份恢复有什么不一样。
在非归档模式下,我们一般每天做一次数据库备份(冷备份和热备份的差别仅在于备份时数据库是关闭的还是开启的).这样,我们就拥有了每天一个的备份点,换句话说,我们可以在数据库崩溃的情况下,通过备份介质,将数据库恢复到某一个备份点上。
但是显而易见,这样的备份和恢复是不完全的,我们对于两个备份点之间的数据是无法恢复的。
而在开启了归档模式的情况下,情况不一样了.所有系统的REDO_log重做日志中提交的操作,均会在重做日志重复利用前被保存为归档日志保存下来,也就是说,所有用户对于数据库的每一个操作都被记录在案.这样.在维持我们原先的数据库备份计划的情况下,除了每天一个备份点之外,我们还拥有了没两个备份点之间的所有历史操作记录。
oracle查归档日志位置的语句
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日志介绍Oracle的日志是一种记录数据库操作和事件的机制,它可以帮助数据库管理员进行故障排除、恢复数据以及进行性能优化等工作。
Oracle的日志包括事务日志(Redo Log)、归档日志(Archive Log)和警告日志。
事务日志是Oracle数据库最重要的日志,它记录了数据库中每个事务所做的修改。
当用户在数据库执行更新、插入或删除操作时,事务日志会将这些操作以一种逻辑的方式记录下来。
这样即使数据库崩溃或者非正常关闭,管理员仍然可以通过重放事务日志来恢复数据库到崩溃前的状态,保证数据的一致性。
事务日志还可以用于数据库的恢复、数据迁移和数据库备份等操作。
归档日志是在数据库中启用归档模式后,产生的一种备份。
当事务日志已经满时,归档日志会被创建并存储到归档目录中。
归档日志的主要作用是保证数据的持久性,即使系统发生故障或者备份失败,通过归档日志可以保证丢失的数据可以从归档中进行恢复。
通过应用归档日志,可以将数据库恢复到任意时间点,以实现精确的数据恢复。
警告日志记录了Oracle数据库中的错误信息、警告信息和一些其他的重要事件。
警告日志可以帮助管理员及时发现和解决数据库的健康和性能问题。
警告日志也包含了数据库的启动和关闭过程,以及数据库网络连接问题的信息。
同时,警告日志还能记录数据库的配置变更、数据库资源的使用情况以及一些特殊功能的启用和禁用,这些信息都对于诊断和调优数据库非常有用。
在日常的运维工作中,管理员需要定期查看Oracle的日志以监控数据库的健康状况和及时发现问题。
可以通过查看事务日志来判断数据库的工作负载和事务处理情况,通过分析归档日志可以确定数据库备份的完整性和执行效果,通过检查警告日志可以找到数据库运行中的一些异常,并及时进行修复。
同时,管理员还需要根据实际需求和线上的问题,使用参数文件和跟踪文件进行相关的配置和分析工作。
总之,Oracle的日志是数据库运行和维护的重要组成部分,它们扮演着记录、恢复、诊断和优化数据库的重要角色。
清理oracle日志
清理oracle日志
清理Oracle日志是数据库管理中的重要任务,可以通过以下几
种方式来进行清理:
1. 使用日志归档(Archive Log)功能,Oracle数据库可以配
置为使用归档日志模式,这样数据库日志会被自动归档到指定的位置,可以定期清理已经归档的日志文件,以释放磁盘空间。
归档日
志的清理可以通过RMAN(Recovery Manager)工具或者手动方式进行。
2. 使用日志切换(Log Switch),在Oracle数据库中,日志
文件会不断切换,当一个日志文件写满后,数据库会自动切换到下
一个日志文件。
可以通过手动触发日志切换来间接实现日志的清理,但这通常是在非常特殊的情况下使用,不建议经常性地手动切换日志。
3. 使用日志清理工具,Oracle数据库提供了一些工具和脚本
来帮助管理和清理日志文件,比如可以使用
DBMS_LOGMNR.CLEAN_LOG等存储过程来清理归档日志。
4. 定期备份和恢复,定期备份数据库是非常重要的,备份过程中可以清理不再需要的日志文件,同时在恢复过程中也可以进行日志的清理。
需要注意的是,在进行日志清理时,一定要确保不会影响数据库的正常运行和数据的完整性,建议在清理日志之前先做好备份工作,并且在清理过程中要小心谨慎,避免删除错误的日志文件。
另外,清理日志时要遵循数据库管理的最佳实践和安全规范。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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中的重做日志(REDO FILE)的功能了。
在重做日志分成2部分,一个是在线重做日志文件,另外一个就是归档日志文件。
这里不详细说明在线重做日志,而是说一下归档日志(Archive Log)。
在线重做日志大小毕竟是有限的,当都写满了的时候,就面临着2个选择,第一个就是把以前在线重做日志从头擦除开始继续写,第二种就是把以前的在线重做日志先进行备份,然后对被备份的日志擦除开始写新的在线Redo File。
这种备份的在线重做日志就是归档日志。
而数据库如果采用这种生成归档日志的模式的话,就是归档日志模式(ARCHIVELOG模式),反之如果不生成归档日志,就是非归档日志模式(NOARCHIVELOG模式)。
有了归档日志有什么好处了。
比如在这个月1号的时候备份了一次数据,然后过了10天,这10天生成了成百上千个在线重做日志,突然发现其中有一个数据磁盘出问题了,不能用了,那该如何是好呢。
如果没有采用归档日志,那么实际上磁盘中只会有几个最新的在线重做日志。
那么我只能要不然把出问题的数据磁盘上所占据的表空间都删除掉。
但是如果是SYSTEM表空间所涉及的磁盘出错,就没办法这么做了,只能用第二种方法。
那第二种方法就是把1号备份的数据拿出来恢复。
那么1号到10号之间的10天的数据都丢了,如果是关键系统,比如证券金融什么的系统,就要赔钱赔到死掉。
但是如果有了归档日志,那么这10天的重做日志都会存放起来,那么DBA首先把1号的备份数据恢复,然后再拿这10天的REDO日志来进行一次数据操作重放,那么就可以完全恢复最新的数据库,不会有什么后果了。
在软件开发的时候,由于测试服务器的配置有限,特别是磁盘空间有限,所以有可能要限制REDO文件的大小,有可能就把系统设置为NOARCHIVELOG 模式了。
但是在实际的生产运行环境下,建议一定要使用ARCHIVELOG模式,在一定程度上保证数据的基本安全。
有人可能会怕归档日志造成性能损失。
其实完全是杞人忧天,归档日志只是做一个备份,多耗一些磁盘空间。
在当前的软件系统中,硬盘的存储容量成本已经属于低到可以忽略的地步,而最重要的是数据库的安全。
DBA的任务本来就是确保数据的安全,系统的稳定性是首要保证的。
▋Oracle归档方式下丢失非当前联机日志(Archive Log 三)C:\>del D:\oracle9\oradata\nbxtdb\REDO03.LOGC:\>exitSQL> startupORACLE 例程已经启动。
Total System Global Area 378608760 bytesFixed Size 453752 bytesVariable Size 167772160 bytesDatabase Buffers 209715200 bytesRedo Buffers 667648 bytes数据库装载完毕。
ORA-00313: 无法打开日志组3 (线程1) 的成员ORA-00312: 联机日志3 线程1: 'D:\ORACLE9\ORADATA\NBXTDB\REDO03.LOG'SQL> select group#,sequence#,archived,status from v$log;GROUP# SEQUENCE# ARC STATUS---------- ---------- --- ----------------1 106 NO CURRENT2 104 YES INACTIVE3 105 YES INACTIVE--发现3是非当前日志,并且已经归档SQL> alter database clear logfile group 3;--如果还没有归档则使用:alter database clear unarchived logfile group 3;数据库已更改。
SQL> alter database open;数据库已更改。
--如果损坏的是非当前联机日志文件,一般只需要clear就可以重建改日志文件,但是如果数据库处于归档状态--但日志还没有归档,则需要强性clear。
--建议clear后,特别是强行clear后做一次数据库的全备份--改方法适合于归档和非归档数据库▋Oracle归档模式管理和设置(Archive Log 四)一、什么是Oracle归档模式:Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。
一般数据库至少要有2个联机重做日志组。
当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。
如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。
比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。
这个目录叫做归档目录,拷贝的文件叫归档重做日志。
数据库使用归档方式运行时才可以进行灾难性恢复。
二、如何启动和关闭归档模式1) pfile和spfile 参数中有关归档模式的选项(init.ora)log_archive_start = true ##归档模式是自动还是手工,true为自动,false为手工log_archive_dest_1 = "location=D:\Oracle\oradata\oradb\archive" ##归档日志文件所保存的路径,可以设定多个路径log_archive_format = "%%ORACLE_SID%_%T%_TS_%S.ARC" ##归档日志文件的命名方法,2) 如果是用spfile方式启动的实例,需要动态设定参数,依照下面步骤:SQL> conn / as sysdba;SQL> alter system set log_archive_format='arc_%t_%s_%r.dbf' scope=spfile;System altered.SQL> alter system set log_archive_dest_1 = "location=/opt/app/oracle/oradata/arclog" scope=spfile;System altered.SQL> startup force mount;SQL> alter database archivelog; ##起用归档模式SQL> alter database open; ##打开数据库SQL> archive log list -- 观看日志文件点SQL> alter system switch logfile;##强制系统进行日志切换,可马上观察到归档日志的产生语句已处理。
SQL> archive log list3) 如果是用pfile方式启动的实例,首先要在init.ora 文件中添加上面选项,再依照下面步骤编辑init.ora文件,增加三个参数log_archive_start = truelog_archive_dest_1 = "location=/opt/app/oracle/oradata/arclog"log_archive_format = "arc_%t_%s_%r.dbf"SQL> conn / as sysdba;SQL> shutdown immediate;SQL> startup pfile=’%oracle_home%/init.ora mount;SQL> alter database archivelog; ##起用归档模式SQL> alter database open; ##打开数据库4)停止归档:SQL> conn / as sysdba;SQL> shutdown immediate;SQL> startup mount;SQL> alter database noarchivelog; --关闭归档模式SQL> alter database open;。