Oracle 归档日志介绍

浏览: 4316
     Oracle可以将联机日志文件保存到多个不同的位置,将联机日志转换为归档日志的过程称之为归档。相应的日志被称为归档日志。
一、归档日志
归档日志定义:是联机重做日志组文件的一个副本,包含redo记录以及一个唯一的log sequence number。
归档日志作用:
1、对日志组中的一个日志文件进行归档,如果该组其中一个损坏,则另一个可用的日志将会被归档
2、对于归档模式的日志切换,当日志归档完成后,下一个日志才能被覆盖或重新使用
3、自动归档功能如开启,则后台进程arcn在日志切换时自动完成归档,否则需要手动归档
归档日志用途
1、恢复数据库
2、更新standby数据库
3、使用LogMiner 提取历史日志的相关信息

二、日志的两种模式
1.非归档模式
不适用与生产数据库 创建数据库时,缺省的日志管理模式为非归档模式 当日志切换,检查点产生后,联机重做日志文件即可被重新使用 联机日志被覆盖后,介质恢复仅仅支持到最近的完整备份 不支持联机备份表空间,一个表空间损坏将导致整个数据库不可用,需要删除掉损坏的表空间或从备份恢复 对于操作系统级别的数据库备份需要将数据库一致性关闭 应当备份所有的数据文件、控制文件(单个)、参数文件、密码文件、联机日志文件(可选)

2.归档模式
    能够对联机日志文件进行归档,生产数据库强烈建议归档。在日志切换时,下一个即将被写入日志组必须归档完成之后,日志组才可以使用。归档日志的Log sequence number信息会记录到控制文件之中,必须有足够的磁盘空间用于存放归档日志,Oracle 9i 需要设置参数log_archive_start=true 才能够进行自动归档
   
3、备份与恢复
1、支持热备份,且当某个非系统表空间损坏,数据库仍然处于可用状态,且支持在线恢复
2、使用归档日志能够实现联机或脱机时点恢复(即可以恢复到指定的时间点、指定的归档日志或指定的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 Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 14
Current log sequence 16

SQL> SELECT log_mode FROM v$database; --查看数据库是否处于归档模式
LOG_MODE
------------
NOARCHIVELOG

SQL> SHUTDOWN IMMEDIATE; --一致性关闭数据库
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP MOUNT; --启动到mount状态
ORACLE instance started.
Total System Global Area 251658240 bytes
Fixed Size 1218796 bytes
Variable Size 75499284 bytes
Database Buffers 171966464 bytes
Redo Buffers 2973696 bytes
Database 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 --对日志进行自动归档
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 14
Next log sequence to archive 16
Current 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;         --对所有的日志进行归档


ORACLE 归档日志打开关闭方法 http://www.flybi.net/article/424 
推荐 0
本文由 梁勇 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册