SQL 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\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. 维护所有交易日志。</SPA

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus