隐藏

sql server 2008 r2 双机热备操作流程-Microsoft SQL Server 双机热备份,实时同步-已实践

发布:2022/8/8 23:22:07作者:管理员 来源:本站 浏览次数:1273


1.两台服务器,主服务器,从服务器,两台服务器都安装SQL Server 2008R2并且安装相同表结构的数据库(需要实时同步的数据库)--追加:没有主键的表不能进行数据同步

2.主服务器数据库安装完毕,打开SQL Server 配置管理器,把SQL Server 代理服务打开(已打开请忽略)

 

 

 3.登录主服务器数据库,从数据库左侧菜单栏找到->复制->本地发布,右击新建发布

 

 

 4.默认主服务器当作分发服务器

 

 

 5.快照文件夹最好新建一个目录(需要手动在D盘新建目录),默认目录会有权限问题(对于新手权限问题不好解决)

 

 

 6.选择需要发布的数据库

 

 

 7.发布类型选择事务发布(发布类型的区别可自行百度,此处不做叙述)

 

 

 8.选择需要发布的表(需要同步到从服务器数据库表的数据)--追加:存储过程、自定义函数都可以勾选同步

 

 

 9.筛选表行(意思是表中的哪些字段你不需要同步到从服务器

 

 

 10.快照代理,选择->立即创建快照并使快照保持可用状态,以初始化订阅

 

 

 11.代理安全性,点击安全设置,按照红色框中设置即可

 

 

 12.向导操作,选择->创建发布->下一步

 

 

 13.完成该向导,填写一个发布名称,点击完成,到此步骤主服务器本地订阅发布已经完成

 

 

 

 

 

 14.登录从服务器数据库,从数据库左侧菜单栏找到->复制->本地订阅->右击新建订阅->选择查找SQL Server 发布服务器,数据库服务器名称要是主服务器计算机名称,输入登录名和密码

 

 

 

 

 

 15.选择刚才主服务器发布的订阅

 

 

 16.选择运行分发代理的位置,勾选第一个,如果选择第二个也需要开启从服务器SQL Server代理服务

 

 

 17.选择订阅服务器(从服务器),订阅数据库需要同步的数据库(主服务器和从服务器热备份的数据库结构需要一致)

 

 

 18.分发代理安全性,推荐按红色框中设置,如下图:

 

 

 

 

 

 19.同步计划选择连续运行

 


 20.初始化订阅

 

 

 21.向导操作->创建订阅->下一步->完成

 

 

 

 

 

 

 

 

 22.刷新从服务器左侧菜单栏下的本地订阅,会出现刚刚创建好的订阅,为了验证设置是否成功,右击创建好的订阅->查看同步状态,如图显示同步正在进行则说明双机热备份设置成功

 

 

 

 

 

 23.测试配置是否生效,在主服务器数据库通过updata语句修改某个表的字段值,然后查看从服务器数据库是否对应修改即可

来自:https://www.cnblogs.com/itdaocaoren/p/10475497.html  (评论:忘了事物复制吧,用Always on

另一篇比较有参考价值的文章:https://www.cnblogs.com/ind9x/p/13192182.html

SQL Server发布订阅异常处理

语句强制删除发布

EXEC sp_removedbreplication 'WR_YK1';  --- 引号里是发布数据库名称

 

 

SQL2008发布订阅报错“进程无法在WIN-SERVER 上执行 sp_replcmds”

执行以下SQL脚本

首先执行

 ALTER AUTHORIZATION ON DATABASE::[数据库名] TO [sa]

 ALTER AUTHORIZATION ON DATABASE::[数据库名] TO [SQL登录用户名]

然后执行

  USE 数据库名 
  GO

  sp_changedbowner 'SQL登录用户名'

最后执行

EXEC sp_repldone @xactid =NULL, @xact_segno =NULL, @numtrans = 0, @time =0, @reset =1

EXEC sp_replflush

如果还是不可以, 重启SQL Server Agent服务。

修改机器名后

--查看当前数据库服务器名称:

select @@ServerName

--查看当前服务器名称
select serverproperty('servername')

--修改数据库服务器名称
sp_dropserver 'old_servername'
sp_addserver 'new_servername','local'

--重启数据库服务,修改完成

--安全性->登陆名->右键,新建登陆名->选择Windows身份验证

 

select @@servername;
      select serverproperty('servername')

如果这两个结果不一致,说明机器改过名字,在配置复制的时候就会报上面的错误。

     --要修复此问题   
     --执行下面的语句,完成后重新启动SQL服务   
    
if   serverproperty('servername')   <>   @@servername   
         begin   
             declare   @server   sysname   
            set   @server   =   @@servername   
            exec   sp_dropserver   @server   =   @server   
            set   @server   =   cast(serverproperty('servername')   as   sysname)   
            exec   sp_addserver   @server   =   @server   ,   @local   =   'LOCAL'   
        end

      

最后别忘了重新启动服务哦,启动完后,在运行:

      use master

      go

      select @@servername;
      select serverproperty('servername')

 

 

发布订阅 新建发布结束时候提示 distributor_admin 登录失败

曾经有做过发布订阅,分发服务器已经产生此用户,在分发服务器上将此用户的密码策略取消即可。