1。是选择无限增大还是选择固定大小,假如选固定大小是不是以后就只需完整备份不需要事务日志备份了?2。事务日志备份时可选择 截断事务日志与备份日志尾部,并使数据库处于还原状态 两者究竟有何区别?一般选哪个?3。如果事务日志选固定大小,以后事务备份时就可能备不全了?因为固定大小了,必定是把前面的日志删除了,只保留最新的一部分,是不是?

解决方案 »

  1.   


    --压缩日志
    backup log '数据库名' with NO_LOG
    backup log '数据库名' with TRUNCATE_ONLY
    DBCC SHRINKDATABASE('数据库名')
      

  2.   

    1。是选择无限增大还是选择固定大小,假如选固定大小是不是以后就只需完整备份不需要事务日志备份了? 
    -----------------------------------
    选择固定大小就更要备份日志,才能回收这些日志空间。
    2。事务日志备份时可选择 截断事务日志与备份日志尾部,并使数据库处于还原状态 两者究竟有何区别?一般选哪个? 
    -----------------------------------
    这是两个完全不同的东西。
    注意,“截断日志”根本就没有备份,而只是截断了,以便回收日志空间。
    备份日志尾部一般是数据库出现问题,还没有来得及把完成的事务写到日志文件里面,
    这个时候“备份日志尾部”就把这些完成的事务写到一个日志文件里面。这个选项通常用不到。
    3。如果事务日志选固定大小,以后事务备份时就可能备不全了?因为固定大小了,必定是把前面的日志删除了,只保留最新的一部分,是不是? 
    -----------------------------------
    不是。比如你的日志空间大小为1G,设置为固定大小。
    每小时会产生100M的日志,那么10个小时之后,你的日志空间满了,就什么数据修改都不能做了,
    SQL Server会报日志空间满不能写日志的错误。
    如果你设置一个作业,每小时自动备份一次事务日志,那么每次备份之后,SQL就能重新利用这些日志空间。
    你的日志空间就总是为1G,而你会得到一批日志文件,每小时一个。LZ花点时间研究一下日志备份,多做试验,就能明白了。
      

  3.   

    backup log '数据库名' with NO_LOG
      

  4.   

    一样的,还是backup log '数据库名' with NO_LOG