来自 新葡亰数据库 2019-11-27 16:48 的文章
当前位置: 澳门新葡亰app > 新葡亰数据库 > 正文

用强制订阅实现数据库同步操作,卸载分发服务

    使用AWS DMS(Database Migration Service卡塔 尔(英语:State of Qatar)将SQL Server数据库同步到AWS的Data 雷克上,须要在地头源数据库上布置复制,在配置分发向导最终一步时,际遇下边错误:

1、分发与复制
用强拟订阅完成数据库同步操作
多量和批量的数码能够用数据库的一路机制管理:
//
说明:
为便于操作,全部操作均在昭示服务器(分发服务器)上操作,并行使推形式
在顾客机器使用强制定阅方式。
测量试验通过
//
--1:环境
服务器情形:
机器名称: ZehuaDb
操作系统:Windows 二〇〇三 Server
数据库版本:SQL 2002 Server 个人版

 

客户端
机器名称:Zlp
操作系统:Windows 二零零四 Server
数据库版本:SQL 二零零二 Server 个人版

 

--2:建客户帐号
在服务器端建立域顾客帐号
本身的计算机管理->本地客户和组->客商->创设
UserName:zlp
UserPwd:zlp

TITLE: Microsoft.SqlServer.ConnectionInfo

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

 

SQL Server could not configure 'xxxx' as a Distributor.

 

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

ADDITIONAL INFORMATION:

 

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

 

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

 

服务器 'xxxx' 已被定义为分发服务器。若要将该服务器重新配置为分发服务器,必须首先卸载现有的分发服务器。使用存储过程 sp_dropdistributor,或使用禁用发布和分发向导。已将数据库上下文更改为 'master'。 (Microsoft SQL Server, Error: 14099)

--3:重新起动服务器MSSQLServer
本人的Computer->调节面版->管理工科具->服务->MSSQLServer 服务
(改进为:域客户帐号,大家新建的zlp顾客 ./zlp,密码:zlp)

 

--4:安装分发服务器
A:配置分发服务器
工具->复制->配置发表、订阅服务器和散发->下一步->下一步(全体的均采用私下认可配置)
B:配置公布服务器
工具->复制->创造和治本公布->选取要颁发的数据库(SZ)->下一步->快照公布->下一步->
分选要发表的内容->下一步->下一步->下一步->实现
C:强制配置订阅服务器(推形式,拉情势与此周围)
工具->复制->配置揭橥、订阅服务器和分发->订阅服务器->新建->SQL Server数据库->输入客商端服务器名称(ZLP)->使用SQL Server 身份验证(sa,空密码)->分明->应用->明确
D:初阶化订阅
复制监视器->发表服务器(ZEHUADB)->双击订阅->强制新建->下一步->选取启用的订阅服务器->ZLP->
下一步->下一步->下一步->下一步->完成

服务器 'xxxx' 已被定义为散发服务器。若要将该服务注重新配置为散发服务器,必需首先卸载现成的散发服务器。使用存款和储蓄过程sp_dropdistributor,或接收禁止使用宣布和散发向导。已将数据库上下文改过为 'master'。 (Microsoft SQL Server, Error: 14099)

--5:测量检验配置是或不是成功
复制监视器->发表服务器(ZEHUADB)->双击SZ:SZ->点景况->点及时运转代理程序
查看:
复制监视器->发表服务器(ZEHUADB)->SZ:SZ->接收ZLP:SZ(类型强制)->鼠标右键->运行同步管理
假设没有不当标识(鲜蓝叉),恭喜你安插成功
--6:测量检验数据
--在服务器实践:
慎选叁个表,实施如下SQL
insert into WQ_NEWSGROUP_S select '测量试验成功',5
复制监视器->发表服务器(ZEHUADB)->SZ:SZ->快速照相->运维代理程序
去查看同步的 WQ_NEWSGROUP_S 是不是插入了一条新的笔录

 

测量试验截止,通过。

 

--7改正数据库的联应时间,平常选用晚上实践数据库同步管理

 

只顾表达:

 

服务器黄金时代端无法以(local)进行数据的颁发与分发,必要先删除注册,然后新建注册本地计算机名称
卸载格局:工具->复制->禁绝发布->是在"ZehuaDb"上稳步发布,卸载全体的数据库同步安插服务器
留意:发布服务器、分发服务器中的SQLServerAgent服务必须运营
      采取推格局: "D:/Microsoft SQL Server/MSSQL/REPLDATA/unc" 目录文件能够不设置分享
      拉形式:则必要分享~!

澳门新葡亰官网APP 1

一点点数据库同步能够选择触发器完毕,同步单表就可以:

 

安插进度中或许现身的难点,总括如下:

在SQL Server 贰零零肆里安装和动用数据库复制早前,应先检查有关的几台SQL Server服务器下边几点是或不是知足:
    1、MSSQLserver和Sqlserveragent服务是还是不是是以域顾客地点运转并运维的(./administrator客户也是足以的卡塔 尔(阿拉伯语:قطر‎
        假使登入用的是本地系统帐户local,将不具备网络功用,会生出以下错误:
        进度不可能连接到Distributor '@Server name'
      (假若你的服务器已经用了SQL Server全文字笔迹核实索服务, 请不要改正MSSQLserver和Sqlserveragent服务的local运营。
       会照成全文字笔迹查证索服务无法用。请换此外大器晚成台机械来做SQL Server 二零零零里复制中的分发服务器。)   
      校正服务运维的记名顾客,须要再行启航MSSQLserver和Sqlserveragent服务技艺卓有功用。   
    2、检查相关的几台SQL Server服务器是不是改善名称(供给srvid=0的地面机械上srvname和datasource同样)
       在询问解析器里实践:
         use master
         select srvid,srvname,datasource from sysservers   
       若无srvid=0恐怕srvid=0(也正是本机器卡塔 尔(英语:State of Qatar)但srvname和datasource不相像, 须求按如下方法校勘:
         USE master
        GO
        -- 设置五个变量
        DECLARE @serverproperty_servername varchar(100),
                @servername    varchar(100)
        -- 得到Windows NT 服务器和与钦赐的 SQL Server 实例关联的实例新闻
        SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY('ServerName'))
        -- 重返运转 Microsoft SQL Server 的地面服务器名称
        SELECT @servername = CONVERT(varchar(100), @@SERVERNAME)
        -- 显示获取的这三个参数
        select @serverproperty_servername,@servername
        --如果@serverproperty_servername和@servername分歧(因为您改过Computer名字),再运转上边包车型地铁
        --删除错误的服务器名
        EXEC sp_dropserver @server=@servername
        --加多正确的劳动器名
        EXEC sp_addserver @server=@serverproperty_servername, @local='local'
       纠正那项参数,供给再一次开动MSSQLserver和Sqlserveragent服务工夫奏效。   
       这样一来就不会在成立复制的历程中冒出18482、18483破绽百出了。
3、检查SQL Server公司微处理器里面相关的几台SQL Server注册名是或不是和上边第二点里介绍的srvname相通
        不能用IP地址的注册名。
      (大家能够删掉IP地址的挂号,新建以SQL Server助理馆员级其余顾客注册的劳动器名卡塔 尔(阿拉伯语:قطر‎
       那样一来就不会在开立复制的进程中出现14010、20104、18456、18482、18483破绽超多了。   
    4、检查不毫无干系系的几台SQL Server服务器网络是不是能够健康访问
        若是ping主机IP地址能够,但ping主机名不通的时候,需求在   
            winnt/system32/drivers/etc/hosts   (WIN2000)
            windows/system32/drivers/etc/hosts (WIN2003)
               文件里写入数据库服务器IP地址和主机名的附和关系。
           例如:   
           127.0.0.1       localhost
           192.168.0.35    oracledb    oracledb
           192.168.0.65    fengyu02    fengyu02
           202.84.10.193   bj_db       bj_db   
         大概在SQL Server顾客端互连网实用工具里构建外号,比方:
      5、系统供给的扩展存款和储蓄过程是还是不是留存(固然不设有,需求还原):
         sp_addextendedproc 'xp_regenumvalues',@dllname ='xpstar.dll'
         go
         sp_addextendedproc 'xp_regdeletevalue',@dllname ='xpstar.dll'
         go
         sp_addextendedproc 'xp_regdeletekey',@dllname ='xpstar.dll'
         go             
         sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll' 
    接下去就能够用SQL Server集团微处理机里[复制]-> 右键选择
        ->[陈设发表、订阅服务器和分发]的图形分界面来布局数据库复制了。
    上面是按顺连串出配置复制的步骤:
    后生可畏、建构公布和分发服务器
        [应接使用布置公布和散发向导]->[分选分发服务器]
       ->[使"@servername"成为它和煦的散发服务器,SQL Server将创设分发数据库和日志]
       ->[拟订快速照相文件夹]-> [自定义配置] -> [否,使用下列的默许配置] -> [完成]
    上述手续完结后, 会在脚下"@servername" SQL Server数据Curry创制了一个distribion库和
            一个distributor_admin管理员级其余客商(大家能够自便校正密码)
    服务器上新扩充了八个作业:
                [ 代理程序历史记录消灭: distribution ]
                [ 分发消除: distribution ]
                [ 复制代理程序检查 ]
                [ 重新开端化存在数据申明退步的订阅 ]
    SQL Server集团微型机里多了二个复制监视器, 当前的那台机械就足以发表、分发、订阅了。
    我们再一次在SQL Server公司微处理器里[复制]-> 右键接受
        ->[安排发表、订阅服务器和分发],能够见见相符下图:
    大家得以在 [发布服务器和分发服务器的性质] 窗口
        -> [文告服务器] -> [新增]        -> [确定]
        -> [宣告数据库] -> [事务]/[合并] -> [澳门新葡亰官网APP,确定]
        -> [订阅服务器] -> [新增]        -> [确定]       
       把网络上的任何SQL Server服务器增加成为发表依然订阅服务器.
       新增添大器晚成台发布服务器的选项:   
    小编这里新创设的JIN001宣布服务器是用管理员级其他数据库客商test连接的,      
    到发表服务器的管理链接要输入密码的可选框, 私下认可的是选中的,
    在新建的JIN001公布服务器上确立和分发服务器FENGYU/FENGYU的链接的时须要输入distributor_admin客商的密码
         到发表服务器的军管链接要输入密码的可选框,也得以不选,
         也便是无需密码来确立发表到分发服务器的链接(那当然欠缺安全,在测量检验处境下能够运用)
       新增加生机勃勃台订阅服务器的选项:

二、新创建的互联网上另生龙活虎台公布服务器(举例JIN001)接受分发服务器
    
    [迎接使用安插发表和分发向导]->[慎选分发服务器]
澳门新葡亰app,    
     -> 使用下列服务器(选定的服务器必得已布置为散发服务器) -> [选定服务器](例如FENGYU/FENGYU)
     -> [下一步] -> [输入分发服务器(比如FENGYU/FENGYU卡塔 尔(阿拉伯语:قطر‎的distributor_admin客商的密码一遍]   
     -> [下一步] -> [自定义配置] -> [否,使用下列的默许配置]    
     -> [下一步] -> [完成] -> [确定]
   
     建构叁个数据库复制发表的进度:
     
     [复制] -> [揭露内容] -> 右键选取 -> [新建发表] 
     -> [下一步] -> [选料发布数据库] -> [当选一个待揭橥的数据库]        
     -> [下一步] -> [分选发布项目] -> [事情公布]/[合併发表]
     -> [下一步] -> [点名订阅服务器的项目] -> [运行SQL Server 2004的服务器]     
     -> [下一步] -> [点名项目] -> [在专门的学问发布中只可以够揭橥带主键的表] -> [当选多少个有主键的待公布的表] 
         ->[在联合公布中会给表扩张唯少年老成性索引和 ROWGUIDCOL 属性的天下第一标志符字段[rowguid],默许值是newid()]         
               (增添新列将: 引致不带列列表的 INSERT 语句失利,扩张表的轻重缓急,增添浮动第三个快速照相所必要的小运)        
         ->[入选二个待发布的表]
     -> [下一步] -> [慎选宣布名称和陈诉] -> 
     -> [下一步] -> [自定义公布的性质] -> [否,依照钦定格局成立公布]
     -> [下一步] -> [完成] -> [关闭]
     
     发布属性里有不菲可行的选项:设定订阅到期(比方24钟头)
      
         设定发表表的品种性质:
     常规窗口能够钦命发表指标表的名目,能够跟原先的表名称不等同。
     下图是命令和快速照相窗口的栏目  

    ( SQL Server 数据库复制手艺实际上是用insert,update,delete操作在订阅服务器上海重机厂做通知服务器上的事务操作
     
      看文档资料须要把宣布数据库设成完全恢复生机情势,事务才不会屏弃
      
      但自个儿要还好测验中发觉公布数据库是简约恢复生机方式下,每10秒生成一些大事务,10秒钟后再裁减数据库日志,
          那之间发表和订阅服务器上的作业都中断,暂停恢复后并从未遗失任何事情纠正)
     
     揭橥表能够做多少筛选,比如只选用表里面包车型地铁部分列:
     
    比方只接纳表里有个别切合条件的记录, 我们得以手工编写制定挑选的SQL语句:
     
    公布表的订阅选项,并可以创建强制定阅:    
        
    成功建构了透露之后,公布服务器上新添了贰个功课: [ 失效订阅消逝 ]
    
    分发服务器上新添了三个作业: 
                [ JIN001-dack-dack-5 ] 类型[ REPL快照 ]
                [ JIN001-dack-3 ]      类型[ REPL日志读取器 ]

         上面蓝绿字的名称会依据发布服务器名,公布名及第两次发表而利用分歧的数码
            
REPL快速照相作业是SQL Server复制的前提条件,它会先把发布的表结构,数据,索引,节制等转移到公布服务器的OS目录下文件
    (当有订阅的时候才会生成, 当订阅央求最早化或然依照某些时间表调治生成)

REPL日志读取器在专门的工作复制的时候是一向处在运转状态。(在联合复制的时候能够依照调治的时间表来运营)

      创建三个数据库复制定阅的历程: 
      
     [复制] -> [订阅] -> 右键接收 -> [新建央浼订阅] 
     -> [下一步] -> [搜寻发表] -> [翻开已登记服务器所做的揭橥]    
     -> [下一步] -> [选择发表] -> [入选已经确立揭橥服务器上的数据库公布名]      
     -> [下一步] -> [钦点同步代理程序登陆] -> [今世理程序连接到代理服务器时:使用SQL Server身份验证]
                                               (输入发表服务器上distributor_admin顾客名和密码)                   
     -> [下一步] -> [选取指标数据库] -> [慎选在中间创设订阅的数目库名]/[也能够新建叁个库名]   
     -> [下一步] -> [允许无名订阅] -> [是,生成无名氏订阅]      
     -> [下一步] -> [早先化订阅] -> [是,起始化架商谈多少]      
     -> [下一步] -> [快速照相传送] -> [应用该文告的暗中认可快速照相文件夹中的快速照相文件]
                    (订阅服务器要能访谈发布服务器的REPLDATA文件夹,假设反常,可以手工业安装互联网分享及分享权限)   
     -> [下一步] -> [快速照相传送] -> [运用该布告的暗中同意快速照相文件夹中的快速照相文件]      
     -> [下一步] -> [设置分发代理程序调节] -> [应用下列调整] -> [更改] -> [比如说每五分钟调节三回]      
     -> [下一步] -> [起步要求的服务] -> [该订阅必要在颁发服务器上运行SQLServerAgent服务]      
     -> [下一步] -> [完成] -> [确定]      
     
    成功创建了订阅后,订阅服务器上新扩张了三个门类是[REPL-分发]学业(合併复制的时候体系是[REPL-合并])
    它会依照我们给的时日调整表运维数据库同步复制的功课
    
    查看它的历史记录运转状态,例图:

    在散发服务器的[复制监视器]->[发表服务器]->[发表名称]->[日记读取器]->右键选用->[代理程序历史记录], 例图:

    
    三、SQL Server复制配置好后, 恐怕现身至极境况的试验日志:

    1.公布服务器断网,sql server服务关闭,重运营,关机的时候,对曾经设置好的复制未有多大影响

        中断时期,分发和订阅都接到到未有复制的事体消息

    2.分发服务器断网,sql server服务关闭,重运行,关机的时候,对已经安装好的复制有意气风发部分震慑

        中断时期,公布服务器的政工排队聚积起来
           (假若设置了较长期才删除过期订阅的选项, 繁忙发表数据库的事情日志恐怕会较高速膨胀),
        
        订阅服务器会因为访问不到公布服务器,一再重试
            大家能够安装重试次数和重试的岁月间距(最大的重试次数是9999, 借使每分钟重试三次,能够帮助约6.9天不出错)

        分发服务器sql server服务运维,互联网相联今后,发布服务器上的堆集作业将定时间各样功效到订阅机器上:

        会要求四个比较长的时间(实际上是浮动所有事务的insert,update,delete语句,在订阅服务器上去试行)
        大家在平凡的PC机上尝试的六贰11个职业1002贰20个指令施行花了7分28秒.

    3.订阅服务器断网,sql server服务关闭,重运维,关机的时候,对曾经设置好的复制影响很大,大概须要重新初试化

        咱们尝试境况(订阅服务器)从18:46分意外停机以, 第二天8:40分重运维后, 
            已经设好的复制在8:40分现在又起来不荒谬运作了, 发布服务器上的聚积作业将准期间顺序作用到订阅机器上
            但复制微型机里涌出快照的错误提醒, 快照或然必要再一次初试化,复制恐怕须要再度运行.
            (大家尝试情状的机器并不曾进展快速照相初试化,复制仍是打响运营的)
    
    四、删除已经济建设好的昭示和定阅能够一贯用delete删除开关
    
    我们最佳总是按先删定阅,再删公布,最后禁止使用公布的各类来操作。 
    借使要根本去除SQL Server上面包车型客车复制设置, 能够那样操作:

    [复制] -> 右键选择 [剥夺宣布] -> [迎接使用禁止使用宣布和散发向导]
     -> [下一步] -> [剥夺发表] -> [要在"@servername"上禁止使用公布]      
     -> [下一步] -> [成就禁止使用宣布和散发向导] -> [完成]
     
   大家也得以用T-SQL命令来成功复制中公布及订阅的创始和删除, 选中早已设好的表露和订阅, 按属标右键
   可以[生成SQL脚本]。(这里就不详细讲了, 前面推荐的网址内有相比详细的剧情)
   
   当您希图删除只怕转移一个table时,现身以下错误
   Server: Msg 3724, Level 16, State 2, Line 1
   Cannot drop the table 'object_name' because it is being used for replication.

   相比规范的图景是该table曾经用于复制,可是后来又删除了复制

   管理措施:
   select * from sysobjects where replinfo >'0'

   sp_configure 'allow updates', 1
   go
   reconfigure with override
   go
   begin transaction
   update sysobjects set replinfo = '0' where replinfo >'0'
   commit transaction
   go
   rollback transaction
   go
   sp_configure 'allow updates', 0
   go
   reconfigure with override
   go

疑问:
在统生龙活虎复制配置完全后,假如同步代理截止了。作者要在前后相继中去重新起动归拢复制的一只代理。请问使用什么命令或存款和储蓄进程吧


化解办法:
sp_start_job
指令 SQL Server 代理程序及时实践作业。

示例
下例运营名称为 Nightly Backup 的学业。

USE msdb
EXEC sp_start_job @job_name = 'Nightly Backup'

并发这么些荒诞是因为早先配置过Replication,然而未有清理干净。如下所示,数据仓库储存在msdb.dbo.MSdistributor等表。可以奉行sp_dropdistributor 卸载分发服务器。

 

澳门新葡亰官网APP 2

 

USE master;

GO

EXEC sp_dropdistributor;

GO

 

 

 

卸载分发服务器。那几个指标都不设有了,然后就足以健康安顿分发向导,不会冒出那一个错误了。

 

SELECT * FROM msdb.dbo.MSdistributor;

 

Msg 208, Level 16, State 1, Line 1

 

对象名'msdb.dbo.MSdistributor' 无效。

本文由澳门新葡亰app发布于新葡亰数据库,转载请注明出处:用强制订阅实现数据库同步操作,卸载分发服务

关键词: