sql server实现热备用可用性中日志传送以及同步复制的方式

sql server下实现热备用可用性中日志传送以及同步复制的方式:
1.   使用企业版的“日志传送向导”(被集成在“数据库维护向导”之中)
2.   通过编写脚本,并将其作为普通的SQL Server代理作业来进行调度而实现
3.   使用同步复制

 集群是一种实现高可用性的有效解决方案,有时它会适得其反。而且,它还非常昂贵。因此,数据库管理员可使用日志转移代替集群来提供较高的可用性。 

  日志转移是这样一种处理过程,它能将某一数据库中的事务日志文件依次转存到备份的数据库中,进而为这一数据库创建一个“近乎”热备份。SQL Server 2000的数据库引擎中设置了日志转移功能,并在其中进行处理。所以它会自动完成复原到备份服务器的进程,而不需要数据库管理员手动操作。只有你的产品服务器操作失败,你才需手动完成到备份服务器的复原进程。(注释:尽管SQL Server 7.0和2005中均有日志转移功能,但本文主要针对SQL Server 2000。) 

  ◆为什么要使用日志转移? 
  日志转移是一种解决高可用性的措施,并且十分有效。同样作为高可用性的措施方案,日志转移相对集群来说,最大的好处是它要便宜许多。这是因为,使用集群功能有硬件要求,而日志转移则不需要。 
  日志转移在数据库与数据库而非服务器与服务器之间进行;因此才有可能将备份数据库存储在你已用作其他用途的服务器上。但如果转移失败则有可能会出现问题,这时你可换用备份数据库,这种选择是可用的。 
  日志转移相对比较容易安装。SQL Server提供了非常完善的向导帮助你安装这个进程。 
  日志转移允许你保存分布在不同地理位置中的冗余数据,SQL Server的集群功能则很难做到这一点。这一特点十分出众,因为,当你的数据中心遭到灾难时,你仍能在备份服务器中将其恢复过来。而在相同的数据中心,如果你使用的是集群功能,你就会陷入麻烦。 
  日志转移的另一优点是你能将备份数据库作为报告数据库使用,这对许多公司来说是很不错的选择。但如果你决定了用这个备份数据库作报告使用,就必须注意它的局限性。使用原始数据库中的日志时,SQL Server 要求指定唯一的通道,所以,当日志文件正在被应用时,报告则不能同时进行。 

  ◆使用日志转移要考虑的相关因素 
  在将日志转移作为高可用性的方案来使用时,我们必须考虑以下几点因素。由于从原始数据库到备份数据库有一个潜伏期,对你的公司而言,它并非一定是可行的实现高可用性的一种解决方案。潜伏期由数据库管理员设置,时间也因需要而缩短,但永远不能避免。 
  日志转移中没有设置恢复功能,这就意味着在将日志转移到备份服务器上时,这些日志都暂时不可用。因此,数据库管理员必须在将备份数据库放到网上前完成一系列的操作,这些步骤包括: 
  将已存储在备份数据服务器上原始数据库里的备份标签存储起来。一旦所有的标签被存储后,数据库就必须得到恢复,然后放到网上。 
  一旦所有的数据库都已放在网上,所有需要访问数据库的应用程序就需要改变自身的链接。如果你不能将应用程序尽快指向刚刚恢复的数据库,你就前功尽弃了。 
  一个SQL Server的实例能用于监控日志转移。这个实例可以在原始数据库、备份数据库或单独的数据库中。任何一种版本的SQL Server都能用于SQL Server监控。 
  注释:数据库登录必须在原始数据库与备份数据库之间同时进行 

操作步骤:
Log Shipping
Operations Guide
Version: 1.0
Index
Create Log Shipping.. 3
Monitor.. 9
Delete Log shipping.. 10
Role Alter.. 11
Role Change.. 13

Create Log Shipping
1.SQL Server 节点1 Tonym 和 Tonym02必须位于同一域中,并且SQL1 和SQL2都要使用域账户启动SQL Server服务和SQLServerAgent服务。
2.在企业管理器中删掉local连接,应用Server Name注册本地服务器 Tonym,辅助服务器Tonym02
3. 在SQL1 服务器上新建共享文件夹NorthwindBackupShare01,赋予启动SQL Server账户的Full 权限。在SQL1服务器上新建文件夹 ReceiveSQL2Logs,用来在进行数据库角色转换时接收从SQL2上传送过来的日志。
 在SQL2 服务器上新建共享文件夹NorthwindBackupShare02,赋予启动SQL Server账户的Full 权限。在SQL2服务器上新建文件夹 ReceiveSQL1Logs,用来接收数据库SQL1上传送过来的日志。
4.设置想要应用Log Shipping的服务器为完全恢复模式。
5.在Database Maintenance Plans上右键 New maintenance Plan,选择进行LogShipping 的数据库,每次只允许选择一个数据库。
6.去掉Back up the database as part of the maintenance plan,保证维护计划唯一性(推荐)
7.指定数据库日志备份路径。
8.指定存放日志文件的共享文件夹。
8.添加目的数据库。
  Server Name 为目的名称
  Transaction Log Destination Directory 填写从SQL1上传送到SQL2上日志文件的接收路径.
  Destination Database 选择新建数据库(指定数据文件,日志文件存放路径)或者应用已存在的数据库
  Database Load State
  No recovery mode:使用者将无法进行资料查询,只供备份使用.
  Standby mode :设置成只读模式,只要不是进行日志回存的时候,都可以进行查询。
  Terminate users in database(Recommended) :在回存数据库或是交易日志文件时,回存程序将是数据库唯一的使用者。
  Allow database to assume primary role:允许主要服务器与次要服务器之间进行角色转换。
  选择进行角色转换后新主要服务器的共享目录路径。
9.Initialize the Destination Database: 挑选最近一次的资料或是建立一份新的备份资料。对大型数据库,使用即有备份比较有效率。但是要保证从备份之后的日志都存在于主服务器上的日志共享目录中。
10.设定主服务器上日志备份频率。
11.设置辅助服务器复制备份日志和加载备份日志的频率,以及日志文件在辅助服务器上的留存时间。
12.针对日志备份及日志回存工作,设定合理的延迟时间,当超过临界时间时,日志传送监控程序对话框会相应一个警告信息。
13.指定监控服务器,应该指定独立于主服务器,辅助服务器的第三台服务器作为监控服务器,或者指定辅助服务器为监控服务器。
14.点击Next,指定维护计划的名称。Finish,开始进行Log shipping 的创建。

Monitor
1.
Log Shipping 创建好后,和Log Shipping 相关的信息存储在msdb的7个表中:
Log_shipping_plans
Log_shipping_plan_databases
Log_shipping_databases
Log_shipping_plan_history
Log_shipping_monitor
Log_shipping_primaries
Log_shipping_secondaries
2.可以在监控服务器的management 下看到Log shipping 备份,复制,加载等动作的状态信息。

Delete Log shipping
1. 选择主要服务器上的log shipping 维护计划,打开属性,选择【Log shipping】设定页,然后点选【Remove Log Shipping】。此动作将从次要服务器上移除SQL Server Agent的备份与回存工作,并清除日志传送资料表内的所有相关资料。此外,日志传送监控程序的相关信息也会一并被清除。然而此动作将会适当地保留主要服务器上SQL Server Agent的交易日志备份工作。只有在删除数据库维护计划时,该工作才会被移除。假如您想从监控服务器内移除掉日志传送监控程序,请用手动方式将log_shipping_primaries与log_shipping_secondarie 这两个资料表(位于监控服务器的msdb数据库)的资料删除即可。
如果您在数据库维护计划内设定日志传送时,就已允许目的数据库可以做为新的日志传送来源数据库。当您删除主要服务器的维护计划时,次要服务器上仍然会保留其数据库维护计划,以及交易日志文件备份工作。删除这些项目的方式是将次要服务器上与日志传送相关的数据库维护计划直接删除。

Role Alter 
1.在主服务器上创建登陆同步DTS包。
2.打开企业管理器并连接到主服务器。展开企业管理器树至“Data Transformation Services” 组,选择“Local Packages”。右击“Local Packages”并选择 “New Package”。从“Task”菜单选择“16 Transfer Logins Task”。在源选择 主服务器,目的选项卡 选择 辅助服务器。在“Logins”选项卡,选择传输与特定数据库关联的登陆,或者传输该服务器的所有登陆。(对于我们的环境推荐使用传输该服务器的所有登陆)
3.将DTS包保存在主服务器。
3.指定DTS同步时间(至少每周一次)。

同步登陆账户SID
1. bcp master..syslogins out localpath\syslogins.dat  /N /S current_primary_server /U sa /P sa_password.
稍后会用到导出的syslogins信息.
2.  降级主要服务器.在主服务器运行以下存储过程。
Use master
Exec msdb..sp_change_primary_role
        @db_name = ‘current_primary_dbname’
        @backup_log = 1,
        @terminate = 1,
        @final_state = 3,
        @access_level = 1
3.升级辅助服务器.在辅助服务器运行以下存储过程。
Use master
Exec msdb..sp_change_secondary_role
        @db_name = ‘current_secondary_dbname’
        @do_load = 1,
        @force_load = 1,
        @final_state = 1,
        @access_level = 1,
        @terminame = 1,
        @keep_replication = 0,
        @stopat = null
该存储过程会将数据库质为单用户模式。明明没有任何使用者正在存取数据库,它却告诉我数据库目前为使用中,解决的方式为重新执行一次该存储过程。
4.通知监控服务器角色已变更,在监控服务器上运行以下存储过程。
Use master
Exec msdb..sp_change_monitor_role
        @primary_server = ‘current_primary_server_name’,
        @secondary_server = ‘current_secondary_server_name’,
        @database = ‘current_secondary_dbname’,
        @new_source = ‘new_source_directory’
5.在次要服务器上解析登入帐号
Use master
Exec sp_resolve_logins
        @dest_db = ‘dbname’,
        @dest_path = ‘destination_path’,
        @filename = ‘filename’ (from step 1 export)
6.连接数据库存取与权限。将转移后已解析的登入帐号连结至相对应的数据库使用者及其权限. (SQL BOOK Online 缺少此步)
Use sourcename
Exec sp_change_users_login ‘update_one’,‘username’,‘LoginName’

Role Change
1. 在新主要服务器的数据库维护计划内移除日志传送功能。
2. 在主要服务器上删除数据库维护计划。
3. 在次要服务器上删除数据库维护计划。
4. 维护所有交易日志。
5. 在新主要服务器上建立一个新的数据库维护计划,指定新次要服务器所在,目的数据库位置,以及交易日志之适当存放位置。
6. 重新开始新主要服务器的所有活动。

在您成功设定角色互换且建置新日志传送配对服务器后,Enterprise Manager 的日志传送监视器可能会告诉您新次要服务器数据库并未与新主要服务器数据库取得同步(out of sync)。如果“最近一次加载的交易日志”与“最近一次备份的交易日志”之间的时间差超过了 out-of-sync设定值,您就会收到此报告。你需要把新主服务器的备份日志拷贝到新次服务器的同步备份路径下。到最近一次的备份资料被加载之后,日志传送监视器会回到平常无错误状态。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


本篇内容主要讲解“sqlalchemy的常用数据类型怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“sqlalche...
今天小编给大家分享一下sqlServer实现分页查询的方式有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家
这篇文章主要介绍“sqlmap之osshell怎么使用”,在日常操作中,相信很多人在sqlmap之osshell怎么使用问题上存在疑惑,小编查阅了各式资料,整理出
本篇内容介绍了“SQL注入的知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧...
1. mssql权限sa权限:数据库操作,文件管理,命令执行,注册表读取等system。是mssql的最高权限db权限:文件管理,数据库操作等 users-administratorspublic权限:数据库操作 guest-users2、sql server注入执行命令查
sql执行计划如何查看?在SPL庞大的数据中我们不知道如何查看实际数据库中发生了什么事情,有必要定期进行查询优化和索引否则会影响我们后期的SQL的查询速度。那么针对这样的问题我们必须要知道SQL执行的计划,在本文中winwin7小编给大家分享下SQL执
SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点应用非常广泛。不过在使用中,我们会遇到非常多的错误,面对这么庞大的数据库环境,当然会有精确的错误代码的对照季,下面小编分享的
SQL Server本地账户无法登陆出现错误提示:error:40-Could not open a connenction to SQL Server的问题很常见,对于初学者来说可能不知道如何解决,一起来看看下面的解决方案。解决步骤如下:1、这种情况需要开启 SQL Server service
微软推出的SQL2008是一款非常好用的数据库软件,它稳定、功能强大,为众多企业提供了最佳的数据库解决方案,那么我们如何在Windows中安装它呢,一些朋友对SQL Server 2008的安装过程还不是很熟悉,下面就一起来看看SQL Server 2008详细安装图解...
本页概要如果您使用的是 SQL Server 2005备份和还原Sp_detach_db 和 Sp_attach_db 存储过程关于排序规则的说明导入和导出数据(在 SQL Server 数据库之间复
DBCC CHECKIDENT 检查指定表的当前标识值,如有必要,还对标识值进行更正。 语法 DBCC CHECKIDENT ( 'table_name' [ , { NORESEED
这里对 SQL Server 字符串函数进行分门别类地列出,便于查阅和记忆,相信大家都在其它方面有高深的编程基础,从字面上来说大家都知道这些函数的意义,就不对这些函数作过多的解释了,主要谈些经验,具体
查询及删除重复记录的方法 1、查找表(people)中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select*frompeoplewherepeopleIdin(selectpe
微软发SQL Server 2008第二个CTP预览版from: http://news.csdn.net/n/20070807/107158.html8月7日消息,微软公司本周发布了SQL Serv
症状当您将数据库备份恢复到另一台服务器时,可能会遇到孤立用户的问题。SQL Server 联机丛书中的孤立用户疑难解答主题中没有讲述解决此问题的具体步骤。本文介绍了如何解决孤立用户问题。更多信息虽然术
当登录SQL Server 2005时可能碰到错误: 'No Process is on the Other End of the Pipe'。解决方法:(1)Open up SQL
概要本文描述如何映射标准登录和集成登录来解决在运行 SQL Server 的服务器之间移动数据库时的权限问题。更多信息当您将数据库从一个运行 SQL Server 的服务器移到另一个运行 SQL Se
----------------------------------------问题:该用户与可信的SQL SERVER 连接无关联使用sa用户或自建用户使用“SQL SERVER 身份认证”连接数据
更新日期: 2007 年 5 月 20 日 使用下表可以确定各种版本的 Microsoft SQL Server 2005 支持哪些功能。有关 SQL Server 2005 Enterprise E
当从Excel导入数据到Sql Sever中,可能会出现以下问题:
对于指定的缓冲区大小而言,源列的数据太大