SQL SERVER 日志传送,设置,监控,角色转移

server|监控

 

 

 

 

 

 

 

 

Log Shipping
Operations Guide

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Version: 1.0

 

 By TonyMeng

2004-11-30

 

 
  
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:允许主要服务器与次要服务器之间进行角色转换。

  选择进行角色转换后新主要服务器的共享目录路径。

o

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 yslogins.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设定值,您就会收到此报告。你需要把新主服务器的备份日志拷贝到新次服务器的同步备份路径下。到最近一次的备份资料被加载之后,日志传送监视器会回到平常无错误状态。

 

时间: 2024-11-02 08:12:17

SQL SERVER 日志传送,设置,监控,角色转移的相关文章

使用SQL Server日志转移实现数据库的高可用性

[导读]本文主要针对SQL Server 2000介绍如何使用SQL Server日志转移实现数据库的高可用性. 集群是一种实现高可用性的有效解决方案,有时它会适得其反.而且,它还非常昂贵.因此,数据库管理员可使用日志转移代替集群来提供较高的可用性. 日志转移是这样一种处理过程,它能将某一数据库中的事务日志文件依次转存到备份的数据库中,进而为这一数据库创建一个"近乎"热备份.SQL Server 2000的数据库引擎中设置了日志转移功能,并在其中进行处理.所以它会自动完成复原到备份服务

在SQL Server 2000里设置和使用数据库复制

2005-08 余枫                                        在SQL Server 2000里设置和使用数据库复制之前,应先检查相关的几台SQL Server服务器下面几点是否满足:        1.MSSQLserver和Sqlserveragent服务是否是以域用户身份启动并运行的(.\administrator用户也是可以的)            如果登录用的是本地系统帐户local,将不具备网络功能,会产生以下错误:              

SQL Server误区:在服务器故障转移后,正在运行的事务继续执行

误区 #1:在服务器故障转移后,正在运行的事务继续执行 这当然是错误的! 每次故障转移都伴随着某种形式的恢复.但是如果当正在执行的事务没有Commit时,由于服务器或实例崩溃导致连接断开,SQL Server可没有办法在故障转移后的服务器重新建立事务的上下文并继续执行事务-无论你使用的故障转移方式是集群,镜像,日志传送或是SAN复制. 对于故障转移集群来说,当故障转移发生后,一个SQL Server实例在另一个故障转移集群的节点启动.所有实例上的数据库都要经历Recovery阶段-也就是所有没有

SQL SERVER日志清除的两种方法

server SQL SERVER日志清除的两种方法方法一 一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大1.设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如论坛数据库Forum)-->然后点击右键选择属性-->选择选项--&g

SQL Server 2005中设置Reporting Services发布web报表的匿名访问

原文:SQL Server 2005中设置Reporting Services发布web报表的匿名访问         一位朋友提出个问题:集成到SQL Server 2005中的Reporting Services已经将报表模板发布到IIS服务器,客户端通过浏览器访问时,默认会弹出Windows集成身份验证的对话框.如果在IIS配置里面把允许匿名(IUSR_**)访问的选项勾选,客户端再次访问的时候,会提示IUSR_** 访问权限不足.       对于这个问题,除了要设置IIS允许匿名访问外

SQL Server日志恢复还原数据库几种方法

SQL Server日志恢复 通过日志还原,最重要的是: 1.必须有一个完整的备份,且这个备份必须是在修改.删除数据之前做的. 2.在更新.删除数据之后,做日志备份,该log备份将用于还原之前的数据  下面步骤的目的:还原被删除的表 在SQL Server Management可视化操作步骤: 1.创建数据库并完整备份:  代码如下 复制代码 --创建测试数据库 CREATE DATABASE Db GO --对数据库进行备份 BACKUP DATABASE Db TO DISK='c:/db.

SQL Server日志清空方法 .

SQL Server日志清空方法 . 查询分析器中顺序执行以下三步,其中   databasename   为你的数据库教程文件名 1.清空日志:DUMP   TRANSACTION   databasename   WITH   NO_LOG   2.截断事务日志:BACKUP   LOG   databasename   WITH   NO_LOG   3.收缩数据库:DBCC   SHRINKDATABASE(databasename)   --//////////////////////

如何清理SQL Server日志释放文件空间

[问题场景]有一个数据库,它的名字叫CNBlogsText,日志文件霸占了23G硬盘空间,而事务日志已经截断(Truncate),实际日志内容很小,1G都不到.23G的空间只放1G不到的日志,就如同用一栋别墅养一只宠物,太奢侈了!秉承中华民族勤俭节约的美德,这种奢侈是绝对不允许的,必须要释放日志文件霸占的多余空间. 但是,无论怎么收缩(Shrink)日志文件,空间就是不能释放,总是出现错误: Cannot shrink log file 2 (CNBlogsText_log) because o

SQL SERVER日志链简介

先说清楚这些概念吧 SQLSERVER只有日志链,备份记录(有些人也叫备份链)本人觉得叫备份记录更合适 下面三个东西说的都是同一样东西 备份集=备份记录=备份链 备份集:比如备份的集合,比如有对一个数据库的完备1.差备.日备1.完备2.日备2,这些数据库的备份的集合就 是备份集 不过我更喜欢叫备份记录 备份记录实际上指 SELECT * FROM [msdb].[dbo].[backupset] 截断日志跟日志链断裂是否是同一样东西? 截断日志跟日志链断裂不是同一样东西 什么是日志链 其实大家可