sqlserver发布订阅无法初始化快照_SQLServer2008R2 发布订阅及相关问题解决办法

前言:

前两天接到领导的任务,将一个系统A的客户数据同步到另一个系统B中,以后客户录入入口只有A系统,B系统不提供录入入口,因为各种原因不能使用接口方式A系统和B系统直接交互同步,只能通过数据库重A库同步到B库。原想通过触发器直接些过去的,但在跨服务器方面遇到种种问题,稳定性太差最终放弃,选择使用发布订阅的方式;没想到发布订阅也没有想象的那么顺利,今天就来就发布订阅遇到的问题说说解决方法,不全面只是我遇到的问题;

遇到问题:

1、如果服务器开启了防火墙,需要添加1433端口的出站入站

2、发布服务器发布成功后,在订阅服务器上订阅,显示订阅成功后但是在本地订阅下看不到订阅信息:

1)可能是发布的快照路径权限问题,发布时一般默认在系统盘,可以将路径修改到可配置权限的文件夹下(见下面发布部署2.3),将路径下的repldata文件夹权限开放(注意:指定给这个文件夹设置,在上级设置不一定有效);

2)服务名称和主机名不同

可以通过执行一下SQL查询是否相同

1 select @@servername

2 select serverproperty('servername')

如果不相同执行下面SQL修改

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

if serverproperty('servername') <> @@servername

begin

declare @serversysnameset @server = @@servername

exec sp_dropserver @server = @server

set @server = cast(serverproperty('servername') assysname)exec sp_addserver @server = @server , @local = 'LOCAL'

End

View Code

需注意的是,改过之后必须要重启一下SQL服务器才可以

3)主机名和其它服务器主机名称相同

修改主机名,重启主机,按上一种方法将服务器名称改为主机名称,重启服务;

但是这样可能还会有问题:发布订阅都成功后,但是并不能同步数据,在发布服务器看同步状态,查看详细会看到说无法连接订阅服务器,使用SQL客户端远程连接订阅服务器发现使用IP方式可以连接,但用主机名称方式不能连接;这里咱们就要检查一下订阅服务器的登录名里面,会发现有一个以原来主机名称+‘/administrator’命名的一个登录名

812b996a9feccdedb72c0ce5327b3984.png我们将这个登录名删掉,然后新建登录名

650516596b0f7ce79a54844f716e30d3.gif

修改之后在发布服务器上重新初始化发布就可以了,启动复制监视查看可以看到订阅正在运行,查看数据库数据同步成功

1部署事项

1、发布服务器跟订阅服务器必须在同一局域网内

2、发布的时候SQL Server 需要有实际的服务器名称才能连接到服务器。不支持通过服务器别名、IP地址或者其他备用名称进行连接。因此如果当前的SQL Server的连接是IP地址的话,最好断开连接,以实际的服务器名称重新进行登录

2 发布部署

2.1  新建发布

展开SQL Server 2008 服务器下的 【复制】 节点,会发现有【本地发布】和【本地订阅】两个节点,右击【本地发布】节点,选择【新建发布】

98135e91d8bc5c67eca1cc51a36335a1.png

2.2  发布向导

1、如果服务器第一次进行发布设置,会弹出【发布向导】对话框

dd1a994f19bfb8a263fb0bc339a3664f.png

2、设置【分发服务器】,选择第一个

c44a3ad96ca029e1902d6a5455aea655.png

2.3  快照文件夹

点击【下一步】,会出现设置【快照文件夹】对话框,我们选择默认

ffd7b867df8f9fdfd7ea2a0d439b5323.png

2.4  发布数据库

点击【下一步】,选择要发布的数据库

c11c2e29c3b31e7d78fa913ee5a1a5fd.png

2.5  发布类型

点击【下一步】,选择【发布类型】,我们选择 【事务发布】。

c538896d1aacdda26c1002a0020f0927.png

2.6  选择发布对象

点击【下一步】,选择数据库中的发布对象,选择所需的表、视图,也可选择所有的表

7a963fef0d342b24ffb2c8d57c04231f.png

2.7  项目问题

点击【下一步】,SQL Server 要求已发布存储过程引用的所有对象(例如,表和用户定义函数)在订阅服务器上可用。如果没有将被引用对象作为此发布中的项目发布,则必须在订阅服务器上手动创建这些对象。(默认)

822b543283ed8959b703d65833df7890.png

2.8 筛选表行

1、点击【下一步】,进入【筛选表行】对话框:

2e23375432de9424aae74d4271c078f7.png

2、如果需要筛选表行点击【添加】就会出现如下的筛选器对话框,可在筛选语句中添加SQL查询语句

97b9e75300c9e9db34248e3c0d241ffc.png

2.9  快照代理

不需要筛选,即所有数据全部同步,点击【取消】后,直接【下一步】,进入【快照代理】设置对话框,这里有两个选择一个是立即创建快照,一个是指定一个计划(比如可以指定xxx天xxx时间运行),我们选择第一个

eb359e9353a0c641f04d04e01d6559f5.png

2.10  代理安全性

1、点击【下一步】进入【代理的安全性】设置

b9ca87e6a83d3e09b28160edd8832376.png

2、点击【安全性设置】,我们选择 SQL SERVER 用户

ba931e7f840c51858ea17dcecfc66f2d.png

2.11  向导操作

1、点击【确定】 后,返回 【代理安全性】设置对话框,继续点击【下一步】

1b8b64881ae868a78f74b40848e6302b.png

2、点击【下一步】,我们给发布进行命名为:FaBu_TEST

b100f9ce6e7ebe0f8705c71dae3704e3.png

3、点击【完成】,就会创建发布,并会显示创建发布的结果

988ed1c2f7e291d2b1b1c278433aac13.png

2.12  设置文件夹权限

发布创建完成后设置C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL路劲下repldata文件权限

7576694350ef50560fcec62054ae1969.png

3 订阅部署

3.1  新建订阅

右键点击【本地订阅】节点,打开,【新建订阅】对话框

03d435c34a3b63c189f986b91daab1b1.png

3.2  订阅向导

1、弹出新建订阅向导点

d38305e64a8693d7af53a20502dc688d.png

2、击下一步,选择发布服务器,选择查找SQL Server 发布服务器

af24e8f7db158812e0adaa284ac5a7ea.png

3、弹出链接到服务器,链接到发布服务器。

注:不支持通过服务器别名、IP地址等名链接,需用服务器实际名称进行链接

e160eb5c7fbb22abc5acba8547656b38.png

4、点击链接 ,选择要为其创建一个或多个订阅的发布, 我们选择发布服务器WIN-XXX 中的数据库发布 FaBu_TEST,然后点击【下一步】

c3bf74dce1c3b2ffc32c12150e62439c.png

3.3  分发代理位置

在【分发代理位置】对话框中,选择第一项,点击【下一步】

ab8449e2c133c2de5ab2291ef89d7f0f.png

3.4  订阅服务器

在【订阅服务器】对话框中,选择新建数据库,或者提前建好一个新数据库选择这个数据库

96ed2158a64cc2d141ade564210f5d5f.png

3.5  分发代理安全性

1、在【分发代理安全性】对话框中,我们点击“...”,进入安全性设置,我们选则的是 SQL 帐户

ca09b49b94c13a029086618ee9b57801.png

2、输入订阅服务器SQL Server的登陆名和密码

96a456e7e1100a43d26daaf98adc1ece.png

3.6  同步计划

点击【下一步】,设置代理计划,我们选择默认的“连续运行”

fafd7e3d08db27138e359adf0d04e8c3.png

3.7  初始化订阅

点击【下一步】,进入【初始化订阅】对话框,选择 “立即” 初始化

cc8ee243f7ce82e64fcae2929f0cf27a.png

3.8  向导操作

1、在【初始化订阅】点击【下一步】:选创建订阅

bd3d124e5c973185aef2fd7656ef7e9e.png

2、点击【下一步】:完成向导

52758f2cfa6a76ecb717c7b52e9e61b8.png

3、点击【完成】,就会创建订阅,并显示创建结果

52d5d046d86c94e7a959ce8a33a0bd00.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/557650.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA中基本类型Boolean占几个字节

今天在整理JAVA基础知识时发现几大基本数据类型的封装类都有其BYTES值,也就是位数,除了Boolean。特意查了下资料,发现有几大说法,如下&#xff1a; 1.单个的boolean 类型变量在编译的时候是使用的int 类型。 boolean atrue;//这个a在JVM中占4个字节即&#xff1a;32位。 2.bo…

怎么在linux上修改mysql端口映射_如何在Linux中更改默认的MySQL / MariaDB端口

在本指南中&#xff0c;我们将学习如何更改MySQL / MariaDB数据库在CentOS 7和基于Debian的Linux发行版中绑定的默认端口。 MySQL数据库服务器在Linux和Unix下运行的默认端口是3306 / TCP 。为了在Linux中更改默认的MySQL / MariaDB数据库端口&#xff0c;请通过执行以下命令打…

java 泛型的上限与下限、泛型通配符、泛型上下限

java 泛型的上限与下限 设置泛型对象的上限使用extends,表示参数类型只能是该类型或该类型的子类&#xff1a; 声明对象&#xff1a;类名<? extends 类> 对象名 定义类&#xff1a;类名<泛型标签 extends 类>{} 设置泛型对象的下限使用super,表示参数类型只能是…

hashmap为什么线程不安全_StringBuilder为什么线程不安全?

点击上方“Java知音”&#xff0c;选择“置顶公众号”技术文章第一时间送达&#xff01;作者&#xff1a;千山juejin.im/post/5d6228046fb9a06add4e37fe引言面试官&#xff1a;StringBuilder和StringBuffer的区别在哪&#xff1f;我&#xff1a;StringBuilder不是线程安全的&am…

java中的重量级与轻量级概念

首先轻量级与重量级是一个相对的概念&#xff0c;主要是对应用框架使用方便性和所提供服务特性等方面做比较的。 比方说EJB就是一个重量级的框架&#xff0c;因为它对所编写的代码有限制&#xff0c;同时它也提供分布式等复杂的功能。 相比之下&#xff0c;Spring就是轻量级框架…

java中持久化是什么意思?

什么是持久化&#xff1f; 要想说明这个名词&#xff0c;还要从上世纪70年代说起&#xff0c;数据库技术兴起&#xff0c;这时的软件结构发展为双层结构。在双层结构中实现了的数据存放与应用程序分离&#xff0c;构成了现代软件模型的雏形。但是&#xff0c;随着软件体量越来越…

mysql主从报错_Mysql主从报错锦集

前言在发生故障切换后&#xff0c;经常遇到的问题就是同步报错&#xff0c;下面是最近收集的报错信息。记录删除失败在master上删除一条记录&#xff0c;而slave上找不到Last_SQL_Error: Could not execute Delete_rows event on table hcy.t1;Cant find record in t1,Error_co…

JAVA中的那些名词解释

1.JDO: (Java Data Object )是Java对象持久化的新的规范&#xff0c;也是一个用于存取某种数据仓库中的对象的标准化API.作用:用于存取某种数据仓库中的对象 2.JPA: JPA是Java Persistence API的简称&#xff0c;中文名Java持久层API&#xff0c;是JDK 5.0注解或XML描述对象&a…

mysql资质_MySQL语句与Java代码实现按需过滤企业员工的资质证书

在企业ERP中&#xff0c;每位员工拥有多个资质证书&#xff0c;资质证书有种类、名称和登记时间&#xff0c;以及变动时间和结束时间的主要属性&#xff1b;现在有一个需求&#xff0c;员工在系统查看自己的信息之时&#xff1a;同一种类、同一名称、同一登记时间的资质证书&am…

java对象的序列化和反序列化详细解释

java对象的序列化和反序列化是什么意思 1、序列化是干啥用的&#xff1f; 序列化的原本意图是希望对一个Java对象作一下“变换”&#xff0c;变成字节序列&#xff0c;这样一来方便持久化存储到磁盘&#xff0c;避免程序运行结束后对象就从内存里消失&#xff0c;另外变换成字…

oracle to mysql demo_oracle to mysql

http://blog.csdn.net/hwhua1986/article/details/53257427oracle到mysql的迁移步骤及各种注意事项http://www.2cto.com/database/201305/210248.htmlhttp://www.cnblogs.com/HondaHsu/p/3641116.htmlhttp://www.cnblogs.com/HondaHsu/p/3641183.htmlhttp://www.cnblogs.com/Ho…

IDEA快捷键调整字体大小 设置 (Ctrl+滚轮) 调整字体大小

IDEA设置Ctrl滚轮调整字体大小 第一步&#xff1a;打开idea 设置界面&#xff1a; 第二步&#xff1a;勾选上下图中红色部分即可实现 保存后&#xff0c;ctrl滚轮就能改变代码字体大小

mysql5.7主从全备恢复_mysql主从,或者全备份

mysql的主从复制依赖bin-log日志&#xff0c;会因为各种问题中断&#xff0c;如flush table&#xff0c;网络问题等&#xff0c;还有一些未知的bug因素&#xff0c;之前使用mysql import方式恢复速度太慢&#xff0c;一个3G的库要恢复一个下午&#xff0c;实在是无法忍受。现在…

IDEA中三种注释方式的快捷键

三种注释方式 单行注释、多行注释、方法或类说明注释&#xff08;文档注释&#xff09;。 单行注释 快捷键&#xff1a;Ctrl /   使用Ctrl /&#xff0c; 添加单行注释&#xff0c;再次使用&#xff0c;去掉行注释    多行注释 快捷键&#xff1a;Ctrl Shift /   使用…

lombok @Accessors用法详解(一看就能懂)

Accessors(chaintrue) 链式访问&#xff0c;该注解设置chaintrue&#xff0c;生成setter方法返回this&#xff08;也就是返回的是对象&#xff09;&#xff0c;代替了默认的返回void。 package com.pollyduan;import lombok.Data; import lombok.experimental.Accessors;Data …

随机森林特征重要性计算_R语言随机森林模型中具有相关特征的变量重要性

原文链接&#xff1a;http://tecdat.cn/?p13546​tecdat.cn变量重要性图是查看模型中哪些变量有趣的好工具。由于我们通常在随机森林中使用它&#xff0c;因此它看起来非常适合非常大的数据集。大型数据集的问题在于许多特征是“相关的”&#xff0c;在这种情况下&#xff0c;…

在IDEA中右键New没有创建Mapper文件选项解决办法

问题解决 1.File–>Settings–>Editor–>File and Code Templates 模板中输入内容 <?xml version"1.0" encoding"utf-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/…

mysql合并多条纪录字段_mysql合并多条记录的单个字段去一条记录

mysql怎么合并多条记录的单个字段去一条记录&#xff0c;今天在网上找了一下&#xff0c;方法如下&#xff1a;测试用表结构&#xff1a;-- ------------------------------------------------------------ 表的结构 tet--CREATE TABLE IF NOT EXISTS tet (id int(11) NOT NULL…

三步教你解决Invalid bound statement (not found): com.xxx.dao.xxxDao.selectByxx错误!!!!很简单

1 问题实质: dao层(又叫mapper接口)跟mapper.xml文件没有映射 2 问题原因: 出现这种映射问题的原因分为低级原因和更低级原因两种 更低级原因: (1)dao层的方法和mapper.xml中的方法不一样; (2)mapper中的namespace resultParameter 和对应的dao层entity层不一样 (3)拼写错误 如…

java mysql lru_Java集合详解5:深入理解LinkedHashMap和LRU缓存

今天我们来深入探索一下LinkedHashMap的底层原理&#xff0c;并且使用linkedhashmap来实现LRU缓存。摘要&#xff1a;HashMap和双向链表合二为一即是LinkedHashMap。所谓LinkedHashMap&#xff0c;其落脚点在HashMap&#xff0c;因此更准确地说&#xff0c;它是一个将所有Entry…