zoukankan      html  css  js  c++  java
  • 事务日志

    日志文件是用来记录数据库每一次修改活动的文件。SQL Server中的每一个数据库都有自己的日志文件,即系统表syslogs,也称为事务日志。事务日志是撤消事务和出现故障时恢复事务的依据。
    在某些情况下,事务日志比数据本身更为重要。
    什么是事务?
    数据库的修改是以事务为单位进行的。一个事务就是一个操作序列,这些操作要么全做,要么全不做,它是一个不可分割的工作单位。任何一个事务具备如下特征。
    (1)执行的原子性(Atomic);
    (2)保持数据的一致性(Consistency);
    (3)彼此的隔离性(Isolation);
    (4)作用的持久性(Durability)。
    上述事务的四个特征被称为事务的ACID准则。
    事务在运行过程中,SQL Server把事务开始、事务结束以及对数据库的插入、删除和更新等每一个操作作为一个日志记录存放到事务日志中。事务中的更新操作首先在数据库缓冲区(内存)中进行,缓冲区分别有用来记录操作活动的数据页(data page)和日志页(log page)。当运行到commit tran时,日志页首先从缓冲区写到磁盘上,而后数据页从缓冲区写到磁盘上,即遵循“先与日志(write_ahead log)”的原则,这样保证出现故障的情况下,通过日志能够得到最大限度的恢复。恢复必须撤消发生故障时还未提交的事务,已完成的事务若仍有未从缓冲区写到数据库设备中,还要重新运行该事务。
    附:创建与装载数据库实例
    use master

    decl are @vedvno int
    select @vdevno=max(convert(tinyint,substring(convert(binary(4),d.low),v.low,1))) 1
    from master.dbo.sysdevices d,master.dbo.spt_values v
    where v.type=’E’and v.number=3
    declare @v_str char(2)
    select @v_str=convert(char(2),@vdevno)
    print @v_str

    disk init
    name=”YDDATA”,
    physname=”D: yb_Data\YDDATA.dat”,
    vdevno=@vdevno 1,
    size=153600
    disk init
    name=”YDINDEX”,
    physname=”D: yb_Data\YDINDEX.dat”,
    vdevno=@vdevno 2,
    size=102400
    disk init
    name=”YDLOG”,
    physname=”D: yb_Data\YDLOG.dat”,
    vdevno=@vdevno 3,
    size=76800

    create database YDMISDB
    on YDDATA=300,YDINDEX=200
    log on YDLOG=150

    use YDMISDB

    execute sp_addsegment indexdev,YTMISDB,YTINDEX
    execute sp_dropsegment “default”,YTMISDB,YTINDEX
    execute sp_dropsegment system,YTMISDB,YTINDEX

    use master

    load database YDMISDB from ‘d:\yd_dump\ydmis_backup.dmp’

    online database YDMISDB

  • 相关阅读:
    bodybuilding
    DBLINK的session无法关闭,报异常!
    失控
    eclipse
    Linux下查看用户列表
    org.apache.commons.httpclient
    java map 遍历
    java String split
    胸上肌到底要怎么练啊!
    POI操作Excel常用方法总结
  • 原文地址:https://www.cnblogs.com/y232995558/p/1386575.html
Copyright © 2011-2022 走看看