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,一经查实,立即删除!

相关文章

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

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

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

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

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…

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

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

随机森林特征重要性计算_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…

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

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

springBoot的自动扫描包范围

springboot扫描包的范围的约定 SpringBoot的注解扫描的默认规则是从SpringBoot的项目入口类。若入口类所在的包是com.example.demo那么自动扫描包的范围是com.example.demo包及其下面的子包&#xff0c;如果service包和dao包不在此包下面&#xff0c;则不会自动扫描。 手动配置…

mysql一共有多少引擎_MySQL存储引擎你们知道多少?

MySQL是我们经常使用的数据库处理系统(DBMS)&#xff0c;不知小伙伴们有没有注意过其中的“存储引擎”(storage_engine)呢&#xff1f;有时候面试题中也会问道MySQL几种常用的存储引擎的区别。这次就简短侃一下存储引擎那些事儿。先去查一下“引擎”概念。引擎(Engine)是电子平…

python词云模糊_用Python和WordCloud绘制词云(内附让字体清晰的秘笈)

环境及模块&#xff1a;Win7 64位Python 3.6.4WordCloud 1.5.0Pillow 5.0.0Jieba 0.39目标&#xff1a;绘制安徽省2018年某些科技项目的词云&#xff0c;直观展示热点。思路&#xff1a;先提取项目的名称&#xff0c;再用Jieba分词后提取词汇&#xff1b;过滤掉“研发”、“系列…

shiro框架,自定义realm注入service失败解决办法

shiro框架,自定义realm注入service失败解决办法 报错如下: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘shiroFilter’ defined in ServletContext resource [/WEB-INF/config/spring-shrio.xml]: Cannot resolve reference …

MySQL建立多选一列表_如何实现自定义列表的多个item,的单选或多选

展开全部自定义ListView item中包含一个e69da5e6ba903231313335323631343130323136353331333337376333textview 和checkbox,checkbox选中级别高于item,故在xml中进行屏蔽单选方法:(该方法同样适用于radiobutton)main.xmlandroid:layout_width"match_parent"android:l…

spring的bean不能注入的几种原因及分析

1、异常信息 2.有可能引起的原因: 1、在applicationContext.xml的配置文件里的包扫描不对。 2、在web.xml里没有加载spring容器。 3、分布式工程&#xff0c;使用dubbo或者hsf通信&#xff0c;在服务层&#xff0c;或者消费层&#xff0c;单词写错了。 4、还有一种可能&am…

python后端需要什么基础_【后端开发】python爬虫需要什么基础

入手爬虫确实不要求你精通Python编程&#xff0c;但基础知识还是不能忽视的&#xff0c;那么我们需要哪些Python基础呢&#xff1f;首先我们先来看看一个最简单的爬虫流程&#xff1a;第一步要确定爬取页面的链接&#xff0c;由于我们通常爬取的内容不止一页&#xff0c;所以要…

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyR

异常信息&#xff1a; org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2 at org.mybatis.spring.MyBatisExceptionTransl…

java xms512m_安装版的tomcat设置JAVA_OPTS=-Xms128M -Xmx512M -XX:PermSize=128M -XX:MaxPermSize=512M...

tomcat如果是通过windows服务启动&#xff0c;执行的是bin\tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.解决办法:修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\JavaOptions原值为-Dcatalina.homeE:\Tomcat…

异常信息java.lang.Object.wait(Native Method) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:

在写springboot项目时出现了一个这样的错误&#xff01;&#xff01; ava.lang.Object.wait(Native Method) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143) com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43) …

Error querying database. Cause: java.lang.UnsupportedOperationException

mybatis抛出以下异常&#xff1a; Error querying database. Cause: java.lang.UnsupportedOperationException 对应语句如下&#xff1a; select distinct code from ssj_dictionary 错误原因是 resultType“java.util.List” &#xff0c;这里应该改成&#xff1a; result…