• 传送事务日志


    微软sql server2005 standby有两个解决方案,一是数据库镜像,而是传送事务日志。本文主要介绍传送事务日志需要注意的地方。生产环境的数据库原先的备份方式是,每天凌晨一个整备,每隔15分钟一个log备份。

    第一步,主数据库上右击 任务 ,传送事务日志


    第二步:
    勾选将此数据库启用为日志传送配置中的数据库

    注意:share为共享文件夹,本例将备份日志放到了辅助服务器上.
    第三步:
    点击 添加,按下图设置

    注:temp1.bak为主数据库的最新完整备份文件,提前已将该备份拷入辅助数据库的share文件夹中.
    第四步:
    复制文件 必须输入备份所在地址

    注:“在以下时间后删除复制的文件”的作业=复制作业,也就是本例中的LSCopy_temp1
    第五步:
    还原事务日志

    注:选无恢复模式后,数据库一直处于还原状态,不能访问,无法验证数据的同步情况。
    备用模式的好处就是可以在restore作业不执行的时候,执行select查询;需要注意的是,有查询连接辅助服务器时,restore会报错。所以尽量不要读取辅助数据库。
    备用模式是通过产生一个tuf的文件来记录的。每进行一次restore,tuf文件就会recreate一次。
    第六步:
    作业执行几天后,出错啦!很多时候不是刚设置完成就暴露这个错误。
    提示如下:
    此备份集中的日志开始于 LSN 22000000007700001,该 LSN 太晚,无法应用到数据库。可以还原包含 LSN 22000000007600001 的较早的日志备份

    原因:主数据库每15分钟的log备份和该功能的backup作业交替执行,乱了手脚。解决办法,主数据库的15分钟log备份是要不得了。这点似乎和oracle的redo、archive差远了。主数据的全备还是没问题的,可以继续保留而且全备很关键。

    总结:
    传送事务日志的原理
    备份主数据库的log,将该log备份restore至辅助数据库,辅助数据库应为还原状态或者备用/只读模式。用T-sql表述如下:

     1restore database temp1
     2from disk='E:\Share\temp1bak'
     3with move 'temp1'to 'G:\data\temp1.mdf',
     4move'Part1'to 'G:\data\temp1_1.ndf',
     5move'Part2'to 'G:\data\temp1_2.ndf',
     6move'Part3'to 'G:\data\temp1_3.ndf',
     7move'trans_log'to 'G:\data\temp1_4.ndf',
     8move'temp1_log'to 'H:\Log\temp1_5.ldf',STANDBY='E:\UNDO\ROLLBACK_UNDO_temp1.BAK',replace;
     9
    10
    11
    12
    13restore log temp1
    14from disk='F:\Share\temp1_backup_200807160115.trn'
    15with move 'temp1'to 'G:\data\temp1.mdf',
    16move'Part1'to 'G:\data\temp1_1.ndf',
    17move'Part2'to 'G:\data\temp1_2.ndf',
    18move'Part3'to 'G:\data\temp1_3.ndf',
    19move'trans_log'to 'G:\data\temp1_4.ndf',
    20move'temp1_log'to 'H:\Log\temp1_5.ldf',STANDBY='E:\UNDO\ROLLBACK_UNDO_temp1.BAK';

    PS:正在还原状态的数据库无法drop,可执行

    restore database temp1
    go
    drop database temp1

    备用/只读状态的辅助数据库,复制中带了主数据库的发布。drop辅助数据库时提示数据库正应用于发布,无法删除。可执行

    1alter database temp1 
    2set OFFLINE
    3go
    4drop database temp1
    5go

    PS:如果是多台standby,那么首先停掉主上的日常log备份,再执行晚上的全备作业。将备份拷贝到多台辅助数据库机器上,使用上述代码恢复数据库的全备份至standby状态。配制主数据库,选择否,辅助数据库已经初始化。将主的备份放到主数据库的机器上,使用辅助数据库上的copy作业将主数据库上的备份拷贝到辅助数据库的机器上。
     

  • 相关阅读:
    实验吧之snake
    实验吧之Canon
    实验吧之紧急报文
    实验吧之deeeeeeaaaaaadbeeeeeeeeeef-200
    Centos Linux 使用Yum安装Go和配置环境
    harbor仓库搭建
    教你怎么半天搞定Docker
    教你分分钟搞定Docker私有仓库Registry
    kubernetes学习:CKA考试题
    Python基础知识
  • 原文地址:https://www.cnblogs.com/shined/p/1244537.html
Copyright © 2020-2023  润新知