Sybase数据库的备份策略 全备+增备
如果设置日志自动清除 则只需进行定期全量备份 不能增量备份
sp_dboption HFTEST,"trunc log on chkpt",true
--如果设置数据库不清除日志
sp_dboption HFTEST,"trunc log on chkpt",false
如果只有全备,恢复就是恢复到全备完成点。
如果是全备 + 增备, 恢复到全备完成点 + 增备任意时刻点(包括增备完成点)。
增备指的就是定时备份日志例句
例:dump tran 数据库名称 to 'D:\log.dat'
根据业务的实际情况,可以制定日志备份的时间间隔
比如:日志每天备一次,或者每小时备一次,或者15分钟备一次。
备份日志的内容 = 上次备份日志的时间 至 本次备份日志 之间的日志。
如果是全备后第一次备日志,则是全备至此次日志备份时的 日志。
dump transaction 数据库名称 with truncate_only
上面的语句是删除目前存在的所有日志。与自动清除日志比,这个是手动删除日志。
如果执行了这个,按照增备的逻辑,就不可能再做增备了,只能等到开启下一次全备后,才能开始新的增备。
dump tran with truncate_only 与 dump tran with no_log相比,功能是一样的。
dump tran with no_log是紧急情况下(日志已满)使用的一种特例,没有特殊情况,不要使用这个语句
实战实例
dump database hanghai_exp from 'D:\databak.dmp' --备份数据库
--设置数据库不清除日志
sp_dboption HFTEST,"trunc log on chkpt",false
在2021-02-01 18:00 想让数据库返回到 2021-02-01 12:00 当时的状态
--加载日志
1.dump tran HFTEST to 'D:\log.dat'
--将数据库恢复至备份时刻
2.load database HFTEST from 'D:\databak.dmp'
--利用数据库日志在备份基础上执行recovery 恢复到指定时间点
3.load tran HFTEST from 'D:\log.dat' with until_time =' 2021/02/01 12:00:00'