• 传送事务日志


    微软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作业将主数据库上的备份拷贝到辅助数据库的机器上。
     

  • 相关阅读:
    NOI-1.1-04输出保留3位小数的浮点数
    百练7619-合影效果-2015正式D题-简单排序&输出格式
    百练6376-二维数组右上左下遍历-2015正式C题
    C++ 开发环境配置
    go语言 http学习
    Git 命令及分支管理学习
    配置go语言编辑环境
    DNS的过程
    Split Array into Consecutive Subsequences
    组委会正在为美团点评CodeM大赛的决赛设计新赛制
  • 原文地址:https://www.cnblogs.com/shined/p/1244537.html
Copyright © 2020-2023  润新知