精华内容
下载资源
问答
  • 数据库同步

    千次阅读 2011-06-17 14:52:00
    为什么要同步SQL Server 2000 数据库,它都用在什么场合数据实时备份同步,数据库服务器出问题时我们...无损失迁移 主服务器被攻击或当机时另一台服务同步机可以应急 SQL Server 2000 数据库同步配置的原理复制的概念M

    为什么要同步SQL Server 2000 数据库,它都用在什么场合

    1. 数据实时备份同步,数据库服务器出问题时我们也有其正常工作时的备份
    2. 数据实时备份同步,一台服务器负载不起时,可以用来做负载均衡
    3. 数据实时备份同步,数据库服务器可以无间断,无损失迁移
    4. 主服务器被攻击或当机时另一台服务同步机可以应急

    SQL Server 2000 数据库同步配置的原理

    复制的概念

    Microsoft? SQL Server? 2000 的复制是在数据库之间对数据和数据库对象进行复制
    和分发并进行同步以确保其一致性的一组技术。

    使用复制可以将数据分发到不同位置,通过局域网、使用拨号连接、通过 Internet 分
    发给远程或移动用户。复制还能够使用户提高应用程序性能,根据数据的使用方式物理
    分隔数据(例如,将联机事务处理 (OLTP) 和决策支持系统分开),或者跨越多个服务
    器分布数据库处理。


    SQL复制的基本元素包括

    发布服务器、订阅服务器、分发服务器、发布、项目

    发布服务器
    发布服务器是提供数据以便复制到其它服务器的服务器。发布服务器可以具有一个或多个
    发布,每个发布代表一组逻辑相关的数据。除了指定其中哪些数据需要复制之外,发布服
    务器还检测事务复制期间发生更改的数据并维护有关此站点上所有发布的信息。

    分发服务器
    分发服务器是作为分发数据库宿主并存储历史数据和/或事务以及元数据的服务器。分发
    服务器的角色根据执行的复制类型而不同。有关更多信息,请参见复制类型。
    远程分发服务器是独立于发布服务器并配置为复制的分发服务器的服务器。本地分发服务
    器是既配置为复制的发布服务器又配置为复制的分发服务器的服务器。

    订阅服务器
    订阅服务器是接收复制数据的服务器。订阅服务器订阅的是发布而不是发布中分离的项目;
    并且订阅服务器只订阅其需要的发布,而不是发布服务器上所有可用的发布。根据复制的类
    型和所选择的复制选项,订阅服务器还可以将数据更改传播回发布服务器或将数据重新发布
    到其它订阅服务器。

    发布
    发布是一个数据库中的一个或多个项目的集合。这种多个项目的分组使得指定逻辑相关的一
    组数据和数据库对象以一起复制变得更容易。

    项目
    项目是指定要复制的数据表、数据分区或数据库对象。项目可以是完整的表、某几列(使用垂
    直筛选)、某几行(使用水平筛选)、存储过程或视图定义、存储过程的执行、视图、索引视图
    或用户定义函数。

    订阅
    订阅是对数据或数据库对象的复本的请求。订阅定义将接收的发布和接收的时间、地点。订阅的
    同步或数据分发可以由发布服务器(强制订阅)或订阅服务器(请求订阅)请求。发布可以支持
    强制订阅和请求订阅的混合。


    SQL复制的工作原理
    SQL SERVER 主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务
    器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器
    分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些
    改变分发给订阅服务器

     

    精品版SQL Server 2000 数据库同步配置

    SQL SERVER复制技术类型,三种复制技术,分别是(详细的说明参考SQL联机帮助):
    1、快照复制
    2、事务复制
    3、合并复制

    下介绍实现复制的步骤。(以快照复制为例)

    准备工作:

    1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户
    我的电脑
    --控制面板
    --管理工具
    --计算机管理
    --用户和组
    --右键用户
    --新建用户
    --建立一个隶属于administrator组的登陆windows的用户

    2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:

    我的电脑--D: 新建一个目录,名为: PUB
    --右键这个新建的目录
    --属性--共享
    --选择"共享该文件夹"
    --通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限
    --确定

    3.设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)

    开始--程序--管理工具--服务
    --右键SQLSERVERAGENT
    --属性--登陆--选择"此账户"
    --输入或者选择第一步中创建的windows登录用户名
    --"密码"中输入该用户的密码

    4.设置SQL Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置)

    企业管理器
    --右键SQL实例--属性
    --安全性--身份验证
    --选择"SQL Server 和 Windows"
    --确定

    5.在发布服务器和订阅服务器上互相注册
    企业管理器
    --右键SQL Server组
    --新建SQL Server注册...
    --下一步--可用的服务器中,输入你要注册的远程服务器名 --添加
    --下一步--连接使用,选择第二个"SQL Server身份验证"
    --下一步--输入用户名和密码(一般是sa,密码最好设置一下非常复杂的)
    --下一步--选择SQL Server组,也可以创建一个新组
    --下一步--完成

    6.对于只能用IP,不能用计算机名的,为其注册服务器别名
    (在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的IP)
    开始--程序--Microsoft SQL Server--客户端网络实用工具
    --别名--添加
    --网络库选择"tcp/ip"--服务器别名输入SQL服务器名
    --连接参数--服务器名称中输入SQL服务器ip地址
    --如果你修改了SQL的端口,取消选择"动态决定端口",并输入对应的端口号

     

    正式开始:

    1.配置发布服务器

    a. 选中指定 [服务器] 节点
    b. 从 [工具] 下拉菜单的 [复制] 子菜单中选择 [发布、订阅服务器和分发] 命令
    c. 系统弹出一个对话框点 [下一步] 然后看着提示操作
    --直到"指定快照文件夹"
    --在"快照文件夹"中输入准备工作中创建的目录: /<服务器名>pub
    一[下一步] 直操作到完成。
    d. 当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器
    同时也生成一个分发数据库(distribution)

    2.创建发布
    a. 选中指定的服务器
    b. 从 [工具] 菜单的 [复制] 子菜单中选择 [创建和管理发布] 命令。此时系统会弹出
    一个对话框
    c. 选择要创建发布的数据库,然后单击 [创建发布]
    d. 在 [创建发布向导] 的提示对话框中单击 [下一步] 系统就会弹出一个对话框。对话
    框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个
    大家可以去看看帮助)
    e. 单击 [下一步] 系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在
    不同的数据库如 ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行
    "SQL SERVER 2000"的数据库服务器
    f. 单击 [下一步] ,选择要发布的对象(如表,视图,存储过程,一般是表)
    g. 然后 [下一步] 直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了
    一个共享数据库。

    3.设计订阅
    a. 选中指定的订阅服务器
    b. 从 [工具] 下拉菜单中选择 [复制] 子菜单的 [请求订阅]
    c. 按照提示单击 [下一步] 操作直到系统会提示检查SQL SERVER代理服务的运行状态,执行
    复制操作的前提条件是SQL SERVER代理服务必须已经启动。(选择一发布服务器,然后选择你要的一个发布,一次只能添加一下,然后新建一个同名的数据库,一路下一步就可以了,其它数据库也这样来。操作过程中可能会出现说服务器不支持匿名什么来着,需要在发布服务器上右击一个发布,订阅选项,允许匿名请求订阅选中就可以了。)
    d. 单击 [完成] 完成订阅操作。

     

    完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢?
    这里可以通过这种方法来快速看是否成功。
    展开出版服务器下面的复制——发布内容——右键发布内容——属性——击活——状态然后点立即运行代理程序接着点代理程序属性击活调度
    把调度设置为每一天发生,每一分钟,在0:00:00和23:59:59之间。
    接下来就是判断复制是否成功了打
    开C:Program FilesMicrosoft SQL ServerMSSQLREPLDATAuncXIAOWANGZI_database_database下面
    看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。
    要是你还不信的话就打开你的数据库看在订阅的服务器的指定订阅数据库下看是不是看到了你刚才所发布的表

    0开始一步一步配置SQL Server 2000 数据库同步

     

    首先,一般情况下数据库安装好后,在企业管理器里看到的sql注册是(local)(Windows NT),

    SQL Server 复制不支持昵称,例如使用“.”或“(local)”作为服务器名。

    删除该服务器的 SQL Server 注册并使用实际的服务器名对它进行注册。

    我把先把这个删除,右击他,选择删除sql server 注册 。。然后新建注册,右击Sql server组,新建Sql server 注册下一步--》可用的服务器里有你的计算机名,点中间的添加,添加到“添加的服务器里”--下一步--》下一步--》下一步--》完成

    单击刚刚以计算机名建好的sql server 注册,以选中它--》工具--》复制--》配置发布、订阅服务器和分发。。。--》下一步--》下一步--》出现“SEOGIRL”上的 SQL Server 代理当前在使用系统帐户,它会导致服务器之间的复制失败。在下列对话框中,为服务启动帐户另外指定一个帐户。--》确定,选择“本帐户”(这时进入系统新建一个帐户比如SQL120),用户名输入"SEOGIRLSQL120",输入密码,确定,出现:所做的一个或多个更改只有在 SQL Server 代理重新启动后才会生效。现在要停止并重新启动 SQL Server 代理吗?,确定,确定,--》下一步--》下一步--》快照文件夹路径“/SEOGIRLD$Program FilesMicrosoft SQL ServerMSSQLReplData”使用特殊的共享名称,该名称通常只能由在计算机“SEOGIRL”上有管理权限的登录访问。此共享可能不能由在其它计算机上运行的代理程序访问,例如请求订阅的代理程序。

    确实要使用此快照文件夹路径吗?
    --》否,因为这个路径是没办法请求订阅的代理程序,咱们建一个文件夹D:ReplData,在这个文件夹的属性里设置“共享此文件夹”,点击“权限”设置everyone为完全。--》确定后退出--》返回咱们刚才的“快照文件夹”,在里边输入“/SEOGIRLReplData”--》下一步--》下一步--》完成--》关闭

     

    打开企业管理器--》选中发布服务器--》工具--》复制--》配置发布、订阅服务器和分发。。。--》下一步--》下一步--》下一步--》否,选择一个快照文件夹位置,/seogirlReplData--》下一步--》--》--》--》--》--》--》--》

    “SEOGIRL”上的 SQL Server 代理当前在使用系统帐户,它会导致服务器之间的复制失败。在下列对话框中,为服务启动帐户另外指定一个帐户。
    “SEOGIRL”上的 SQL Server 代理使用系统帐户,所以服务器之间的 SQL Server 复制将会失败。若要在服务器之间使用复制,请选择另一个服务器器作为“SEOGIRL”的分发服务器。
    “SQL120”不是有效的 Windows NT 名称。请给出完整名称: <域用户名>。

    输入"administrator"时提示以下错误:
    错误 15407: 'administrator' 不是有效的 Windows NT 名称。请给出完整名称: <域用户名>。

     

    系统出现两个选择 一个是 是,将SQL server代理服务配置为自动启动
    另一个是 否,我将手工启动 SQL server 代理服务器
    然后选那个呢?
    我两个都试过了 然后出现快照文件夹
    /XXLJDF$Program FilesMicrosoft SQL ServerMSSQLReplData
    系统提示 不是有效的文件名或路径

    接下去就弄不了 哪位大哥帮帮忙啊

    1。 一个是 是,将SQL server代理服务配置为自动启动
    另一个是 否,我将手工启动 SQL server 代理服务器
    说明:这个选择是或者否都可以。是:则系统自己启动代理服务器
    否:你自己手工的启动代理服务器
    这就是区别。
    2。
    /XXLJDF$Program FilesMicrosoft SQL ServerMSSQLReplData
    系统提示 不是有效的文件名或路径

    这样修改:1。创建一个文件夹在ntfs分区上,如:D:ReplData
    2.共享这个文件夹 --右击文件夹-属性-共享
    3。同时在相同的界面-有权限-设置为everyone-完全控制的权限
    这样就可以了。
    4.路径里输入/计算机名ReplData

     

    配置SQL Server 2000 数据库同步时的 常见问题

    问题:SQL Server 复制不支持昵称,例如使用“.”或“(local)”作为服务器名。

    回答:删除该服务器的 SQL Server 注册并使用计算机名进行注册。

    问题:“SEOGIRL”上的 SQL Server 代理当前在使用系统帐户,它会导致服务器之间的复制失败。在下列对话框中,为服务启动帐户另外指定一个帐户。

    回答:应该先建一个有管理员组权限的帐户,然后用在这。

    问题:快照文件夹路径“/SEOGIRLD$Program FilesMicrosoft SQL ServerMSSQLReplData”使用特殊的共享名称,该名称通常只能由在计算机“SEOGIRL”上有管理权限的登录访问。此共享可能不能由在其它计算机上运行的代理程序访问,例如请求订阅的代理程序。确实要使用此快照文件夹路径吗?

    回答:在D盘或你别的盘建一个文件夹如:D:pub,设为共享,并把上面那个新建的用户加到这里面设为完全控制,快照路径里写/计算机名pub

    问题:“SQL120”不是有效的 Windows NT 名称。请给出完整名称: <域用户名>。

    解决:使用:计算机名用户名。

     

    另一种配置方法


    我是如何设置的:
    1。准备工作
    设置一个公用目录并保证2台服务器有权限。
    2。右键发布服务器——属性——复制——配置——创建分发服务器,并设定发布服务器和发布数据库,
    然后给予订阅服务器权限。
    3。依次展开:发布服务器——将要发布的数据库——右键发布内容——新建发布。
    4。右键刚刚建立的发布——属性——状态——立即运行代理程序——代理程序属性中设置调度并启动。
    4。右键刚刚建立的发布——属性——订阅——强制新建。

    有时候会看不到新建立的项目,重新进就可以了。

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

     

    经过测试,可以顺利实现数据库结构的初始化和数据的单向同步(也就是订阅服务器的数据可以及时更新为发布服务器的数据)。
    准备工作:
    >>数据的同步中主要考虑的三部分,可以理解成三台主机。发布服务器,分发服务器和订阅服务器;可以从字面的意思理解,要实现的功能实际就是让订阅服务器通过分发服务器保持数据及时地和发布服务器上的数据一致。整个执行过程是这样一来的:
    a.订阅服务器应该有个初始化,一般来说我们开始做这个同步任务的时候,发布服务器已经有了相当的数据量了,而我们的订阅服务器应该是新建的服务。即使发布中没有数据,也需要把他的数据库结构初始化到订阅服务器上。
    b. 我采用的是事物复制,发布服务器的数据发生变化后,相当于触发了一个更新操作,而事物复制可以在设定的时间把数据更新的操作更新到订阅服务器中去。当然,这个操作需要经过分发服务器。在我的测试中,我是把发布服务器和分发服务器设置为同一台主机,可以顺利实现数据在数分钟内同步。

    > >在操作的起始,需要考虑订阅服务器是否有和发布服务器相同结构的数据库,如果有,需要做的就是使用代理把发布服务器现有的数据初始化过去;如果没有对应的相同结构的数据库,就需要要把发布服务器当前的数据库结构和当前的数据都初始化到订阅服务器中。当然这里所说的操作都是在下面的实施步骤中实现,不需要单独处理。
    >>如果说对Windows系统有所要求的话,就应该保证这三个服务器(发布,分发,订阅)在同个域中,以同一个域管理员帐号身份运行,操作如下:
    a.进入相应的服务器,控制面板->服务->SQLSERVERAGENT,设置登录,三台服务器同样设置。

    b.操作前,也不允许这三台服务器对应的别名使用呢称,比如"LOCAL",这样的别名要删除重建,可以采用主机名,比如:server02.

    下面开始执行数据库同步的操作:
    >>配置发布服务器和分发服务器:
    a.选中对应服务器的注册名->工具->复制->配置发布、订阅和分发,直接按照默认设置向下执行,直到完成。关闭。
    b. 再一次选中这个服务器服务器的注册名->工具->复制->配置发布、订阅和分发,可以看到这次界面和步骤a中的界面有所不同,我们只需要配置一下发布服务器,发布数据库,订阅服务器。(我的发布数据库采用的是事物性的)。点“确定”完成操作。<标记P>

    > >创建发布,可以选中相应的注册,用工具->复制->创建和管理发布或者在该注册下面的复制->发布内容选中后,在右边空白处,右键,新建发布,来创建你的发布。我选择的是事物发布,按照默认设置,选择你要发布的表或其他对象,其他地方不需要修改,直到完成操作。
    >>修改发布属性:选择“状态”->立即运行代理程序;代理程序属性->设置你的调度,比如一分钟一次。(调度->编辑->更改;通知->写入windows应用程序事件日志),"确定"完成操作。

    >>创建订阅:选择发布服务器对应的注册,复制->发布内容->在这个内容上右键,强制新订阅,->"下一步",选择订阅服务器(在标记P那一步选择的订阅服务器)->“下一步”->选择你有的数据库,或者新建一个数据库
    ->"下一步"-> 修改你需要的调度->按照默认设置,直到完成。

    到这里就可以完成了,修改发布服务器数据库中的内容,等一两分钟,数据就同步到订阅服务器中了。不过由于第一次执行需要快照,如果发布库中有一定的内容,第一次执行可能需要几分钟时间。如果数据不能同步过去,大家是调度设置时间太短(比如1分钟)使快照不能完成,所以后面的步骤无法执行,遇到这样的情况的话,
    选中你发布的内容,设置属性,在“状态”中“立即运行代理程序”,这样的话,数据会马上同步过去的。

    展开全文
  • 数据库同步 sql 同步 sql 2000 同步 sql 2005 同步 MS-SQL同步
  • 数据库同步软件DBSync

    2021-06-29 21:43:21
    DBSync是一款数据库同步软件,支持各种数据库,支持异构同步、增量同步,且提供永久免费版。
  • 易语言数据库同步源码,数据库同步,配置初始化读取,子程序1,远程读取数据库并插入当前表,配置文件式,数据库式,检测未填写,读取当前任务信息
  • SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据、无人值守、故障自动恢复、同构/异构数据库同步、断点续传和增量同步等功能,支持Windows xp以上所有操作系统,适用...
  • 如何针对不同的应用选择不同的产品,需要我们必须清楚数据库同步和数据库复制的具体含义。  无论概念如何定义,我们都必须清楚,这两种操作的基础是数据库中的数据,但是包含的数据内容却有所不同  数据库同步,...
  • 程序代码可以有版本管理CVS进行同步管理,可是数据库同步就非常麻烦,只能自己改了一个后再去改另一个,如果忘记了更改另一个经常造成两个数据库的结构或内容上不一致.
  • DataGuard数据库同步

    2016-02-24 09:29:43
    详细介绍Oracle数据库同步技术DataGuard
  • 易语言源码数据库同步易语言源码.rar 易语言源码数据库同步易语言源码.rar 易语言源码数据库同步易语言源码.rar 易语言源码数据库同步易语言源码.rar 易语言源码数据库同步易语言源码.rar 易语言源码数据库同步...
  • 数据库同步工具

    热门讨论 2013-08-24 16:03:58
    数据库同步工具,需稍作修改.支持增量同步和更新同步。
  • 数据库同步工具utscninfo
  • 关系型数据库同步工具,使用 JavaFX 开发,功能包括完成关系型数据库表结构获取、多种类型数据库之间数据转移、同步。 目前支持的数据库类型有mysql、Oracle、sqlserver、PostgreSql、sqlite、h2、access、达梦等。
  • SqlServer数据库同步

    2014-10-11 14:02:35
    sql server 数据库同步方案整理,SqlServer数据库同步是项目中常用到的环节,若一个项目中的数据同时存在于不同的数据库服务器中,而这些数据库需要被多个不同的网域调用时,配置SqlServer数据库同步是个比较好的...
  • SQL数据库同步步骤

    2011-10-10 15:36:16
    SQL数据库同步步骤SQL数据库同步步骤SQL数据库同步步骤
  • SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据、无人值守、故障自动恢复、同构/异构数据库同步、断点续传和增量同步等功能,支持Windows xp以上所有操作系统,适用...
  • 在选择数据库同步备份解决方案时,我们评估了两种方式:SQL Server 2008的数据库镜像和SQL Server 2008数据库复制。数据库镜像的优点是系统能自动发现主服务器故障,并且自动切换至镜像服务器。但缺点是配置复杂,...
  • 在django1.9之前,数据库同步只需要一条命令:python manage.py syncdb 在djang1.9以后,数据库同步执行指令如下: 同步数据库接口(注意需要切换至python project工作空间所在路径) python manage.py ...
  • WinCC_SQL_SERVER_数据库实现数据库同步
  • 同步当前数据库和服务器数据库的数据,使得两个数据库的数据一致,这个属于sql的高级应用,相信对你们都很有用处,也可以对你们的数据库能用有所提示,是一篇比较好的资料,由于该资料是本人开发的,所以希望尊重...
  • SQL数据同步,同时更新数据 不同服务器之间数据库同步之SQL Server 2005发布教程
  • 文档针对几种远程异地SQL Server数据库同步技术介绍、对比,分析各类同步方案、方法,尤其适用于企业内网服务端和互联网服务端数据库同步技术。
  • java实现数据库同步

    千次阅读 2019-07-19 08:48:49
    之前也有用过数据库的同步中间件比如阿里的canal,最近突发奇想,自己使用Java进行不同数据库品牌的数据库同步,比如Oracle同步到MySQL,等等; 正文 ...

    之前也有用过数据库的同步中间件比如阿里的canal,最近突发奇想,自己使用Java进行不同数据库品牌的数据库同步,比如Oracle同步到MySQL,等等;

    正文

    展开全文
  • mysql数据库同步canal框架分享PPT mysql数据库同步canal框架分享PPT
  • 数据库同步数据

    2014-01-27 19:15:27
    使用TJS跨数据库同步数据,真实项目源代码
  • 同步当前数据库和服务器数据库的数据,使得两个数据库的数据一致,这个属于sql的高级应用,相信对你们都很有用处,也可以对你们的数据库能用有所提示,是一篇比较好的资料,由于该资料是本人开发的,所以希望尊重...
  • 数据库同步有3大难题: 1是如何保障目标和源数据一致性; 2是异构数据库如何做数据类型转换,导致数据同步失败的原因常常是因为数据类型不一样; 3是在数据越实时越有价值的背景下,同步过程中能否做到实时同步。

    摘要

    数据库同步有3大难题:
    1是如何保障目标和源数据一致性;
    2是异构数据库如何做数据类型转换,导致数据同步失败的原因常常是因为数据类型不一样;
    3是在数据越实时越有价值的背景下,同步过程中能否做到实时同步。

    一、几种主流的数据库同步方式

    方式一:基于无侵入的日志模式(如Oracle redo、Mysql binlog)
    基于日志的采集方式无需在源库端部署任务代理程序(Agent)及建任何表,对源数据库无侵入和影响压力;

    方式二:基于时间戳
    同步过程通过特定属性(如时间戳、自增序列)来识别新插入的数据,该方式实现最简单,但无法记录删除和更新,也不具备实时的能力;

    方式三:基于触发器
    基于数据库的触发器机制,当执行DML相关语句时,执行动作来捕获数据,该方式会降低系统能,因此大多数场景下,生产系统不允许添加触发器。

    方式四:基于快照
    基于快照的方式,可以通过比较源表和快照表来获得数据变化,但需要消耗大量存储空间和计算资源。

    方式五:基于离线批处理
    通过jdbc查询来批量获取数据,会进行数据表的大范围扫描和数据提取,会对数据库产生大量开销。

    本文主要探讨无侵入的CDC模式,并以运用这种模式的数据库同步云工具 Tapdata Cloud 举例,你要问我为啥用它举例,原因只有一个:永久免费。

    二、架构及工作原理

    Tapdata Cloud包含两部分:

    1. Tapdata Cloud Manager,TCM是Tapdata Cloud的管理端,负责agent实例的安装,同步任务的配置、分发、任务状态监测。
    2. Tapdata agent,是Tapdata Cloud数据同步服务的执行实例,负责从TCM获取任务信息,通过流式技术从源系统获取数据、处理转换数据并发送到目标系统,并在任务执行过程中监测并上报任务状态至TCM。

    在这里插入图片描述

    (Tapdata Cloud 工作原理图)

    有朋友可能会担心这个云平台会不会把我要同步的数据泄露出去?

    从Tapdata Cloud 工作原理上可以看出:

    1. 同步实例节点单向连接管控端运行服务。 Tapdata agent实例节点对外不主动暴露网络信息,只会连接 TCM管理端服务,获取任务信息、上报状态信息。
    2. 用户部署的Tapdata agent实例节点和 TCM 通信链路采用 HTTPS 协议。
    3. 自建模式下,所有数据流转均发生在受用户管理的服务器和网络环境。
      可见,数据同步过程中数据泄露的问题大可不必担忧。

    三、全量同步和实时增量同步机制

    Tapdata Cloud 这款云同步工具支持全量同步和实时增量同步,实现的过程如下图所示:
    在这里插入图片描述


    四、源和目标

    据 Tapdata Cloud 最新版本,目前支持了:

    数据库版本作为源作为目标是否可用
    mysql5.x,8.x支持支持
    oracle9i, 10g, 11g, 12c支持支持
    sqlsever2005, 2008, 2012, 2014, 2016, 2017支持支持
    mongodb3.2, 3.4, 3.6, 4.0, 4.2支持支持
    PostgreSQL9.x, 10.x,11.x,12.x,13.x支持支持
    Elastic5.x, 6.x, 7.x暂不支持支持
    达梦数据库7,8支持支持
    Kafka2.3.x及以上暂不支持支持
    Redis2.x, 3.x, 4.x暂不支持支持即将上线
    DB29.7 LUW版本支持支持即将上线
    SybaseSybase ASE 15.7 及以上支持支持即将上线
    Gbase支持支持即将上线

    五、举例:Oracle 数据实时同步到 Elasticsearch

    一般需要做全文检索的时候,会将 Oracle 数据实时同步到 Elasticsearch。

    第一步:配置 Oracle 连接

    1. 点击 Tapdata Cloud 操作后台左侧菜单栏的【连接管理】,然后点击右侧区域【连接列表】右上角的【创建连接】按钮,打开连接类型选择页面,然后选择Oracle
      在这里插入图片描述

    1. 在打开的连接信息配置页面依次输入需要的配置信息
      在这里插入图片描述

    【连 接 名 称】:设置连接的名称,多个连接的名称不能重复
    【数据库地址】:数据库 IP / Host
    【端 口】:数据库端口
    【数据库名称】:tapdata 数据库连接是以一个 db 为一个数据源。这里的 db 是指一个数据库实例中的 database,而不是一个 schema。
    【账 号】:可以访问数据库的账号
    【密 码】:数据库账号对应的密码
    【时 间 时 区】:默认使用该数据库的时区;若指定时区,则使用指定后的时区设置

    第二步:配置 Elasticsearch 连接

    1. 同第一步操作,点击左侧菜单栏的【连接管理】,然后点击右侧区域【连接列表】右上角的【创建连接】按钮,打开连接类型选择页面,然后选择Elasticsearch
      在这里插入图片描述

    1. 在打开的连接信息配置页面依次输入需要的配置信息,配置完成后测试连接保存即可。
      在这里插入图片描述

    第三步:建立同步任务,以全量+增量同步举例
    进入Tapdata Cloud 操作后台任务管理页面,点击添加任务按钮进入任务设置流程
    在这里插入图片描述


    根据刚才建好的连接,选定源端与目标端。
    在这里插入图片描述


    根据数据需求,选择需要同步的库、表,如果你对表名有修改需要,可以通过页面中的表名批量修改功能对目标端的表名进行批量设置.
    在这里插入图片描述


    在以上选项设置完毕后,点击下方的全量+增量选项并点击确定按钮即可完成本次全量同步任务的配置,在点击确定后将自动返回任务管理页面,在任务管理页面中,点击右侧的启动按钮即可使Tapdata Agent 开始执行本次任务。在全量任务执行完毕后,Tapdata Agent 会自动进入增量同步状态。在该状态中,Tapdata Agent 会持续监听源端的数据变化(包括:写入、更新、删除),并实时的将这些数据变化写入目标端。

    在这里插入图片描述


    点击任务监控可以打开任务执行详情页面,可以查看任务执行的具体信息。
    在这里插入图片描述


    同理,其他数据库的同步操作也跟上面步骤一致,比如几个常用的场景是:
    • 从业务数据库到缓存数据库的实时同步
    • 不停机迁移数据库
    • 将主业务中心的数据实时同步至次业务中心
    • 构建只读实例
    • 构建异地灾备中心
    • 构建异地多活


    六、目标和源数据一致性

    很多人都担心同步的数据可能没法和源数据一致,Tapdata Cloud 提供了数据校验功能,包括快速count校验、表全字段值校验和关联字段值校验三种校验方式。
    • 快速count:仅对源表和目标表的行数进行count校验,速度极快,但是不会展示差异的具体字段内容。
    • 全表字段值校验:会对源表和目标表的全部字段进行逐行校验,能查出所有字段的差异,但是速度慢。
    • 关联字段值校验:只对源表和目标表的关联字段的值进行比对校验,速度快于全表字段值校验模式。
    校验操作步骤
    进入数据校验菜单,点击新建校验任务创建数据校验。
    【选择任务】:选择一个历史同步任务
    【校验类型】:可选 快速count校验、表全字段值校验和关联字段值校验
    【校验任务名】:默认与选择的同步任务名字一样
    【校验频次】:设置您的校验的执行频次
    【单次校验】:只执行一次校验
    【重复校验】:设置校验任务重复执行,支持设置校验执行的起止时间和校验间隔
    【错误数据保存条数】:当出现校验不一致的数据时,不一致数据保存的最大条数。该数值会影响到差异校验,当错误数据条数超出设置的保存条数时,将无法进行差异校验。
    【校验条件】:添加需要进行校验的表。点击自动添加会自动将任务下的所有表全部添加进来。

    快速count校验

    创建快速count校验时只需要选择到要校验的表,无需设置关联条件。
    在这里插入图片描述


    表全字段值校验

    除了要选择待校验表外,还需要针对每一个表设置索引字段。
    在这里插入图片描述


    在进行表全字段值校验时,还支持进行高级校验。通过高级校验可以添加JS校验逻辑,对源和目标的数据进行校验。

    在这里插入图片描述


    完整示例:以MongoDB查询示例

    JavaScript

    function validate(sourceRow){
        // 第1步
        var targetRow = target.executeQuery({database: "target",collection: "USER",filter: {USER_ID: sourceRow.USER_ID}});
        // 第2步
        if(sourceRow.USER_ID === targetRow[0].USER_ID){
            // 第3步
            return {result: 'passed',message: "",data: ""}
        }else{
            return {result: 'failed',message: "记录不一致",data: targetRow}
        }
    }
    

    在这里插入图片描述


    关联字段值校验

    创建关联字段值校验时,除了要选择待校验表外,还需要针对每一个表设置索引字段。
    在这里插入图片描述

    七、异构数据类型转换

    在异构数据库之间做同步,类型转换是一大难题,也是导致数据同步失败的重要原因,Tapdata Cloud 类型映射功能,在系统推演的基础上,提供了人工调整的能力,这一点比其他数据同步工具都更方便使用。
    在这里插入图片描述


    八、总结

    为了达到数据实时要求,并且不对源库造成干扰,首选 CDC 模式。
    现在市面上已经陆续出现了一些数据同步工具,完全没有必要自己撸代码了,免费的用起来不香吗?
    希望上文的实操图文,对你的数据库同步有帮助,有数据库相关的问题可以随时跟我交流!

    展开全文
  • 数据库同步技术,数据库同步,SQL2000同步,2000,同步,备份
  • 将P2P技术引入了网络数据库领域,可以很好地实现网络数据库系统的高效率、大容量及...本文在明确P2P网络特点的基础上,重点研究了P2P数据库同步系统,涉及到系统体系结构、数据库信息同步的策略及数据节点状态表的维护等。
  • Python实现两个Oracle数据库同步工作
  • 从本文开始,我将介绍一个数据库同步系统的设计方案,该系统是我在2010年给某软件公司做设计模式内训时指导几位开发人员所开发的一个项目,系统以某省级移动公司应急管理系统数据备份(数据库同步)需求为原型,基本...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 647,323
精华内容 258,929
关键字:

数据库同步