浅谈Oracle归档日志

什么是归档日志

归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中.当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库。


如何开启归档模式

  • 查询是否开启归档
[oracle@osc ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Mon Nov 12 17:36:13 2018

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> archive log list; 
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     1124
Current log sequence           1126

由上可见,数据库未开启归档

  • 开启归档模式
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>  startup mount;
ORACLE instance started.

Total System Global Area 2421825536 bytes
Fixed Size                  2255632 bytes
Variable Size             620758256 bytes
Database Buffers         1778384896 bytes
Redo Buffers               20426752 bytes
Database mounted.
SQL> alter database archivelog;

Database altered.

SQL> alter database 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     1124
Next log sequence to archive   1126
Current log sequence           1126

归档已经开启


经常会遇到的问题

错误代码:ORA-00257

在项目中可能经常会遇到ORA-00257归档写满这种情况,先看一下官方描述:

[oracle@osc ~]$ oerr ORA 00257
00257, 00000, "archiver error. Connect internal only, until freed."
// *Cause:  The archiver process received an error while trying to archive
//       a redo log.  If the problem is not resolved soon, the database
//       will stop executing transactions. The most likely cause of this
//       message is the destination device is out of space to store the
//       redo log file.
// *Action:  Check archiver trace file for a detailed description
//        of the problem. Also verify that the
//       device specified in the initialization parameter
//       ARCHIVE_LOG_DEST is set up properly for archiving.

也就是说当空间问题导致归档日志无法继续写入的时候会报错误,当前也只能允许内部链接。
这种情况下也只能最快速的清理归档日志。

清理归档日志

[oracle@osc ~]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Mon Nov 12 17:48:41 2018

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1511487649)
RMAN> crosscheck archivelog all; 
RMAN> delete archivelog until time 'sysdate-1';
RMAN> delete expired archivelog all;

分别看一下这三句话的意思

crosscheck archivelog all

验证的是DB的归档日志即log_archive_dest参数指定位置的文件,当手工删除了归档日志以后,Rman备份会检测到日志缺失,从而无法进一步继续执行。
所以此时需要手工执行crosscheck过程,之后Rman备份可以恢复正常。
也就是说当无法进入rman的时候,可以直接删除归档日志文件,然后再执行这条语句!

delete archivelog until time 'sysdate-1'

这句话是删除当前时间-1天的归档日志

-3就表示保留3天归档日志

delete expired archivelog all

删除过期或无效的归档日志
强烈建议:在删除归档日志后做一次物理备份


为什么会产生上面的问题

当归档日志每天都有大量的生成的时候,说明数据库存在了大量DML语句,而归档日志就是记录这些操作,所以我们要考虑能不能避免这些操作,如:

  • 是不是数据库设计不合理,需要不要进行频繁操作
  • 大量的操作有可能是日志类(日志、操作记录等)的数据,那么是不是考虑把日志表放入非关系数据库中

DML语句:SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心
非关系数据库如文档型文数据MongoDB、键值数据库Redis等

<b style="color:red">在了解了归档日志的副作用后,是否觉得不开启归档模式,更省心一些呢?</b>

下面我们看一看归档模式的优缺点(摘自网络)


归档模式和非归档模式的优缺点

归档模式的优点
  • 可以进行完全、不完全恢复:由于对数据库所做的全部改动都记录在日志文件中,如果发生硬盘故 障等导致数据文件丢失的话,则可以利用物理备份和归档日志完全恢复数据库,不会丢失任何数据。
  • 可以进行联机热备:所谓联机热备,就是在数据库运行状态下,对数据库进行备份。备份时用户对 数据库的使用不受任何影响。
  • 可以实施 Data Guard:可以部署 1 个或多个备用数据库,从而最大限度地提供灾难保护手段。
  • 可以实施 Stream:利用 Stream 技术,可以实现最简单的单向复制到复杂的双向复制、多向复制, 提供更加灵活的数据冗余方案。
  • 表空间可以脱机:可以备份部分数据库,比如重要的表空间。
  • 能够增量备份:只需做一次完全备份,以后只备份发生改变的数据,可以提高备份速度。
  • 更多的优化选项:随着 Oracle 版本升级,在联机热备方面不断有新的优化策略出现。
归档模式的缺点
  • 需要更多的磁盘空间保存归档日志;
  • DBA 会有更多的管理工作,包括维护归档空间、备份归档日志。
非归档模式的缺点
  • 只能进行脱机备份,也就是所谓的“ 冷备份”,和联机备份的“ 热备份” 相对应,数据库必须完全 关闭后备份,在备份过程中数据库不可用;
  • 必须备份整个数据库,不能只备份部分数据库;
  • 不能增量备份,对于 TB 级数据库(VLDB) ,这是一个非常大的缺点;
  • 只能部分恢复,如果数据文件丢失需要恢复,DBA 只能恢复最后一次的完全备份,而之后的所有 数据库改变全部丢失。
非归档模式的优点
  • DBA 的管理工作减少,因为非归档模式不产生归档日志,因此 DBA 不用考虑对归档的管理;
  • 性能会有提升。

非归档模式不生成归档日志,从数据安全角度来说,这种模式缺点是主要的,而优点可以忽略不计。


在了解了归档模式和非归档模式的优缺点后,选择哪种模式各位心里也有点谱,在工作中都应该考虑实际情况去做出合适的选择。最后也请大家一起总结、归纳
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容