在线日志和归档日志对于同步的影响

标签: 在线 日志 日志 | 发表时间:2012-06-01 09:21 | 作者:
出处:http://www.iteye.com

1、什么是在线日志(redo log)
在线日志即数据库目前正在使用的日志组,它属于一组日志文件,不同的数据库对日志组的设置功能有所不同
有的是几个日志文件,有的每组日志有可以设置为几个日志成员,作为冗余差错处理的依据
2、什么是归档日志(archive log)
归档是和在线相对的,归档即当在线日志即将被重复写入的时候数据库将日志进行一次复制,将在线日志复制到归档目录
之后对原在线日志进行覆盖写,当然checkpoint也会在此刻生成,以保证归档日志在今后进行分析时不存在不确定数据
3、什么是SCN号(system change number)
SCN即系统跟踪号,它是明确标识数据库每一个操作的流水号,由时间戳转换得来,无论是DML,还是checkpoint,还是其他管理操作,
数据库都会生成一个唯一的序号,系统会根据这个序号来保证日志文件、数据文件、控制文件的一致性,会根据每种文件中的SCN
号来判断,是否需要回滚,是否需要写入数据文件。每次checkpoint系统都会将上次SCN和下次SCN之间的日志数据写入DISK
之后将SCN+1更新为下一个SCN,这样通过对比数据文件的SCN和日志文件的SCN我们就能够判断数据是否被正常写入DISK了
4、在归档日志中SCN号如何衔接
SCN号在系统中会一直增加,当数据库处于非归档模式下,系统写日志时并不会判断该日志文件是否需要归档就可以重新写入;
但是当数据库处于归档模式,并且下一个归档日志SCN号比目前的SCN号小的时候,日志系统会将该在线日志复制到归档目录下,
之后再进行在线日志的覆盖写入。
所以如果我们需要获得的SCN号已经不在在线日志中了,就需要我们到归档日志中去查找,因为日志中都有记录本日志最小的SCN号
和最大的SCN号,所以通过浏览日志头,我们就可以确定该日志文件是否是我们需要的还是继续NEXT归档日志文件
5、数据库同步该如何处理归档日志和在线日志
对于同步我们一方面要读在线日志,同时对于数据已经被切换到归档日志的情况也要进行归档日志SCN号判断,目的是找到每个
SCN对应的事务,并一一进行分析,不能让任何需要同步的语句漏掉;对于一些中小企业,他们的日志量不大,一般几天才能产生
一个归档文件,同步程序是没有影响的;对于金融、证券等行业客户,由于每天的日志量很大,通常日志每天要产生很多归档日志
在线日志每天要被覆盖几次,那么在获取在线日志的同时就要考虑SCN号的连续性,一定要保证在线日志读不到的日志要去归档日
志中读取,因为数据库一定会产生连续的SCN号的,这个就是我们同步操作监守的原则
6、加大在线日志文件大小的影响
在线日志增大会导致产生归档日志文件减少,但是太大的文件对于数据库系统来说是个比较大的负担,同时不方便查找,所以定义
合适的在线日志大小很重要,通常要考虑几种情况
如果每天产生日志量为A
如果每天最大的交易产生日志量B
共3个日志组,每个日志组文件大小为C
那么C的大小设计为如下时将满足日志不会轻易被归档,也不会因为设置的太大,系统维护困难。
B/2<C<(2A+B)/6)
这样设计的话,基本上日志切换不会太快,同时日志大小又能控制在合理范围。




已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [在线 日志 日志] 推荐:

在线日志和归档日志对于同步的影响

- - ITeye博客
1、什么是在线日志(redo log). 在线日志即数据库目前正在使用的日志组,它属于一组日志文件,不同的数据库对日志组的设置功能有所不同. 有的是几个日志文件,有的每组日志有可以设置为几个日志成员,作为冗余差错处理的依据. 2、什么是归档日志(archive log). 归档是和在线相对的,归档即当在线日志即将被重复写入的时候数据库将日志进行一次复制,将在线日志复制到归档目录.

日志管理

- - CSDN博客系统运维推荐文章
#很关键 [root@client01 ~]# ls /var/log/ anaconda.ifcfg.log. tallylog #关键日志,大部分记录在里面 [root@client01 ~]# ls /var/log/messages /var/log/messages. [root@client01 ~]# ps -ef|grep log #系统日志服务 root.

日志优化

- - 互联网 - ITeye博客
在任何系统中,日志都是非常重要的组成部分,它是反映系统运行情况的重要依据,也是排查问题时的必要线索. 绝大多数人都认可日志的重要性,但是又有多少人仔细想过该怎么打日志,日志对性能的影响究竟有多大呢. 今天就让我们来聊聊Java日志性能那些事. 说到Java日志,大家肯定都会说要选择合理的日志级别、合理控制日志内容,但是这仅是万里长征第一步……哪怕一些 DEBUG级别的日志在生产环境中不会输出到文件中,也可能带来不小的开销.

nginx日志切割

- - haohtml's blog
nginx的日志文件没有rotate功能. 如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件. 第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志. 在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,linux是靠文件描述符而不是文件名定位文件.

flume日志采集

- - CSDN博客推荐文章
1.1.2.  Client端Log4j配置文件. (黄色文字为需要配置的内容). //日志Appender修改为flume提供的Log4jAppender. //日志需要发送到的端口号,该端口要有ARVO类型的source在监听. //日志需要发送到的主机ip,该主机运行着ARVO类型的source.

Flume日志收集

- - 企业架构 - ITeye博客
转: http://www.cnblogs.com/oubo/archive/2012/05/25/2517751.html. Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力.

GC 日志分析

- - 码蜂笔记
不同的JVM及其选项会输出不同的日志. 生成下面日志使用的选项: -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:d:/GClogs/tomcat6-gc.log. 最前面的数字 4.231 和 4.445 代表虚拟机启动以来的秒数.

Nginx 日志滚动

- - Linux - 操作系统 - ITeye博客
Nginx 日志滚动配置. 在linux下配置日志滚动一般都用系统自带的logrotate,但是在之前的使用中发现,如果一个daemon只打开一个日志文件写日志,在logroate的配置文件中使用copytruncate,会有少部分日志丢失. 在对日志要求不是特别严格的情况下这是可行的,但有时候这丢失的几行日志很重要,就需要一个比较严格的日志滚动方法.

分布式日志

- - Java - 编程语言 - ITeye博客
最近完成一个简单的日志管理系统,拿出来跟大家分享一下. 3、支持文件输出、habse输出、mongodb输出. 基于以上三点功能,我们下面详细说明. 说道支持这个功能,有个同事认为没有这个必要,他的观点是log4j的配置不需要经常变动,不需要支持这样的功能;本人的观点是“配置可以进行统一管理、而且正式机跟测试机的log4j的配置肯定会有一些差异的”,因此这个功能是必须的.

nginx cronolog日志分割

- 伟伟 - 高进波博客 - 零起点一步配置你的linux服务器,linux博客,linux教程,web架构 [expanded by feedex.net]
八月 3rd, 2011 Posted in Nginx | 阅读次数: 8 次. nginx cronolog日志分割配置文档,根据下面方法,每小时分割一次NGINX访问日志. cronolog必须在nginx启动前启动,如果是ubuntu,可以将cronolog配置那行写到/etc/init.d/nginx start函数那.