SQL2016发布订阅热备操作手册

SQL2016发布订阅热备操作手册

一、基本环境条件

PC1 PC2计算机名: WIN-YW04              (WIN10)

IP:192.168.0.109

WINDOWS用户名:cdgl              (若没有此用户则新建)

WINDOWS密码:123456

SA用户密码:111111

Serversql端口:1433

工作组:workgroup

数据库版本:SQL Server2016

-------------------------------------------------------

PC2计算机名: WIN-FEIG3MP09IO        (server2016)

IP:192.168.0.122

WINDOWS用户名:cdgl             (若没有此用户则新建)

WINDOWS密码:123456

SA用户密码:111111

Serversql端口:1433

工作组:workgroup

数据库版本:SQL Server2008

 

二、准备操作

1、打开PC1 与 PC2 的共享访问

PC1:右下角任务栏网络图标右击---点击“打开网咯和internet设置”--- “网络和共享中心”---“更改高级共享设置”---点选“启用网络发现”“启用文件和打印机共享”---点击“确定”

PC2: 右下角任务栏网络图标右击---点击“打开网络和共享中心”---点击“更改高级共享设置”---点选“启用网络发现”“启用文件和打印机共享”

https://img-blog.csdn.net/20170731140909304?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjg2MTQ2Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

 

 

2、防火墙开1433端口

PC1:右下角任务栏网络图标右击---点击“打开网咯和internet设置”---点击“WINDOWS防火墙”---确保“域网络”“专用网络”“公用网络”防火墙都有启用---点击“高级设置”---点击左侧“入站规则”—点击右侧“新建规则”---点选“端口”---下一步---点选“TCP”,“特定本地端口”输入“1433”---下一步---点选“允许连接”---下一步---勾选所有网络环境---下一步---“名称”输入“1433”---完成---此时在入站规则名称下能够看到1433

继续操作---右击“1433”---点击“属性”---点击“协议和端口”标签---将“协议类型”修改为“任何”---点击“确认”(经测试若不开启所有协议,订阅主机会查找不到发布主机)

 

PC2:右下角任务栏网络图标右击---点击“打开网络和共享中心”---点击“windows防火墙”---确保防火墙有启用---点击“高级设置”---点击左侧“入站规则”—点击右侧“新建规则”---点选“端口”---下一步---点选“TCP”,“特定本地端口”输入“1433”---下一步---点选“允许连接”---下一步---勾选所有网络环境---下一步---“名称”输入“1433”---完成---此时在入站规则名称下能够看到1433

继续操作---右击“1433”---点击“属性”---点击“协议和端口”标签---将“协议类型”修改为“任何”---点击“确认”

 

3、配置SQL ServerTCP/IP(PC1、PC2)

PC1: 在程序列表中打开“SQL Server 2016配置管理器”---打开“SQL server网络配置”---点击“SQL2016的协议”---右击右侧“TCP/IP”---点击“属性”---点击“IP地址”---将所有TCP Port改为“1433”,在用IP地址的enable改为“是”

 

PC2:开始---所有程序---microsoft SQL server 2008---配置工具---SQLserver配置管理器---打开“SQL server网络配置”---点击“SQL2016的协议”---右击右侧“TCP/IP”---点击“属性”---点击“IP地址”---将所有TCP 端口改为“1433”,在用IP地址的已启用改为“是”

 

4、Sql Server Browser 服务开启(PC1、PC2)

如果在SSMS工具中找不到局域网内的其他数据库服务器,可以开启这个功能

SQLserver配置管理器---打开“SQL server服务”---右侧右击“SQL ServerBrowser”---启动

 

5、验证登陆用户(PC1、PC2)

两台主机都有cdgl此用户  且登陆密码相同

在程序列表打开“Microsoft SQL Server managerment studio+版本”---登陆本地数据---打开“安全性”---右击“登录名”---点击“新建登录名”---默认“windows身份验证”---点击“搜索”---输入“cdgl”查找(查找结果为主机名+cdgl)---点击“确定”---点击“确定”

 

 

6、打开数据库远程访问(PC1、PC2)

在程序列表打开“Microsoft SQL Server managerment studio+版本”---登陆本地数据---

右击登陆数据库“数据库名”---点击“属性”---点击“连接”---勾选“允许远程连接到此服务器”---点击“确定”

 

 

7、测试PC1、PC2能否互通

PC1:      ping         192.168.0.122

                 telnet       192.168.0.122        1433

PC2:      ping        192.168.0.109

                 telnet      192.168.0.109        1433

ping结果;

telnet结果:

 

 

三、开始发布与订阅

1、验证发布主机现有数据库名与旧数据库名是否相同(部分修改过计算机名称会有报错)

PC1(发布主机)---登陆本地数据库---新建查询---执行语句:

use master

go

select @@servername

select serverproperty('servername')

------------------------------------------------------------------------------

若返回值相同则继续下一步,若返回值不同 则修改“发布计算机(PC1)”计算机名称

例如此处若不同 右击“此电脑”---点击“属性”---点击“更改设置”---点击“更改”---“计算机名”输入“WIN-YW04”---点击“确定”---重启生效(多次测试此方法较实用)

重启后需要再次执行查询语句,确保两个返回值相同! (发布主机必须相同)

(若查询到第一个值为null则跳转到文末查看解决方法)

---------------------------------------------------------------------------------------------------------------------------------

1、PC1(发布主机)---登陆本地数据库---新建数据库GL-001 并插入表格 table1、table2(此为测试数据库,真实操作可省略)

2、PC1:打开“复制”---右击“本地发布”---点击“新建发布”---选择“GL-001”---下一步---选择“快照发布”---下一步---勾选“表”“table1”“table2”---下一步---下一步---勾选“立即创建快照并使快照保持….”---勾选“计划在以下时间运行快照代理”---点击“更改”---“执行间隔”选择“秒”---点击“确定”---下一步---点击“安全设置”---点选“在以下windows账户运行”---输入账户“WIN-YW04\CDGL”---输入密码“123456”---点选“使用以下SQL server登陆名”---输入账户“sa”---输入密码“111111”

 

点击“确定”---下一步---下一步---“发布名称”输入“db_GL-001”---点击“完成”---等待创建发布成功

 

3、PC2(订阅主机)登陆本地数据库---打开“复制”---右击“本地订阅”---点击“新建订阅”---打开“发布服务器”下拉列表---点击“查找sql server 发布服务器”

 

使用SQL server身份验证 sa用户登陆PC1数据库

 

点击“连接”---选择发布的数据库“db_GL-001”

---下一步---点选“在发布服务器WIN-YW04上运行所有代理”---下一步---打开i“订阅数据库下拉列表”---点击“新建数据库”

“数据库名称”输入“GL-001”(PC2与PC1数据库名称相同)---点击“确定”---点击“完成”---点击“完成”---等待创建订阅

 

 

 

成功以后看不到PC2端的订阅,PC1复制监视器报错

经多次SQL2016与SQL2016发布订阅测试

以上操作正确性可以保证!

猜测是版本的原因

 

 

 

 

四、遇到的问题。

  1. 点击本地发布后提示SQLSERVER复制需要有实际的服务器名称才能连接到服务器,请指定实际的服务器名。

解决方法:

执行查询语句:

Use master

Go

Select @@servername

Select serverproperty(‘servername’)

查询服务器的名称和计算机实际名称,两者不一致,

  1. 可以执行语句:

Sp_dropserver ‘old_server_name’

Go

Sp_addserver ‘current_computer_name’,’local’

修改完后,重启SQL Server服务

  1. 可以使用别名(未深入研究)
  2. 可以直接修改修改主机名为select  @@servername 查询到的名称  然后重启主机
  1. PC1发布成功后  PC2查找不到发布服务器

解决方法:

确保PC1与PC2是否在同一网段

能否互相ping通

能否互相telnet端口

防火墙1433端口是否允许所有协议通信

(若在此步卡住 建议临时开关防火墙进行测试)

  1. 发布数据库挂掉后 订阅数据库使用报错(不能在XXX插入重复键….)

解决方法:

在订阅或发布数据库上执行语句:

Select max([logId]) from [dbo].[T_SYS_LoginLog]

假设返回值为:293181 则执行下列语句:

Dbcc checkident(‘T_SYS_LoginLog’,reseed,293181)

 

 

注:订阅数据库做被份替换掉发布数据库后 发布数据库在删除发布之前不可以再次与订阅数据库通讯 否则订阅数据库会被发布数据库同步为旧数据

 

猜你喜欢

转载自blog.csdn.net/weixin_42256332/article/details/85595295
今日推荐