DB2或ORACLE数据库,写日志时,线程或进程可以有多个么?

DB2或ORACLE数据库,写日志时,线程或进程可以有多个么? 若不能的话,为什么呢(不考虑性能问题)?显示全部

DB2或ORACLE数据库,写日志时,线程或进程可以有多个么? 若不能的话,为什么呢(不考虑性能问题)?

收起
参与33

查看其它 2 个回答仙道彰的回答

仙道彰仙道彰数据库开发工程师花旗集团

可以是多个;
首先要理解数据库为什么要写日志呢?这主要是为了保持数据库的完整性和一致性;DB2采取的是提前写日志的模式;例如你要向数据库中插入一条数据,你提交确认的命令首先会写到日志里面去,然后才会执行该条插入语句,数据库中才会存在该笔记录;这样做的好处就是,当发生断电之类的是故事,日志文件可以用来把数据库退回到原来的某一个一致性状态。所有被提交确认的事务会被redo,所有未被提交的事务都将回滚;
至于写日志时的线程和进程是否有多个这个取决于数据库的并发性;基本上所有的数据库都是并发处理进程的;所以日志随着进程应该是并发写的;所以说进程可以有多个,多个日志也可以同步写。

互联网服务 · 2017-09-12
  • 事务多并发处理和日志多并发写是两个完全不同的阶段。提前写入模式,多并发事物处理会把相关信息并发写入日志缓存,进入缓存中队列,写入日志的线程从队列中取。
    2017-09-19

回答者

仙道彰
数据库开发工程师花旗集团

仙道彰 最近回答过的问题

回答状态

  • 发布时间:2017-09-12
  • 关注会员:4 人
  • 回答浏览:3697
  • X社区推广