SQL数据库同步方法-详细操作手册(含图)
SQL2024数据库同步复制操作
SQL2024数据库同步复制操作SQL Server 2005提供了一种叫做数据库同步复制的功能,用于在多个数据库之间保持数据的一致性。
下面将详细介绍数据库同步复制的操作过程。
数据库同步复制是指将一个数据库的所有更改操作应用到其他一个或多个目标数据库中,以使所有数据库的数据保持同步。
它可以用于多个用例,如数据备份、数据分发和负载均衡等。
第一步是创建发布服务器和订阅服务器。
发布服务器是包含源数据库的服务器,订阅服务器是包含目标数据库的服务器。
在发布服务器上,需要创建一个发布者,这是发布和分发数据的主要角色。
在订阅服务器上,需要创建一个订阅者,这是接收和应用来自发布者的数据的主要角色。
第二步是配置发布服务器。
在发布服务器上,需要使用SQL Server 管理工具设置发布服务器的属性。
这些属性包括发布服务器的名称、身份验证模式和连接字符串等。
第三步是创建发布。
在发布服务器上,需要创建一个发布,定义要复制的对象以及复制的规则。
可以选择复制整个数据库或者只复制部分表。
还可以选择是复制所有更改还是只复制特定类型的更改,如插入、更新或删除。
第四步是配置订阅服务器。
在订阅服务器上,需要使用SQL Server 管理工具设置订阅服务器的属性。
这些属性包括订阅服务器的名称、身份验证模式和连接字符串等。
第五步是创建订阅。
在订阅服务器上,需要创建一个订阅,定义要接收的数据以及接收数据的规则。
可以选择接收整个数据库的数据或者只接收特定表的数据。
还可以选择是接收所有更改还是只接收特定类型的更改。
第六步是启动复制。
在发布服务器和订阅服务器上,需要启动复制服务以开始复制数据。
可以通过SQL Server管理工具或者使用复制存储过程来启动复制。
第七步是监视复制。
在复制过程中,可以使用SQL Server管理工具来监视复制的状态。
可以查看复制进度、错误消息以及其他相关信息。
第八步是管理复制。
在复制过程中,可能需要对复制进行管理,如添加或删除发布者、订阅者或订阅。
SqlServer数据库同步方案详解
SqlServer数据库同步是项目中常用到的环节,若一个项目中的数据同时存在于不同的数据库服务器中,而这些数据库需要被多个不同的网域调用时,配置SqlServer数据库同步是个比较好的解决方案。
SqlServer数据库同步的配置比较烦锁,下面对其配置详细步骤进行介绍:一、数据复制前提条件1. 数据库故障还原模型必需为完全还原模型。
2. 所有被同步的数据表都必须要用主键。
3. 发布服务器、分发服务器和订阅服务器必须使用计算机名称来进行SQLSERVER服务器的注册。
4. SQLSERVER必需启动代理服务,且代理服务必需以本地计算机的帐号运行。
二、解决前提条件实施步骤1. 将数据库故障还原模型调整为完全还原模型。
具体步骤如下:打开SQLSERVER企业管理器——选择对应的数据库——单击右键选择属性——选择”选项”——故障还原模型选择完全还原模型。
2. 所有被同步的数据表都必须要用主键。
(主要指事务复制)如果没有主键的数据表,增加一个字段名称为id,类型为int 型,标识为自增1的字段。
3. 发布服务器、分发服务器和订阅服务器必须使用计算机名称来进行SQLSERVER服务器的注册。
在企业管理器里面注册的服务器,如果需要用作发布服务器、分发服务器和订阅服务器,都必需以服务器名称进行注册。
不得使用IP地址以及别名进行注册,比如LOCAL, “.”以及LOCALHOST等。
如果非同一网段或者远程服务器,需要将其对应关系加到本地系统网络配置文件中。
文件的具体位置在%systemroot%\system32\drivers\etc\hosts配置方式: 用记事本打开hosts文件,在文件的最下方添加IP地址和主机名的对应关系。
如图:SQLSERVER必需启动代理服务,且代理服务必需以本地计算机的帐号运行。
启动SQLSERVER代理的方法:我的电脑——单击右键”管理”——服务——SQLSERVERAGENT 将其设为自动启动。
SQL数据库同步方法-详细操作手册(含图)
SQL数据库同步方法-详细操作手册(含图)SQL数据库同步方法-详细操作手册(含图)一、同步前提注意:使用合并复制时sql2000不允许更改两边的数据库结构。
即两边数据库结构要一样(表数,列数等一致),默认第一次同步源会覆盖目标。
有些数据库本身的触发器里含有alter 语句,“这种语句和复制(无论哪种)有冲突”(微软)。
要建议用户修改这种语句。
合并复制的效果:源和目标无论哪方修改以前的数据或增加新数据均会同步给对方。
二、新建用户发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户我的电脑--控制面板--管理工具--计算机管理--用户和组--右键用户--新建用户--建立一个隶属于administrator组的登陆windows的用户三、新建共享我的电脑--D:\ 新建一个目录,名为: PUB--右键PUB目录--属性--共享--选择"共享该文件夹"--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限,推荐为everyone有所有权限--确定测试:从各自两边“运行”输入“\\对方主机名\pub”,就可以匿名访问并新增或修改文件的话就说明配置成功;另外还要从各自两边数据库的“查询分析器”登陆对方数据库,使用远端机器名,可以登陆的话说明配置成功。
如果不能用\\对方主机名\pub访问,则在网卡属性中添加NETBIOS协议。
在cmd的dos下要求能ping远端机器名,返回的结果要能转换成远端的ip地址信息。
如不能ping通,则需要修改本地的localhost文件。
在\windows\systenm32\dirver\etc目录下hosts.msn文件(用记事本打开)中添加如下内容:127.0.0.1 localhost远端ip 远端机器名四、设置代理服务设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)开始--程序--管理工具--服务--右键SQLSERVERAGENT--属性--登陆--选择"此账户"--输入或者选择第一步中创建的windows登录用户名--"密码"中输入该用户的密码完成该步骤设置后要将SQLSERVERAGENT服务设置为自动启动。
SqlServer主从数据库同步方法
SQL Server 2008 R2 主从数据库同步一、准备工作:主数据库服务器:OS:Windows Server 2008 R2 DB: SQL Server 2008 R2 Hostname : CXMasterDBIP: 192.168.1.224/24 dg: 192.168.1.1DNS: 192.168.1.19 DNS: 202.96.209.133从数据库服务器:OS:Windows Server 2008 R2 DB: SQL Server 2008 R2 Hostname : CXSlaveDBIP: 192.168.1.225/24 dg: 192.168.1.1DNS: 192.168.1.19 DNS: 202.96.209.133//主数据库Northwind,如下图所示://从CXSlaveDB中,没有数据库Northwind,如下图所示:二、创建SQL Server数据库的管理员用户和共享文件夹权限,设置SQL Server服务和SQL Server代理的登录用户为sqladmin1. 在主数据库CXMasterDB服务器上创建用户sqladmin,如下图所示:win + R ---> lusrmgr.msc回车,如下图所示://设置sqladmin的权限2. 同理,在从数据库CXSlaveDB服务器上创建用户sqladmin且加入administrators组,其他都删除之!3. 分别在主从数据库服务器上创建用于存放主从备份日志文件的共享文件夹DB_Backpup且共享权限和NTFS权限,如如下图所示:4. 分别从主数据库服务器上和从数据库服务器上打开SQLServer配置管理器,将SQLServer服务和SQLServer代理服务的“登录身份为”sqladmin 用户且启动模式为:自动,如下图所示:三、配置SQLServer日志传送1. 在主数据库服务器CXMasterDB上配置//用sqladmin连接到本地SQL Server数据库服务器//在数据库实例中,配置服务器身份验证模式和服务器代理帐户2. 在主数据库服务器CXMasterDB中的Northwind数据库的属性的配置//在Northwind数据库的属性 --> 选项的配置//在Northwind数据库的属性 --> 事务日志传送的配置//事务日志备份设置,如下图所示://在上图中,点击计划…后,弹出如下图所示:一路确定!见到下图为止!//添加辅助数据库实例和数据库//连接到辅助服务器实例和辅助数据库//辅助数据库设置--->初始化辅助数据库注:下面查看看,辅助服务器CXSlaveDB中数据库的数据文件和日志文件的文件夹的路径//辅助数据库设置--->复制文件//在上图中击点计划(E) …则弹出如下图所示,设置从数据库还原日志的计划任务://辅助数据库设置--->还原事务日志//在上图中击点计划(E) …则弹出如下图所示,设置从数据库还原日志的计划任务://将配置信息导出到文件//在下图中点击确定后,一目了然了!三、验证SQL Server 2008 R2主从数据库是否同步1. 我们去从服务器CXSlaveDB看看是否有Northwind数据库,由下图所示,可见成功了!2. 现在我们去主数据库服务器CXMasterDB中Northwind数据库添加如下图所示的表://创建表名为雇员通讯录//刷新下,就可见到 dbo.雇员通讯录,如下图所示:3. 现在我们去从数据库服务器CXSlaveDB的Northwind数据库是否有表dbo.雇员通讯录,如下图所示:思考:下面我们到主数据库服务器CXMasterDB的Northwind数据库中,删除表dbo.雇员通讯录看看从数据库CXSlaveDB的Northwind数据库中的表dbo.雇员通讯录,是否也被删除了?附:1. 如何删除Northwind(备用 / 只读)数据库//在数据库属性–-> 选项 ---> 状态 --->数据库为只读修改为 False即可!能删除吗???数据库同步 SQL Server 2008 R2 SQL主从数据库同步 SQL 2008同步。
SQL2008数据库同步教程
SQL2008数据库同步教程Sql server 2008数据库同步教程net user administrator /active:yes前言:此方案利用镜像的方法实现同步,与发布订阅方法相比具有以下优点:1、同步效率高,几乎是实时同步;2、数据库完整性好,能保证主、备服务器数据库高度统一;3、不需要区分数据库表有没有主键。
实现前提:1、主、备服务器系统版本与数据库版本一致;2、主、备服务器windows账户密码一致;3、主、备服务器sql server登录密码一致;4、主、备服务器同步前数据库完全一样(包括数据库名);5、主、备服务器在同一局域网内。
6、启用sql的tcp/ip,在配置管理器里设置(主备同时启用)7、主、备服务器sql server服务登录账户及密码一样(统一设为.\administrator,在配置管理器里设)8、登陆电脑要登administrator9、alter database 数据库名set partner off(删除数据库还原)具体操作步骤:主服务器名:sa-pc镜像服务器名:pc02数据库名:test1、登录主服务器sa-pc数据库,右击要同步的数据库test——属性——选项,将恢复模式设为完整。
2、备份主服务器sa-pc数据库,将备份类型选为“完整”。
3、备份主服务器数据库,将备份类型选为“事务日志”4、登录镜像服务器pc02数据库,依次将备份的数据和事务日志还原到镜像服务器上,选择“覆盖现有数据库”、“不对数据库执行任何操作……”(分两次还原,第一次先还原数据,第二次还原事务日志),还原完成后镜像服务器数据库test会显示“正在还原”5、登录主服务器sa-pc 数据库,右击要同步的数据库test ——任务——镜像,点击配置安全性进入配置数据库镜像安全向导,并点下一步6、根据实际选择是否需要见证服务器,这里选择“否”,7、设置主服务器名称、端口、端点名8、点击浏览更多,查找镜像服务器pc02,并设置端口及端点名称9、指定服务账户,这里设为sa(即sql server登录账户)10、点击“完成”,会提示“成功”,点“关闭”11、接下来会弹出选择框,选“不开始镜像”12、选择“高性能(异步)”,再点击开始镜像13、接下来会弹出一个窗口,选择“是”,镜像就完成了14、可以右击test数据库——任务——启动数据库镜像监视器,查看同步状态注意:1、在同步期间,镜像服务器上的数据库test始终是“正在还原状态”,无法查看表数据。
两个数据库表数据实时同步(sql2008 触发器)
/****** Object: Trigger [dbo].[TR_C0T14] Script Date: 11/01/2011 13:21:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: <LEAMON>-- Create date: <2011-11-01>-- Description: <两个数据库表数据实时同步>-- =============================================--DROP TRIGGER TR_C0T14CREATE TRIGGER [dbo].[TR_C0T14] ON [dbo].[C0T14]FOR INSERT,UPDATE,DELETEASBEGINIF NOT EXISTS(SELECT * FROM deleted)BEGIN/*插入*/INSERT INTO leamon_test..C0T14(RATINGID,[BROKER],BROKERRATE,SFRATE,SFVALUE,F_OP1,F_OP2,F_OPC1,F_OPC2,F_9997,f _9998)SELECTRATINGID,[BROKER],BROKERRATE,SFRATE,SFVALUE,F_OP1,F_OP2,F_OPC1,F_OPC2,F_9997,f_ 9998FROM insertedWHERE NOT EXISTS (SELECT TOP 1 * FROM leamon_test..C0T14 WHERE inserted.RATINGID = leamon_test..C0T14.RATINGID)END/*删除*/ELSE IF NOT EXISTS(SELECT * FROM inserted)DELETE FROM leamon_test..C0T14WHERE RATINGID IN (SELECT RATINGID FROM deleted)-------/*若两个主键关联删除表数据ELSE IF NOT EXISTS(SELECT * FROM inserted)DELETE FROM [INPUT]..C1T30WHERE EXISTS (SELECT 1 FROM deleted B WHERE [INPUT]..C1T30.F_CODE=B.F_CODE AND[INPUT]..C1T30.REPORT=B.REPORT AND [INPUT]..C1T30.F_YEAR=B.F_YEAR) */-------/*更新*/ELSEBEGINUPDATE leamon_test..C0T14SET RATINGID = inserted.RATINGID,[BROKER] = inserted.[BROKER],BROKERRATE = inserted.BROKERRATE,SFRATE = inserted.SFRATE,SFVALUE = inserted.SFVALUE,F_OP1 = inserted.F_OP1,F_OP2 = inserted.F_OP2,F_OPC1 = inserted.F_OPC1,F_OPC2 = inserted.F_OPC2,F_9997 = inserted.F_9997,f_9998 = inserted.f_9998FROM insertedWHERE inserted.RATINGID = leamon_test..C0T14.RATINGIDAND (inserted.[BROKER] <> leamon_test..C0T14.[BROKER]OR inserted.BROKERRATE <> leamon_test..C0T14.BROKERRATEOR inserted.SFRATE <> leamon_test..C0T14.SFRATEOR inserted.SFVALUE <> leamon_test..C0T14.SFVALUEOR inserted.F_OP1 <> leamon_test..C0T14.F_OP1OR inserted.F_OP2 <> leamon_test..C0T14.F_OP2OR inserted.F_OPC1 <> leamon_test..C0T14.F_OPC1OR inserted.F_OPC2 <> leamon_test..C0T14.F_OPC2OR inserted.F_9997 <> leamon_test..C0T14.F_9997OR inserted.f_9998 <> leamon_test..C0T14.f_9998)ENDEND。
sql数据同步的方法
sql数据同步的方法SQL数据同步是一种重要的技术,它可以帮助确保数据库中的数据保持一致性和完整性。
以下是几种常见的SQL数据同步方法:1. 触发器(Triggers): 触发器是一种特殊的存储过程,它会在对表进行插入、更新或删除操作时自动执行。
通过在源表和目标表上设置触发器,可以在数据发生变化时自动将更改同步到目标表。
2. 复制(Replication): 复制是一种将数据从一个数据库复制到另一个数据库的技术。
它可以通过两种方式实现:异步复制和同步复制。
异步复制在数据写入源数据库后立即将更改写入目标数据库,而同步复制则等待源数据库确认已将更改写入后才将更改写入目标数据库。
3. 事务(Transactions): 事务是一组一起执行的SQL语句,它们被视为一个单一的工作单元。
如果事务中的所有语句都成功执行,则事务被提交,更改将永久保存在数据库中。
如果事务中的任何一个语句失败,则事务将被回滚,所有更改都将被撤销。
通过使用事务,可以确保在多个数据库之间同步数据时的一致性和完整性。
4. 消息队列(Message Queues): 消息队列是一种用于在应用程序之间传递消息的中间件技术。
它可以将数据变更写入消息队列,然后由目标数据库从消息队列中读取并应用这些变更。
这种方法可以确保在数据同步过程中实现异步处理和故障转移。
5. 全文检索(Full-Text Search): 对于需要同步大量文本数据的情况,全文检索是一种非常有用的技术。
通过使用全文检索引擎(如Apache Lucene或Microsoft SQL Server的全文搜索功能),可以索引和搜索大量文本数据,并将查询结果同步到其他数据库或系统中。
这些是常见的SQL数据同步方法,每种方法都有其优点和适用场景。
选择哪种方法取决于具体的需求和环境。
SQL2005数据库同步复制操作
1.1.1S QL SERVER2005一、同步前的准备:本文档适应于在SQL Server 2005下通过发布订阅,将LeagView主服务器的UniMonDB 数据库同步到LeagView备份服务器上的UniMonDB上。
图中主测试服务器IP地址为10.251.4.9,备份测试服务器IP地址为10.251.4.10。
在配置同步前需要注意:(1)确认备份服务器SQL Server Agent是否运行,如没运行,则先启动运行;(2)需要在计算机管理里面建立用于数据库发布订阅的账号,或者使用Administrator账号。
(3)该方案并不取代数据库备份方案,建议用户配置数据库备份方案,定期备份数据库。
(4)备份服务器上的LeagView系统只需运行“Jboss”服务,“LeagView安全运维服务”不需要启动(5)本文档只适应于SQL Server 2005,操作前请先仔细阅读此文档。
二、发布:(1)在主LeagView服务器上打开Microsoft SQL Server 2005 Management stadio,展开实例号,右键点击“复制—本地订阅”,选择“新建发布”,如图2.1。
出现如图2.2所示界面,点击“下一步”。
图2.1 新建发布图2.2新建发布向导选择数据库服务器作为分发服务器,在此,选择LeagView主服务器所在的数据库服务器作为分发服务器。
如图2.3所示。
图2.3 选择分发服务器(2)选择快照文件夹,一般选择默认文件夹就行,如图2.4所示。
图2.4 选择快照文件夹(3)选择发布的数据库为UniMonDB,如图2.5所示。
图2.5选择发布数据库(4)选择发布类型为“快照发布”,如图2.6所示。
图2.6 发布类型为快照发布(5)选择要发布的对象,在此选择“表和视图”。
如图2.7所示。
图2.7 选择发布的对象(6)点击下一步,直到出现如图2.8所示界面中,勾选“计划在以下时间运行快照代理”和点击“更改”,配置作业计划属性,一般情况下,设定作业在每周星期六00:00更新一次发布过程,如图2.9所示。
SqlServer2008 数据库同步的两种方式(Sql JOB)
SqlServer2008 数据库同步的两种方式(Sql JOB)2011-05-27 16:59 by tyb1222, 1487 visits, 收藏, 编辑数据库同步是一种比较常用的功能。
以下结合我自己的体会整理的,如果有理解不完全或者有误的地方望大牛不理赐教。
下面介绍的就是数据库同步的两种方式:1、SQL JOB的方式sql Job的方式同步数据库就是通过SQL语句,将一个数据源中的数据同步到目标数据库中。
特点是它可以灵活的通过SQL的方式进行数据库之间的同步操作。
可以在制定的时间时间作为任务计划自动执行。
缺点是需要写SQL来进行操作。
既然是数据库之间的同步就涉及到数据库之间的连接。
建立连接是同步的第一步。
SQL Server建立连接可以通过系统存储过程建立【是否还有其他方式,我还不清楚】。
存储过程有以下几个:sp_droplinkedsrvlogin、sp_dropserver、sp_addlinkedserver、sp_addlinkedsrvlogin。
前面两个是删除数据库之间连接的,后两个是建立数据库之间连接的。
删除连接存储过程参数用法如下:a)sp_droplinkedsrvlogin语法sp_addlinkedsrvlogin [ @rmtsrvname =] 'rmtsrvname'[ ,[ @useself =] 'useself'][ , [ @locallogin=] 'locallogin'][ ,[ @rmtuser =] 'rmtuser'][ ,[ @rmtpassword =] 'rmtpassword']参数[@rmtsrvname=] 'rmtsrvname'是应用登录映射的链接服务器名称。
rmtsrvname的数据类型为sysname,没有默认设置。
[@useself =] 'useself'决定用于连接到远程服务器的登录名称。
SqlServer2016数据库同步配置图文详解
SqlServer2005 数据库同步配置图文详解<1>软件准备条件 机器A端:SqlServer2005 Management Studio + WinServer 2003 Enterprise (作为发布服务器) 机器B端:Sqlserver2005 Management Studio Express + WinXP(作为订阅服务器) 一:【准备条件】 <1>软件准备条件 机器A端:SqlServer2005 Management Studio + WinServer 2003 Enterprise (作为发布服务器) 机器B端:Sqlserver2005 Management Studio Express + WinXP(作为订阅服务器) (可以用别的,不过订阅服务器版本不得高于发布服务器版本) <2>数据库复制准备条件 1. 所有被同步的数据表尽量要用主键,如果没有主键也没有关系,SqlServer会提示为表自动生成主键,如图 2. 发布服务器、分发服务器和订阅服务器必须使用计算机名称来进行SQLSERVER服务器的注册。
3. SQLSERVER必需启动代理服务,且代理服务必须以本地计算机的帐号运行。
不得使用IP地址以及别名进行注册,比如LOCAL, “.”以及LOCALHOST等。
如果非同一网段或者远程服务器,或者只能用IP,不能用计算机名的,为对方注册服务器别名。
将其对应关系加到本地系统网络配置文件中。
文件的具体位置在C:\Windows\system32\drivers\etc\hosts 配置方式: 用记事本打开hosts 文件,在文件的最下方添加IP 地址和主机名的对应关系。
如图: 4.SqlServer 必需启动代理服务,且代理服务必需以本地计算机的帐号运行。
5.发布服务器和订阅服务器都要设置MSDTC ,允许网络访问控制面板--->管理工具--->组件服务--->计算机--->我的电脑(Win7继续找 -->Distributed Transaction Coordinator--->本地DTC),右键属性,找到MSDTC 选项卡,点击安全设置,按如下设置即可 )教党 确定,重启MSDTC服务。
SQL Server数据同步
公司有一台很重要SQL数据库,如何实现数据库实时同步?一、客户需求客户现在有一个需求,公司有一台很重要SQL数据库,怕有一天服务器或者系统崩溃,导致所有SQL数据库数据丢失,客户想把数据库数据,通过某种方式将数库进行实时同步到另外一台服务器上,这样可以做个backup。
那客户这个需求如何实现呢?二、解决方案:通过分析与研究,使用的是SQL自带的发布与订阅功能,旧的SQL Server版本是2008,新安装一个SQL Server 2014版本,通过旧SQL Serer发布,再通过SQL Server2014订阅,来同步数据库数据。
三、实现过程3.1、发布发布前准备:首先两个服务器之间要能相互通讯,也就是能ping命令能通。
平时我们连接数据库时,经常都是用的ip登陆,但是发布的时候不能这样,必须用服务器名称。
如果在不同网段的两台数据库服务器,可以在两台服务器hosts文件中添加对应的IP地址和主机名。
在旧服务器上,打开SQL Server数据库软件,进行发布SQL数据库。
1、旧服务器上,找到复制--本地发布,右击新建发布。
2、选择需要发布的数据库名称。
3、选择事务发布。
4、在此数据库中,查看表,是否都可以正常的被发布,如下图所示,有些表无法正常发布,那该怎么办?5、发现是由于这些表中没有主键,需要给这三张表设置主键。
6、设置主键。
8、发现还有一个表无法发布。
9、查看原因。
10、需要将此表中的,阻止保存要求重新创建表的更改项勾选去掉。
11、去掉后,发现此表可以正常设置主键。
12、可以看到所有的表都可以正常发布了。
13、下一步。
14、选择添加。
15、选择立即创建快照并使快照保持可用状态,以初始化订阅。
16、选择安全设置。
17、输入数据库的sa用户名和密码。
18、选择下一步。
这时要注意,需要将数据库的代理服务开启,和SQL browser服务开启。
19、创建发布。
20、新建一个发布名称。
21、发布成功。
sql数据同步
sql数据同步复制的概念复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。
使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。
复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。
SQL复制的基本元素包括出版服务器、订阅服务器、分发服务器、出版物、文章SQL复制的工作原理SQL SERVER 主要采用出版物、订阅的方式来处理复制。
源数据所在的服务器是出版服务器,负责发表数据。
出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器SQL SERVER复制技术类型SQL SERVER提供了三种复制技术,分别是:1、快照复制(呆会我们就使用这个)2、事务复制3、合并复制只要把上面这些概念弄清楚了那么对复制也就有了一定的理解。
接下来我们就一步一步来实现复制的步骤。
第一先来配置出版服务器(1)选中指定[服务器]节点--本机的表,state说明:null 表示新增记录,1 表示修改过的记录,0 表示无变化的记录if exists (select * from dbo.sysobjects where id = object_id(N'[user]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table [user]GOcreate table [user](id int identity(1,1),number varchar(4),name varchar(10),state bit)go--创建触发器,维护state字段的值create trigger t_state on [user]after updateasupdate [user] set state=1from [user] a join inserted b on a.id=b.idwhere a.state is not nullgo--为了方便同步处理,创建链接服务器到要同步的服务器--这里的远程服务器名为:xz,用户名为:sa,无密码if exists(select 1 from master..sysservers where srvname='srv_lnk')exec sp_dropserver 'srv_lnk','droplogins'goexec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','xz'exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa'go--创建同步处理的存储过程if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_synchro]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_synchro]GOcreate proc p_synchroas--set XACT_ABORT on--启动远程服务器的MSDTC服务--exec master..xp_cmdshell 'isql /S"xz" /U"sa" /P"" /q"exec master..xp_cmdshell ''net start msdtc'',no_output"',no_output--启动本机的MSDTC服务--exec master..xp_cmdshell 'net start msdtc',no_output--进行分布事务处理,如果表用标识列做主键,用下面的方法--BEGIN DISTRIBUTED TRANSACTION--同步删除的数据delete from srv_lnk.test.dbo.[user]where id not in(select id from [user])--同步新增的数据insert into srv_lnk.test.dbo.[user]select id,number,name from [user] where state is null--同步修改的数据update srv_lnk.test.dbo.[user] setnumber=b.number,name=from srv_lnk.test.dbo.[user] ajoin [user] b on a.id=b.idwhere b.state=1--同步后更新本机的标志update [user] set state=0 where isnull(state,1)=1--COMMIT TRANgo--创建作业,定时执行数据同步的存储过程if exists(SELECT 1 from msdb..sysjobs where name='数据处理')EXECUTE msdb.dbo.sp_delete_job @job_name='数据处理'exec msdb..sp_add_job @job_name='数据处理'--创建作业步骤declare @sql varchar(800),@dbname varchar(250)select @sql='exec p_synchro' --数据处理的命令,@dbname=db_name() --执行数据处理的数据库名exec msdb..sp_add_jobstep @job_name='数据处理',@step_name = '数据同步',@subsystem = 'TSQL',@database_name=@dbname,@command = @sql,@retry_attempts = 5, --重试次数@retry_interval = 5 --重试间隔--创建调度EXEC msdb..sp_add_jobschedule @job_name = '数据处理', @name = '时间安排',@freq_type = 4, --每天@freq_interval = 1, --每天执行一次@active_start_time = 00000 --0点执行go。
如何在两个SQLSERVER之间数据同步
如何在两个SQLSERVER之间数据同步在两个SQL Server之间进行数据同步,可以通过多种方法实现,包括使用SQL Server功能和第三方工具。
下面是一种基本的方法,其中包含了使用SQL Server功能进行实时同步和使用第三方工具进行批量同步的步骤:1.实时同步:-使用数据库镜像或事务复制功能进行数据同步。
这种方法适用于需要实时同步的情况,其中一个服务器充当主服务器(发布者),另一个服务器充当从服务器(订阅者)。
在这种情况下,数据更改将立即传播到从服务器。
-配置数据库镜像:在主服务器上创建数据库镜像,并将其配置为主服务器和从服务器之间的同步。
这种方法适用于高可用性和灾难恢复的情况。
- 配置事务复制:使用SQL Server事务复制功能可以将数据更改从主服务器传播到从服务器。
这种方法适用于需要将数据更改传播到多个从服务器的情况。
2.批量同步:-使用复制功能进行数据同步。
这种方法适用于大规模的数据同步,可以在定期的时间间隔内进行批量同步。
-配置事务复制:使用事务复制功能可以将数据更改从一个服务器复制到另一个服务器。
在这种情况下,数据更改将定期复制到另一个服务器。
-配置合并复制:使用合并复制功能可以将多个服务器的数据更改合并到一个服务器。
合并复制适用于多个服务器之间的双向同步。
无论使用哪种方法,需要注意以下几个方面:-确保两个服务器之间的网络连接可靠,可以通过网络监控来保证。
-定期备份数据库:在进行数据同步之前,确保在主服务器和从服务器上都进行了数据库备份。
这是避免数据损坏和数据丢失的重要步骤。
- 监控数据同步:在进行数据同步之后,需要进行监控,确保同步过程稳定可靠。
可以使用SQL Server的系统视图和工具进行监控,如查看系统视图sys.dm_repl_monitor、SQL Server Agent作业日志等。
-搭建测试环境:在进行数据同步之前,最好先在测试环境中进行测试,以确保同步过程不会对生产环境产生负面影响。
SQL数据库同步工具使用说明
本系统分为客户端和服务器两个部分,其中客户端承担了系统绝大数事务,服务器只是简单的执行客户端传送的命令,属于典型的C/S胖客户端瘦服务器模式。
这样设计的目的是为了减轻服务器的压力,让系统更加流畅。
客户端负责采集分布数据库中的数据,然后汇总到服务器。
客户端需要配置的数据库连接字符串是指分布数据库的连接字符串,连接成功后才可以向主数据库同步数据。
例如,有A、B、C三个分布数据库,需要把数据汇总到D数据库,那么需要三个客户端,分别连接A、B、C数据库,客户端运行在哪无所谓,只要能连接数据库即可。
主页说明主页显示一些公共信息。
程序启动日期有助于您分析日志同步状况;扫描引擎、同步引擎是本系统两大核心引擎,扫描引擎负责获取分布数据库的数据变动,同步引擎负责向服务器发送需要同步的数据。
如果数据库连接字符串未设置,引擎不会开启,否则,引擎自动开启,无需人工干预。
数据库占用空间是指程序本地的SQLite数据库占用空间,由于长期使用会有大量日志信息,占用过大空间会使程序效率降低,可以及时清理。
清理界面如下:选择好要清除的日志类型,然后选择日期,提交后会清除该日期之前的所有记录。
活动日志说明该页面可以查询程序的活动状况,以日期查询可以显示某个日期的记录。
程序活动日志是扫描记录,详细记录了扫描信息。
程序同步活动日志是同步记录,详细记录了同步信息。
同步说明同步界面用来配置需要同步的表和同步时间,如果已经配置数据库连接字符串,将会显示数据库中的所有表,用户可根据需要选择要同步的表。
在要同步的表列表中,如果表间有外键约束,一定要把主表靠前排列。
同步时间即何时同步数据,用户可根据实际需要选择闲时同步,建议多个客户端选择不同的时间段同步,避免冲突。
支持多个时间,以逗号分隔,24小时制表示,时间格式举例:20:33,22:12。
成功提交设置后,会自动开启扫描引擎和同步引擎。
参数设定说明参数设定界面用来配置程序的基本参数。
数据库连接字符串是指分布数据库的连接字符串,不是主数据库的连接字符串,一旦成功设置,不能更改,如需更改,要重新安装程序!扫描间隔时间是指扫描引擎获取变动数据的时间间隔,建议设置为30分钟,用户可根据需求自行更改。
SQL Server 2008 数据库同步的两种方式
SQL Server 2008 数据库同步的两种方式(发布、订阅)作者: tyb1222来源: 博客园发布时间: 2011-09-04 09:35 阅读: 68812 次推荐: 30 原文链接[收藏]上篇中说了通过SQL JOB的方式对数据库的同步,这一节作为上一节的延续介绍通过发布订阅的方式实现数据库之间的同步操作。
发布订阅份为两个步骤:1、发布。
2、订阅。
首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅。
发布可以发布一张表的部分数据,也可以对整张表进行发布。
下面分别介绍发布、订阅的过程。
一、发布。
发布需要用实际的服务器名称,不能使用服务器的IP地址进行。
能发布的信息包括【表】、【存储过程】、【用户函数】如果使用IP会有错误,如下图:具体发布过程如下:1、找到数据库服务器下的【复制】--【本地发布】,选择【新建发布】。
如下图:2、选择待发布的数据库。
如下图:3、选择发布类型。
这里选择的默认类型【快照发布】。
几种发布类型的区别,SQL SERVER都在下面给出了说明。
如下图:4、选择待发布的类容。
如下图:上图中右侧就是筛选的SQL语句。
5、设置快照代理。
如下图:更改同步频率如下图:6、设置代理安全性。
如下图:7、填写发布名称8、完成发布。
如下图:二、订阅。
订阅是对数据库发布的快照进行同步,将发布的数据源数据同步到目标数据库。
具体订阅过程如下;1、找到数据库服务器下的【复制】--【本地订阅】,选择【新建订阅】。
如下图:2、选择订阅的发布。
如下图:3、选择分发代理的位置;如下图:4、选择订阅服务器上的存放同步过来的数据的一个或者多个目标数据库。
如下图:若要添加多个订阅数据库,则点击【添加订阅服务器】。
如下图:5、设置分发代理的安全性。
如下图:6、设置同步计划。
如下图:7、完成订阅。
如下图:这样就完成了发布与订阅的整个流程。
这里,和上节一起就介绍完了SQL Server数据库同步的两种方式,希望对你有用。
SQL Server 2008数据库复制实现数据库同步备份超强图文教程
点击OK,这时会在快照文件夹中创建一个ftp文件夹,并在该文件夹中生成快照文件。
Get help: http://help/MSSQL_REPL20011
· Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission. (Source: MSSQLServer, Error number: 15517)
Get help: http://help/15517
· The process could not execute 'sp_replcmds' on 'YCSERVER006'. (Source:MSSQL_REPL, Error number: MSSQL_REPL22037)
Get help: http://help/MSSQL_REPL22037
OK, Next, Next, Next:
Next, Finish, Success:
备份数据库的订阅就建好了!
现在来瞧一瞧订阅服务器CNBlogsDB2上的用于复制的数据库CNBlogsDemo:
看!我们在发布服务器上建立的表CNBlogsTest复制过来了。
sql server数据库同步的5种方法
sql server数据库同步的5种方法SQL Server数据库同步的5种方法1. 数据备份和还原•使用SQL Server Management Studio (SSMS) 或 Transact-SQL (T-SQL) 命令行工具进行数据库备份。
•将备份文件复制到目标服务器上。
•在目标服务器上使用SSMS或T-SQL命令行工具进行数据库还原。
2. 跨服务器复制•在源服务器和目标服务器上启用数据库复制。
•创建发布者和订阅者之间的连接。
•配置发布者和订阅者之间的交互,确保数据可以在服务器之间同步。
3. 数据迁移工具•使用第三方数据迁移工具,如SQL Server Integration Services (SSIS)。
•在源服务器上导出数据库并保存为包文件。
•在目标服务器上导入并执行包文件,将数据复制到目标数据库中。
4. SQL Server AlwaysOn可用性组•在源服务器上创建可用性组并将其配置为主服务器。
•在目标服务器上加入可用性组作为从属服务器。
•配置可用性组的自动故障转移和数据同步设置,以确保数据始终保持同步。
5. 数据库复制•在源服务器上启用数据库复制。
•创建发布者和订阅者之间的连接。
•配置发布者和订阅者之间的交互,使数据可以在服务器之间同步。
以上是SQL Server数据库同步的五种常用方法,根据实际需求和场景选择合适的方法进行数据库同步操作。
每种方法都有其优缺点,需要根据具体情况进行权衡。
无论选择哪种方法,都需要注意保证数据的完整性和一致性。
1. 数据备份和还原•备份数据库:使用SQL Server Management Studio (SSMS) 或Transact-SQL (T-SQL) 命令行工具来备份数据库,以生成一个备份文件。
备份文件中包含了数据库的所有数据和对象定义。
•复制备份文件:将生成的备份文件复制到目标服务器上的指定位置。
•还原数据库:在目标服务器上使用SSMS或T-SQL命令行工具来还原数据库。
图文详解SQLServer 2008 主从同步
图文详解SQLServer 2008 主从同步——日志传送————————————————————————————————————李向付一:初始配置:使用sqladmin用户登录到Windows Server 2008 操作系统,如果不确定现在的用户身份,可以打开开始菜单,就可以看到当前登录的用户身份,或者打开命令提示符,输入:“whoami”命令查看当前登录的用户。
(图1)图1确认当前用户身份创建SQLServer数据库的管理员用户:单击窗口左下角的管理服务器图标,打开服务器管理器。
如果当前用户不是管理员,或者没有管理员权限,系统会提示输入管理员的密码,单击确定后即可打开服务器管理器界面。
(图2,图3)图3创建新用户在“服务器管理器”窗口中,依次展开“服务器管理器”,“配置”,“本地用户和组”,“用户”,右击右侧窗口的空白处,选择“新用户”选项。
在弹出的“新用户”窗口中,输入用户名、全名、描述、密码和确认密码,并取消“用户下次登录时必须更改密码”选项,然后选中“用户不能更改密码”和“密码永不过期”,单击“创建”按钮完成用户创建。
这里需要对sqladmin用户设置一个强壮的密码。
(图4)为了服务器的安全起见,可以右击新建的用户“sqladmin”,点击“属性”,在“隶属于”选项卡中将“users”组删除,这样确保此用户有最小的系统访问权限。
图4新用户创建界面创建一个用于存放主从备份日志文件的共享目录DB_Backpu(图5),右击文件夹,选择“属性”,在弹出的“DB_Backup 属性”界面,选择“共享”选项卡,单击“高级共享”中的“高级共享”按钮(图6)。
图5用于存放备份日志文件的共享目录图6 共享文件夹的共享设置在“高级共享”窗口中,勾选“共享次文件夹”选项,然后单击“权限”按钮对该共享文件夹的权限进行设置(图7)。
需要让sqladmin用户具有完全控制该文件夹的权限,先将默认的“everyone”用户删除,然后添加sqladmin用户,并切在“sqladmin的权限”中勾选“完全控制”,“更改”和“读取”项,然后单击两次“确定”按钮保存共享设置(图8)。
两台SQL服务器上的一个数据表同步
两台SQL服务器上的一个数据表同步drop procedure dbSyncGO/* 数据同步 */CREATE PROCEDURE dbSync@sTabelName varchar(255), --要同步的表名@sKeyField varchar(255), --关键字段@sServer varchar(255), --服务器名称或IP@sUserName varchar(255), --登录到服务器的用户名,一般为sa@sPassWord varchar(32) --用户登录到服务器的密码AS/*删除临时表*/if exists (select * from dbo.sysobjects where id = object_id(N'tempTbl') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table tempTbldeclare @sql VARCHAR(2000)/*把表@sTabelName[远程]的数据拷贝到临时表*/set @sql='select * into tempTbl from 'set @sql=@sql + ' OPENDATASOURCE( 'set @sql=@sql + '''SQLOLEDB.1'','set @sql=@sql + '''Persist Security Info=True;User ID=' + @sUserNameset @sql=@sql + ';Password=' + @sPassWordset @sql=@sql + ';Initial Catalog=toys;Data Source=' + @sServerset @sql=@sql + ''').toys.dbo.'+@sTabelNameEXEC(@sql)/* 把@sTabelName[本地]中的@sTabelName[远程]表中没有的数据插入到临时表中*/set @sql='insert into tempTbl select * from '+@sTabelName+' where ['+@sKeyField+'] not in (select ['+@sKeyField+'] from tempTbl)'EXEC(@sql)/*清空表@sTabelName[本地]*/set @sql='truncate table '+@sTabelNameEXEC(@sql)--取得列名declare @MySql VARCHAR(2000)set @MySql=''declare @title varchar(20)DECLARE titles_cursor CURSOR FORSELECT name from syscolumns where id=object_id(@sTabelName)OPEN titles_cursorFETCH NEXT FROM titles_cursor INTO @titleWHILE @@FETCH_STATUS = 0BEGINif @title<>'id'beginif @MySql = ''set @MySql = @MySql + @titleelseset @MySql = @MySql + ',' + @titleendFETCH NEXT FROM titles_cursor INTO @titleENDCLOSE titles_cursorDEALLOCATE titles_cursor--取列名结束/*把临时表的内容插入到表@sTabelName[本地]*/set @sql='insert into '+@sTabelName+' select '+@MySql+' from tempTbl'EXEC(@sql)/*删除临时表*/if exists (select * from dbo.sysobjects where id = object_id(N'tempTbl') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table tempTblGO。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL数据库同步方法-详细操作手册(含图)
一、同步前提
注意:使用合并复制时sql2000不允许更改两边的数据库结构。
即两边数据库结构要一样(表数,列数等一致),默认第一次同步源会覆盖目标。
有些数据库本身的触发器里含有alter 语句,“这种语句和复制(无论哪种)有冲突”(微软)。
要建议用户修改这种语句。
合并复制的效果:源和目标无论哪方修改以前的数据或增加新数据均会同步给对方。
二、新建用户
发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户
我的电脑--控制面板--管理工具--计算机管理--用户和组--右键用户--新建用户--建立一个隶属于administrator组的登陆windows的用户
三、新建共享
我的电脑--D:\ 新建一个目录,名为: PUB
--右键PUB目录--属性--共享--选择"共享该文件夹"--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限,推荐为everyone
有所有权限--确定
测试:从各自两边“运行”输入“\\对方主机名\pub”,就可以匿名访问并新增或修改文件的话就说明配置成功;另外还要从各自两边数据库的“查询分析器”登陆对方数据库,使用远端机器名,可以登陆的话说明配置成功。
如果不能用\\对方主机名\pub访问,则在网卡属性中添加NETBIOS协议。
在cmd的dos下要求能ping远端机器名,返回的结果要能转换成远端的ip地址信息。
如不能ping通,则需要修改本地的localhost文件。
在\windows\systenm32\dirver\etc目录下hosts.msn文件(用记事本打开)中添加如下内容:
127.0.0.1 localhost
远端ip 远端机器名
四、设置代理服务
设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)
开始--程序--管理工具--服务
--右键SQLSERVERAGENT
--属性--登陆--选择"此账户"
--输入或者选择第一步中创建的windows登录用户名
--"密码"中输入该用户的密码
完成该步骤设置后要将SQLSERVERAGENT服务设置为自动启动。
五、互相注册
4.在发布服务器和订阅服务器上互相注册
企业管理器
--右键SQL Server组
--新建SQL Server注册...
--下一步--可用的服务器中,输入你要注册的远程服务器名--添加
--下一步--连接使用,选择第二个"SQL Server身份验证"
--下一步—SQL输入用户名和密码。