db2日志

db2日志配置:
1.配置方式:不可恢复模式和可恢复模式
  1)当数据库配制不可恢复时(对应Oracle的非归档模式),
    默认配置即数据库配置参数(userexit和logretain都为off时)
    只能进行数据库的脱机完全备份,此时日志文件的使用方式为循环覆盖方式,
    首先使用logprimary个日志文件进行记录
    若不能满足单个事务对日志记录的空间要求,则最多可以再使用logsecond个日志文件
         
  2)当配制为可以可恢复类型是(对应Oracle的归档模式),
    支持联机完全备份和联机表空间备份,
    (oracle中只有联机备份的概念,联机备份所有表空间也就完成了联机完全备份,呵呵)
    用以下命令:update db cfg using logarchmeth1 userexit
    由于userexit包含了logretain的功能所以就不说了logretain了
    userexit是DB2提供的一个工具,它能每五分钟在日志目录中检索可以归档的记录并转移到其他目录中
    这种方式和不可恢复模式的区别是日志不是被覆盖了而是被归档了,
    其他如果非要说有的话就是logsecond可以被设置成-1,也就是不用logsecond了
    确实在可恢复模式下logsecond根本没有存在的必要


2.这些参数配置大小:
  这里logprimary和logsecond分配的日志文件本身没有任何区别,只是logprimary是
  固定使用的,而logsecond是在logprimary不够用的情况下动态创建的,若logprimary
  够用,则不会实际创建logprimary对应的文件,
  无论是在不可恢复模式还是可恢复模式下若logprimary+logsecond还是不能满足
  某个事务的日志记录空间需求,则数据库就会报错说日志已经满了,
  若不需要更改日志的归档方式的情况下可以修改对应参数或他们的组合增加日志,
  修改前别忘了备份数据库哦~
     
  /*file_size 是一个数值表示4K页的个数,增大这个参数即可*/
  update db cfg using logfisiz file_size

  /*file_number 表示logprimary日志的个数,增加的值即可*/
  update db cfg using logprimary file_number

  /*file_number 表示logsecond日志的个数,增加的值即可*/
  update db cfg using logsecond file_number

  以上命令的具体值要根据实际情况来的,所谓的实际情况无非就是在
  logprimary(主日志文件个数)和logfilsiz(日志文件大小)之间做一个权衡
  如果都比较大数据库管理日志的开销就大,
  logsecond(辅助日志文件)只是应急来用的,由于是动态分配的,
  开销比较大所以肯定不能用到它,也就是logprimary要满足基本需求
  如果logfilsiz太小就会频繁创建新日志文件开销也就大了,
  如果logfilesiz太大了,自动恢复时间会很长,在不可恢复模式下
  日志里面放的数据越多可能丢失的数据也就越多


 

你可能感兴趣的:(db,db2,数据库,file,oracle,工具)