实验一:SQL server 2005高可用性之----日志传送

如转载,请注明出处:http://blog.csdn.net/robinson_0612/archive/2009/10/31/4751070.aspx

 

 

      SQL server 2005高可用性之日志传送是在SQL server 2000 日志传送基础之上的延续,两者其本质上并没有太大的差异。日志传送能够同步位于不同服务器或同一服务器不同实例之间的数据库,通过将主服务器上备份出来的一系列日志自动传送到辅助服务器上并进行恢复。当主服务器宕机的时候,日志传送功能并不能实现从主服务器到辅助服务器的自动故障转移功能,需要手动将辅助服务器切换到联机状态,使得辅助服务器上数据库来提供服务,从而实现数据库的高可用性。

     一、实验目的:配置SQL server 2005日志传送、监控日志传送状态及故障转移。

     二、日志传送使用的场景

        1. 可用于支持Reporting server,通过指定standby模式来实现相应的查询功能,并保持与主体数据库同步。

        2. 可用于初始化镜像数据库,使得镜像中主体数据库与镜像中的镜像数据库在时间上,时点延迟上更接近,加快镜像会话的实现。

        3. 实现数据库的版本更新或迁移到新平台,有利于最小化应用程序的宕机时间。

        4. 实现多个将多个主数据库的数据备份到一个辅助数据库,节省资源和开支。

 

     三、实现日志传送的组成部分

        1. Primary server(Primary database):  主服务器中用于实现日志传送的主体数据库

        2. Secondary server(Secondary database):   辅助服务器中恢复日志文件的数据库,可以为多个主服务器提供日志备份。

        3. Monitor Server: 可选的监视服务器,用于记录日志传送过程中出现的异常情况,失败时给出警告,存储在msdb数据库中。

 

     四、实现日志传送所需的环境

        1. 至少两台SQL server 2005服务器,或同一服务器的两个实例。

        2. SQL server 2005的版本要求为Standard, Workgroup, Enterprise, or Developer Edition之一。

        3. 主体服务器的主体数据库使用完全恢复模式(FULL)或大容量日志恢复模式(Bulk-Logged)。

        4. 主体服务器中SQL server Agent服务启动帐户拥有对存放备份日志文件目录读写的权限,辅助服务器中SQL server Agent启动帐户一是要有对主服务器上存放备份日志文件目录读的权限,用于从主服务器复制日志文件,二是要拥有辅助服务器上存放用于恢复日志文件目录读写的权限。用于将复制过来的日志文件写入恢复日志文件目录。不建议将备份出来的日志文件存放到主服务器,可以考虑放到文件服务器上,减少主服务器的I/O。

        5. 若主服务器备份出的日志文件要存放到其他服务器或文件服务器,请使用Windows域用户帐户启动主服务器的SQL server Agent服务。

        6. 启动主体服务器和辅助服务器的SQL server Agent服务,若有监视服务器,也应当启动监视服务器的SQL server Agent服务。

 

     五、实现日志传送所需要用到的几个作业

       1.  备份作业(backup job): 运行在主服务器上,为每个实现日志传送数据库创建一个备份作业,备份主体数据库日志,删除旧的日志文件或历史记录信息,并将其记录到主服务器和监视服务器上。

       2.  复制作业(copy job):  运行在辅助服务器上,将备份文件从主服务器复制到辅助服务器,并记录信息到辅助服务器和监视服务器上。

       3.  还原作业(restore job):  运行在辅助服务器上,为每个日志传送配置创建一个还原作业,恢复从主体数据库传送过来的日志,删除旧的日志文件或历史记录信息,并将其记录到辅助服务器和监视服务器上。 

       4.  警报作业(alter job): 运行于监视服务器上,警报作业由使用监视器服务器实例的所有日志传送配置中的主数据库和辅助数据库所共享。

 

     六、本次实验的环境

       1. windows xp pro (英文版) + sp2

       2. SQL server 2005 Developer + sp3

       3. 同一主机的三个实例: ROBINSON , ROBINSON/MIRROR,ROBINSON/WITNESS

       4. 用于日志传送的数据库为Ecustom_qah

       5. 因在同一服务器上实现日志传送,本实验没有增加SQL server Agent 服务帐户,用的是Local system帐户启动SQL server Agent 服务。

 

    七、具体实验步骤如下

       1. 设定共享目录,在主服务器上设定Backuplog并共享,使主服务器上的SQL server Agent 服务帐户拥有读写的权限,使辅助服务器上的SQL server Agent 服务帐户拥有读的权限。Backuplog用于存放主服务器备份出来的日志文件。

       2. 辅助服务器上设定Resotrelog,使辅助服务器上的SQL server Agent 服务帐户拥有读写的权限。Resotrelog用于存放从主服务器复制过来的日志文件,用于恢复。

       3. 在辅助服务器上设定一个初始化数据库的文件夹Databckup并共享,使辅助服务器上的SQL server Agent 服务帐户拥有读写的权限。Databckup用于存放Ecustom_qah的mdf文件和ldf文件。

       4. 测试以上的设置可以正常使用,因本实验在同一台服务器上执行,故仅仅是在D:盘下设定了Backuplog、Resotrelog、Databackup并设定相应权限。

       5. 启动相关服务。在SQL Server Configuration Manager中查看各个实例的MSSQLSERVE 和SQL server Agent是否启动,如下图:

                 image

 

        6. 查看用于日志传送的主数据是否处于FULL或Bulk-Logged恢复模式,如不是,请修改其为FULL或Bulk-Logged恢复模式。

            也可以使用如下语句来修改恢复模式: Alter database Ecustom_qah  set recovery FULL。

        7. 启动SSMS并连接到主服务器,展开databases文件夹,右单击Ecustom_qah,选择Properties,选择Transaction Log Shipping,选择Enable This As A Primary Database In A Log Shipping Configuration后单击Backup Settings设置。

        8. 输入备份文件夹网络路径,当备份文件夹位于主服务器上时,输入主服务器上的文件夹。

        9. 设定超6分钟后删除日志文件,并设定3分钟没有备份则提示报警。

 

 

           image

 

        10.单击Schedule,设定日志的备份频率,为每2分钟备份一次日志文件。

        11. 单击 Add 按钮添加Secondary server.

        12. 单击connect,连接Secondary server,输入帐户和密码,选择secondary database为Ecustom_qah,在Initialize Secondary Database中,因我们没有对初始数据库进行备份,故在此处选择generate a full backup,并设定其Restore options,设定数据文件和日志文件的位置在辅助服务器上的所在的文件夹 。

        13. 如果在设定日志传送之前已经备份了数据库或已对辅助数据库初始化可以选择restore an existing backup或the secondary database is initialized.

 

          image

 

      14. 在copy files选项卡设定复制文件的目的文件夹,设定删除已复制的文件的时间间隔为6分钟,复制频率为每2分钟复制一次日志文件。       

          image

 

        15. 在Restore Transaction Log选项卡中设定No recovery模式,并设定延迟为1分钟,恢复每2分钟发生一次,超过4分钟日志没有恢复则报警。

            image

 

 

        16. 设定完Restore Transaction Log后,回到log shipping 主界面,勾选use a monitor server instance,选择settings选择ROBINSON/WITNESS并设定15分钟后删除历史记录。

             image

        17. 按以上设定完毕后,点击ok,系统开始按所设定配置日志传送,如果有错误发生,系统会给出警告,按警告提示更正相关错误。

        18. 如设定无误后,连接到MIRROR实例和WITNESS实例,则在各个实例之间的jobs会出现相关作业,在MIRROR实例中出现数据库Ecustom_qah(Restoring)如下图所示:

 

        image image  

        image image

 

        19. 打开设定的文件夹检查主服务器的备份情况和辅助服务器上复制过来的日志文件。

         image

          image

        至此SQL server 2005日志传送配置完毕。

     八、监控日志的传送

       1. 通过存储过程查看日志传送的情况

             如在主服务器上执行:sp_help_log_shipping_primary_database 'Ecustom_qah'

                在辅助服务器上执行:sp_help_log_shipping_secondary_database 'Ecustom_qah'

             也可以在监视服务器上执行脚本来跟踪日志的传送情况,如下图:

          image

 

        2. 通过摘要中报表模块下的事物日志传送状态来动态查看和跟踪事务日志的情况。

            因本机所使用SQL server 2005的版本为Developer + sp3 ,所以无报表模块功能,什么原因待考证。笔者曾在SQL server标准版(中文)中看到有报表且有事物日志传送状态功能但安装了sp3中文补丁后则不再有此功能。如有知其原因者可以给我留言。

        3. 通过警报作业将故障通知道相关人员。

            在监视服务器上我们可以看到有两个警报作业,即Alters下,我们可以看到Log shipping Primary Server Alert和Log shipping Secondary Server Alert。.默认的情况,如果监视到错误,并不会做任何通知,我们可以通过新建操作员(Operators)来接受相关报警信息。同样,我们也可以在主服务器和辅助服务器上设定操作员来接受相关报警信息,可以通过消息,邮件等形式,前提是需要配置数据库邮件或启动操作系统中的Messenger信使服务等,如本试验中设定的启动了Messenge服务后,则得到如下图的提示:

       image

        4. 对于常见的SQL server故障,我们可以通过查看操作系统的事件查看器或SQL server日志来发现问题。

     九、事务日志模式

           在设置辅助数据库时,对于恢复事务日志Restore Transaction Log选项卡,我们设定了为No recovery mode,还有一个可供选择的则为Standby mode。在事物日志的传送过程中,恢复事务日志Restore Transaction Log与我们普通的恢复不同,一般情况下的恢复是回滚所有未提交的事务,前滚所有已提交但未写入磁盘的事务。事务日志中,如果一个事务回滚,所有改变的数据将会被丢失,因为在这个时候,你并不知道下一事物究竟是回滚还是提交。故在事务日志传送中提供了No recovery mode和Standby mode,两者的介绍如下:

        1. 无恢复模式(No recovery mode):既不前滚也不回滚未提交的事务,数据不可读。

        2. 备用模式(Standby mode):在恢复日志期间回滚所有未提交的事务,并且将所有未提交的事务保存为一个单独的Transaction Undo File(TUF)文件,恢复过程通过该文件来维护事务的完整性,当恢复下一个事物的时候则恢复所有已提交的事务。Standby mode中的复选框勾选则当日志恢复的时候,断开所有用户的连接,如果有一个用户没有断开,则还原无法进行。

 

 

     十、演示Standby mode查看日志传送及故障转移

        1. 将No recovery mode切换到Standby mode 。此操作在主服务器上打开Ecustom_qah 的 properties,选择Transaction Log shipping,点击辅助数据库后的… 号打开Restore Transaction Log,直接点击Standby mode即可,可以勾选当日志恢复的时候断开所有用户的连接。如果设定的复制和恢复间隔时间很短,则当主服务器上所有在Restoring模式下的备份出来的日志文件在辅助服务器上恢复完毕后,会自动在复制到的目录中产生一个tuf文件。且辅助服务中Ecustom_qah 数据库由restoring显示为standby/read-only模式。如果设定的复制和恢复间隔时间很长,可以手动执行辅助服务其中的copy 作业和restore作业,将主服务器上所有未复制的日志文件复制到设定的恢复目录(restorelog)中,然后恢复到辅助服务器中。同样也可以将Standby mode切换回No recovery mode。图略。

        2. 可以通过在原始数据库中创建新的表或表中插入记录在到辅助数据库中检查该变化是否亦同步,前提是使用Standby mode,此演示省略。

        3. 故障转移

  • 在主服务器Ecustom_qah数据库中,删除complex表中字段code_ts中以04开头的记录,delete from complex where code_ts like '04%'。
  • 停止主服务器的MSSQLSERVER服务,然后删除主服务器中的Ecustom_qah数据库的mdf文件来模拟主服务器故障。
  • 重新启动主服务器的MSSQLSERVER服务服务,在主服务器master中执行备份尾部日志。

             backup log Ecustom_qah to disk ='D:/Restorelog/last.bak' with no_truncate

  • 将主、辅助、监视服务器上日志传送的几个作业禁用(Disable) 。
  • 在辅助服务器上执行copy作业和resotre作业将未复制过来的日志复制到恢复目录并全部恢复完毕。
  • 将尾部日志恢复到辅助服务器辅助数据库中并使辅助数据库Ecustom处理联机状态。在辅助服务器master数据库中执行如下脚本:

              restore log Ecustom_qah from disk = 'D:/Restorelog/last.bak' with norecovery;
              go
              restore database Ecustom_qah with recovery;
              go

  •  改变应用程序的连接字符串,使应用程序连接到辅助服务器的辅助数据库,此时辅助服务器的辅助数据库已变成为主服务器主数据库。
  •  当原始主服务器修复后,再重新配置日志传送即可。

转载于:https://www.cnblogs.com/zlja/archive/2009/10/31/2449443.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

反向代理服务器

一 反向代理服务器简介      反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代…

location 拦截所有_让它帮你干掉所有流氓软件,还你一个清静系统

最近大家应该都要复工了吧!我们又到了捧着电脑跑来跑去的日子,不过相比在家,复工还是蛮激动的。今天队长聊一下电脑软件。电脑这种东西,现在虽算不上是生命之源,但是复工上班工作或者交作业的时候那可真是当祖宗供着的…

grub4dos和winsetupfromusb1.4

其实grub4dos也是一个多系统启动盘制作软件,GRUB4DOS 最大的成功之处就是既学习了windows的方便易用,又引入linux的强大功能。http://baike.baidu.com/link?urlvFkYDEOTmdnw0dLueYeNz0V48egdnjpHczS3YwWiSsXtM7krYaE6KiDohCT4hlo5-LihtQU7fYhXuURazx_OK…

一份完整的问卷模板_一份完整市场推广策划方案模板

完整的市场方案主要分为以下几大板块,在策略撰写的过程中,依据策略优先级按照以下三个步骤划分,前后承接。为避免无用功,尽量确定前一部分后,再开始后一部分!方案目录,记住这个!整个…

Application是什么

2019独角兽企业重金招聘Python工程师标准>>> 1:Application是什么? Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息。通常我们是不需…

linux mysql udf打包_Linux下MySQL 5.1编写UDF 并运行(Install)获取当前时间的毫秒数...

Mysql 无法获取当前时间的毫秒数自行定制UDF,以提供current_ms方法1. 编写 C 文件#ifdef STANDARD#include lt;stdio.hgt;#incMysql 无法获取当前时间的毫秒数自行定制UDF,以提供current_ms方法1. 编写 C 文件#ifdef STANDARD#include #include #ifdef _…

Daily Scrum 2012/11/08

TeamSH-IT 今天经完成了之前在数据定义存在一些问题。sui老师经过小组之间的交流,完成了对数据定义的最终版。周末将进行初步的整合和测试。 详细的完成情况: 组员今天任务明天任务Hu Renjun 任务213 整合各个模块功能 完成完整的数据流过程 任务213 …

部分不能激活Win 7 的问题分析和解决方案

前言 总所周知,目前Win7的激活程序多如牛毛,但总有些朋友的机器就是激活不了,以至于要刷BIOS等高危操作。 本文通过对Win7激活程序的原理分析,介绍一种能够解决大部分OEM版系统激活Win7的方法,希望能够帮助需要的朋友…

MFC字体

GDI字体分3类:点阵字体(raster font)、笔画字体(stroke font)和Truetype字体。 默认点阵字体有7种: System (用于SYSTEM_FONT) 无衬线 西方 有衬线 gb2312…

decimal double java_Java BigDecimal和double BigDecimal类

BigDecimal类对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作。BigDecimal类的常用方法如表11-15所示。表11-15 BigDecimal类的常…

分享45套2011年和2012年的高质量免费网站模板

日期:2012-11-11 来源:GBin1.com 前端时间我们分享了12套超酷的后台管理员界面网站模板,相信看过的朋友肯定已收入囊中了,今天呢,我们继续推荐45套高质量的免费网站模版,相信如果需要自己搭建网站的朋友肯…

水晶报表中对某一栏位值进行处理_【节能学院】能耗管理系统在某超市嘉兴店二期工程的设计与应用...

摘要:随着社会生活水平的提高,经济的繁荣发展,人们对能源的需求逐渐增长,由此带来的能源危机日益严重。学校建筑如何实时的了解、分析和控制学校的能源消耗已成为需要解决的迫在眉睫的难题。传统的能源消耗智能以月/季度/年为周期…

python数据分析天气预报论文_用python+sklearn(机器学习)实现天气预报数据 模型和使用...

项目地址系列教程0.前言在上一篇教程里我们已经获取了所需要的全部数据,包括训练数据集和测试数据集,使用ProcessData()调用,所以接下来写模型的建立和预测1.建立模型没段代码在文章后面都会整合成一段,分段展示只是便于阅读a.准备…

偶然在网上看到的题目,jQuery功底如何一测便知晓!!!!!!

笔者最终实现的效果如下:    参考答案下载地址 通过手写html代码实现如图效果:以下题目全部使用jQuery来做 当点击“加载数据”按钮时根据提供的数据通过jQuery动态创建表格数据填充该表格。数据见data.txt文件。效果如图: 当点击“设置样…

ps作业素材和成品_没有用过PS的画框工具,你还敢说你是设计大佬?

大家好,过完春节大伙们都踏上了离乡的征程,再多不舍,看看自己的钱包,还是要出发!2019年已经悄然过去一个半月,你的学习计划开始了嘛?来吧继续学习PS-cc2019,今天继续给大家带来CC2019 ps 的基础…

第二次阅读作业

No Silver Bullet - Essence and Accidents of Software Engineering: 银弹能杀死狼人。如果我没记错的话,在漫画中柯南对黑暗组织而言就是一颗银弹。生活中是不是真的有银弹我还是不太确定。假如有,银弹就是 一点弱点也没有么?如…

Linux 每日一练习!!反单引号·(键盘上数字1左边)··

2019独角兽企业重金招聘Python工程师标准>>> ls -al locate ls # 说明locate ls执行出来的路径将会作为ls -al的参数 说明:在一串指令中,在之内的指令将会被先执行,而且执行出来的结果将作为外部的输入信息 转载于:https://my.osc…

docker-compose观察实时日志_大数据项目实战之在线教育(03实时需求) - 十一vs十一...

第1章Spark Streaming概念 Spark Streaming 是核心Spark API的扩展,可实现实时数据的可扩展,高吞吐量,容错处理。数据可以从许多来源(如Kafka,Flume,Kinesis,或TCP套接字)中获取,并可以使用高级函数进行处理,处理完后的…

Java动态加载类在功能模块开发中的作用

Java中我们一般会使用new关键字实例化对象然后调用该对象所属类提供的方法来实现相应的功能,比如我们现在有个主类叫Web类这个类中能实现各种方法,比如用户注册、发送邮件等功能,代码如下: 1 /*2 * web功能实现类3 */4 public c…

创业者们的19个Surprises

郑昀玩聚SR 20091115 『毫无疑问,短跑运动员在起跑时速度最快,而后就变慢下来, 获胜者是变慢得最少的那个人。大多数创业公司也是如此。』 ——Paul Graham January 2007 上面这句笺言的作者Paul Graham最近问了Y Combinator旗下创业项目的创…