• Log Shipping搭建


    1.    概述

    SQL Server 使用日志传送,您可以自动将主服务器实例上主数据库内的事务日志备份发送到单独辅助服务器实例上的一个或多个辅助数据库。事务日志备份分别应用于每个辅助数据库。可选的第三个服务器实例(称为监视服务器)记录备份和还原操作的历史记录及状态,还可以在无法按计划执行这些操作时引发警报。当主服务器因故障停机时,您就可以将备份服务器更改为新的主服务器。如果原来的主服务器可重新上线使用,那么您可以将其设定为新的备份服务器 - 事实上就是对调两台服务器的角色。

    2.      目的

    主要测试SQLSERVER2008R2企业版日志自动传送、自动装载功能、主运行服务器与备份服务器的角色切换功能及通过监视服务器对日志传送及备份服务器进行维护。

    3.      测试环境

    3.1.       主服务器

    Windows 2008R2 64bit,2G Mem,CPU 2.0GHz,局域网,IP:192.168.102.4x

    3.2.       辅助服务器

    Windows 2008R2 64bit,2G Mem,CPU 2.0GHz,局域网,IP:192.168.102.4y

    3.3.       监视服务器

    Windows 2008R2 64bit,2G Mem,CPU 2.0GHz,局域网,IP:192.168.102.4z

    3.4.       共享服务器

    Windows 2008R2 64bit,2G Mem,CPU 2.0GHz,局域网,IP:192.168.102.4w

    4.      配置日志传送

    4.1.       准备工作

    4.1.1.  账户建立

    Windows账户建立:分别在”主服务器”,”辅助服务器”,”监视服务器”,”共享服务器”上建立本地帐号”daleadmin”,密码设置相同,并加入administrators组。

    4.1.2.  文件夹建立及共享安全设置

    在共享服务器上建立文件夹”Logfiles”,同时设置共享,在”权限”中加入帐号”daleadmin”,允许其对该文件夹有读写权限。该文件夹主要用于主服务器日志备份。

    在主服务器及辅助服务器上建立文件夹Logfiles,权限同上设置。该文件夹主要用于拷贝及还原日志备份文件。

    4.1.3.  SQLServer启动账户设置

    主服务器,辅助服务器,监视服务器 上的SQLServer的服务及代理服务均以daleadmin

    账户启动。

    4.1.4.  主服务器上备份数据库

    use master
      go
      backup database Northwind
      to disk='\192.168.102.4wLogfilesNorthwind.bak'
      go
      use Nortwind
      go
      create table table10(id int)
      go
      use master
      go
      backup log Northwind
      to disk='\192.168.102.4wLogfilesNorthwind.bak'

    4.1.5.  辅助服务器上还原数据库

    --还原全备份
      
    restore database 
      from disk='\192.168.102.4wLogfilesNorthwind.bak'
      with file=1,norecovery
      --还原日志备份
      
    restore database 
      from disk='\192.168.102.4wLogfilesNorthwind.bak'
      with file=2,norecovery

    4.2.       配置日志传送

    在主服务器上配置日志传送

    4.2.1.  事务日志备份设置,如下图

    4.2.2.  添加辅助服务器并设置辅助数据库如下图

    4.2.3.  设置监视服务器

    4.2.4.  测试日志传送效果

    经过以上配置,日志传送已经配置成功,观察辅助服务器,将处于(备用/只读)模式。

    下面我们来测试是否真正成功。

    主服务器执行

    create table table11(id int)

    过几分钟查看辅助服务器,发现已成功创建table11,同时我们也可以通过在监视服服务器执行以下存储过程,查看日志传送的状态。

    use master
      go
      exec sp_help_log_shipping_monitor
      go
      exec sp_help_log_shipping_monitor_primary 'TestServer1','Northwind'
      go
      exec sp_help_log_shipping_monitor_secondary 'TestServer2','Northwind'
      go

    同时也可以通过查看错误日志了解日志传送的结果。

    5.      辅助服务器切换为主服务器

    5.1.       模拟故障

    5.1.1.  将主服务器(192.168.102.4x)的SQLServer服务器停止

    5.1.2.  到指定文件夹下删除Northwind数据文件

    5.1.3.  重启SQLServer服务,此时数据库Northwind已损坏,为不可用状态。

    5.1.4.  尾日志备份(假定此时主数据库实例尚未损坏,仍可以执行T-SQL)

    backup log Northwind
      to disk='\192.168.102.4wLogfilesNorthwindlog.bak'
      with no_truncate

    5.2.       拷贝文件

    5.2.1.  执行辅助服务器的上的拷贝作业或者手动的拷贝还没拷贝的日志文件到”D:logfiles”

    5.2.2.  手动拷贝主数据库的尾日志备份文件Northwindlog.bakD:logfiles

    5.3.       还原日志

    5.3.1.  执行辅助服务器上的还原作业还原尚未还原的日志文件

    5.3.2.  手动还原尾日志备份文件

     

    restore database Northwind
      from disk='D:logfilesNorthwindlog.bak'
      with recovery

    6.      主/辅助服务器角色互换

    6.1.       作业禁用

    6.1.1.  禁用原主服务器(192.168.102.4x)上的备份作业

    6.1.2.  禁用辅助服务器(192.168.102.4y)上的拷贝及还原作业

    6.1.3.  禁用监视服务器(192.168.102.4z)上的警报作业

    6.2.       重新配置日志传送

    配置方法参照上面方法

    6.2.1.  192.168.102.4y上配置日志传送,此时该服务器为主服务器

    6.2.2.  192.168.102.4x 为辅助服务器

    6.2.3.  192.168.102.4z 为监视服务器

    6.3.       删除日志传送

    删除原主服务器(192.168.102.4x)上的日志传送,取消勾选”将此数据库启用为日志传送配置中的主数据库”即可

    7.      总结

    7.1.       问题总结

    7.1.1.  注意点

    7.1.1.1.      如果主服务器上的SQL Server服务账户运行在本地系统账户下,必须在主服务器本地建立文件夹,并指定该文件夹的本地路径。一般建议建立专门的账户

    作为SQLServer及SQLAgent 服务的启动账户。

    7.1.1.2.      如果选择让”Management Studio”从数据库备份中初始化辅助数据库,默认情况下辅助数据库的数据文件及日志文件将于master数据库的数据文件和日志文件放置在同一位置。此位置可能与主数据库的数据及日志文件处于不同的位置。

    7.1.1.3.      若要监视此日志传送,必须添加监视服务器,若要以添加监视服务器,则需要删除此日志传送配置,然后重新配置。

    7.1.1.4.      主服务器日志截断只能通过备份日志,然后收缩日志文件完成,且备份的日志文件必须手动拷贝至辅助服务器进行手动还原否则,日志传送会失败。

    7.1.2.  错误日志分析

    7.1.2.1.      错误日志内容

    错误14421,严重性16,状态1

    the log shippingsecondary database TestServer2.Northwind has restore  threshold of 8 mintues and is out of sysnc.

    No restore wasperformed for 1 minitues.

    Check agent log andshipping monitor information

    7.1.2.2.      导致该问题的可能原因

    7.1.2.2.1.     主备服务器日期时间相差很大(待测试)

    7.1.2.2.2.     辅助服务器与监视服务器之间验证出现了问题,辅助服务器运行的还原作业不能连接到监视服务器的MSDB数据库以更新log_shipping_secondaries表中正确的值。

    7.1.2.2.3.     如果还原采用备用模式,且没有勾选”在还原备份时候断开与用户的连接”,还原时候有用户连接上来也会报类似错误。

    7.1.2.2.4.     主数据库手动进行了日志备份但没有手动复制过去还原也会报类似的错误。

  • 相关阅读:
    rabbitMQ rabbitmq-server -detached rabbitmq-server -detached rabbitmq-server -detached
    ElasticSearch 深度分页解决方案 {"index":{"number_of_replicas":0}}
    git 服务器新建仓库 远程仓库
    mongo 记得开启验证 auth = true
    虚拟机创建及安装ELK
    JSF action actionListner 详解
    Developing JSF applications with Spring Boot
    从问题看本质: 研究TCP close_wait的内幕
    linux server 产生大量 Too many open files CLOSE_WAIT激增
    wildfly tomcat 服务器不响应 不返回 死住了 查看tcp CLOSE_WAIT 暴多
  • 原文地址:https://www.cnblogs.com/cxd4321/p/3659153.html
Copyright © 2020-2023  润新知