SinoDB的物理日志和逻辑日志

本文详细介绍了数据库系统中的物理日志与逻辑日志的区别及其应用场景。物理日志记录数据页变化,主要用于系统恢复;逻辑日志记录事务细节,支持事务回滚与恢复。文章还提供了创建物理日志的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

物理日志(Physical logging)
  • 如果一个数据也被更改了,物理日志将存储该数据页的before-image(即该数据页被更改前的数据)
  • 物理日志由磁盘上连续的数据页组成,是由一个或两个物理日志文件构成,这些文件在物理存储上是连续的
  • 用于系统失败时的恢复(recovery)
逻辑日志(Logical logging)
  • 记录了事务(transaction)的细节
  • 事务的记录(Transaction records)被保存在逻辑日志中
  • 逻辑日志由逻辑日志文件组成。每个文件由磁盘上连续的数据页组成
  • 用于事务回滚(transaction rollback)和系统失败时的恢复(recovery)

在系统初启时,物理日志和逻辑日志都自动建立在root dbspace

案例:创建一个20GB的物理日志plogdbs

步骤1:创建Dbspace文件

# cd /home/informix/dbspaces
# touch plogdbs

步骤2:设置权限

# chmod 660 plogdbs

步骤3:分配Dbspace空间

# onspaces -c -d plogdbs -p /home/informix/dbspaces/plogdbs -o 0 -s 20000000

步骤4:通过onparams将物理日志迁移到plogdbs上:

# onparams -p -s 1999900 -d plogdbs -y

步骤5:观察日志信息

# onstat -l
结果:



Physical Loggin的phybegin为2:53,表示物理日志的存储是从Chunk编号为2的第53的page中。

flags字段说明:
A:Added,新增加的逻辑日志文件,仅当建立一个(根dbspace的)0级archive后才能使用
F:Free,该逻辑日志文件空闲并可以使用。
U:Used,该逻辑日志文件正在使用而未释放,OnLine恢复时还需要该文件(回滚一个事务或找到上一个检查点记录)
B:Backed-UP,该逻辑日志文件已备份。
C:Current,该逻辑日志文件是当前正在填充的逻辑日志文件。
L:Last,该逻辑日志文件包含有最近一次检查点记录,在新的检查点记录写入另一个日志文件之前,该文件及后面的逻辑日志文件不能释放。

所有状态标志的可能组合
A------:上次0级archive以来新增加的逻辑日志文件,暂时不能使用
F------:空闲
U------:正在使用,还没有备份
U-B----:日志已备份,恢复时还需要
U-B---L:日志已备份,包含上次检查点记录,恢复时还需要此文件
U---C--:当前日志文件 
U---C-L:当前日志文件,并包含上次检查点记录

SinoDB有以下4种日志模式:
无日志模式:数据库所有DML操作都不会被记录到日志中,并且影响的行也不会被写入日志,只记录操作本身以及返回的代码。
优点:极大的减少了磁盘的I/O,拥有很高的吞吐率
缺点:数据库不支持事务控制,如果数据库出现问题,则无法恢复

# ondblog nolog stores_demo
# ontap -N stores_demo
无缓冲日志模式:数据库所有操作在发生时,被写入缓冲区中,当事务被提交时,立刻写到磁盘。
优点:当系统发生问题时,可以保证数据丢失最少,数据完整性和一致性可以在事务级得到保证
缺点:增加了磁盘的I/O,影响数据库的性能

# ondblog unbuf stores_demo
# ontap -U stores_demo

缓冲日志模式:数据库所有操作在发生时,被写入缓冲区中,当缓冲区被写满之后或者发生检查点操作,才会写到磁盘。
优点:大大减少磁盘的I/O,提高数据库的性能
缺点:当系统发生问题需要进行恢复时,缓冲区的数据将丢失,无法恢复

# ondblog buf stores_demo
# ontap -B stores_demo
ANSI模式:与无缓冲日志模式基本相同,需要强制要求与ANSI模式的事务处理方式一致

# ondblog ansi stores_demo
# ontap -A stores_demo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值