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

时间:2022-10-09 00:40:55

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

 

 

 

 

 

 

 

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 的数据库,每次只允许选择一个数据库。

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

6.去掉Back up the database as part of the maintenance plan,保证维护计划唯一性(推荐)

7.指定数据库日志备份路径。

8.指定存放日志文件的共享文件夹。

8.添加目的数据库。

  Server Name 为目的名称

  Transaction Log Destination Directory 填写从SQL1上传送到SQL2上日志文件的接收路径.

  Destination Database 选择新建数据库(指定数据文件,日志文件存放路径)或者应用已存在的数据库

  <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />DatabaseLoadState

  No recovery mode:使用者将无法进行资料查询,只供备份使用.

  Standby mode :设置成只读模式,只要不是进行日志回存的时候,都可以进行查询。

  Terminate users in database(Recommended) :在回存数据库或是交易日志文件时,回存程序将是数据库唯一的使用者。

  Allow database to assume primary role:允许主要服务器与次要服务器之间进行角色转换。

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

o

9Initialize the Destination Database: 挑选最近一次的资料或是建立一份新的备份资料。对大型数据库,使用即有备份比较有效率。但是要保证从备份之后的日志都存在于主服务器上的日志共享目录中。

10.设定主服务器上日志备份频率。

11.设置辅助服务器复制备份日志和加载备份日志的频率,以及日志文件在辅助服务器上的留存时间。

12.针对日志备份及日志回存工作,设定合理的延迟时间,当超过临界时间时,日志传送监控程序对话框会相应一个警告信息。

13.指定监控服务器,应该指定独立于主服务器,辅助服务器的第三台服务器作为监控服务器,或者指定辅助服务器为监控服务器。

14.点击Next,指定维护计划的名称。Finish,开始进行Log shipping 的创建。

Monitor

1.       Log Shipping 创建好后,和Log Shipping 相关的信息存储在msdb7个表中:

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