SqlServer数据实时同步到mysql

article/2025/10/9 17:10:43

SqlServer数据实时同步到mysql

一、首先要装一个ODBC的驱动用来建立mysql的连接。http://www.mysql.com/products/connector/
在这里插入图片描述
注意:一定要用32位的可用cmd执行这个命令:

c:\windows\syswow64\odbcad32.exe

配置【用户DSN】和【系统DSN】
在这里插入图片描述

二、打开sqlserver建立链接服务器
右键新建链接服务器
1、点击【常规】
在这里插入图片描述
填上在ODBC建立的服务器名称,访问接口选择ODBC
2、点击【安全性】
在这里插入图片描述
选择最后一个,并填上mysql的账户密码
最后点确定就会看到链接服务器多了一个名为“mysqltest”的链接服务器
在这里插入图片描述
三、建立允许远程访问连接操作

USE [master]
GO
EXEC master .dbo. sp_serveroption @server =N'MYSQLTEST' , @optname= N'rpc out', @optvalue=N'TRUE'
GO
EXEC master .dbo. sp_serveroption @server =N'MYSQLTEST' , @optname= N'remote proc transaction promotion', @optvalue =N'false'
GO

四、建立LOOPBACK 服务器链接

EXEC sp_addlinkedserver @server = N'loopback' , @srvproduct = N' ' , @provider = N'SQLNCLI',
@datasrc = @@SERVERNAME
go

五、设置服务器链接选项,阻止SQL Server 由于远过程调用而将本地事务提升为分布事务(重点)

USE [master]
GO
EXEC master .dbo. sp_serveroption @server =N'loopback', @optname= N'rpc out', @optvalue=N'TRUE'
GO
EXEC master .dbo. sp_serveroption @server =N'loopback', @optname= N'remote proc transaction promotion' , @optvalue=N'false'
GO

到这就可以测试一下这个能不能链接上

select * from OPENQUERY(MYSQLTEST,'SELECT * FROM users ')

六、建立存储过程和触发器

1、insert

--存储过程
USE [master]
GOSET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[insert_user]
@id INT ,
@name varchar(50)
AS
BEGINSET NOCOUNT ONinsert OPENQUERY(MYSQLTEST,'SELECT * FROM user')(id,name) values(@id,@name);SET NOCOUNT OFF
END
--触发器
USE [master]
GOSET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[insert_trigger] ON [master].[dbo].[user]
FOR INSERT
AS
DECLARE @id INT,@name VARCHAR(50)SELECT @id =id, @name=name FROM INSERTED;BEGINEXEC loopback .master. dbo.insert_user @id, @name;END

2、update

--存储过程
CREATE PROCEDURE [dbo].[update_user]
@id INT ,
@name varchar(50)
AS
BEGINSET NOCOUNT ONUPDATE OPENQUERY (MYSQLTEST,'SELECT * FROM users ') set id =@id where name =@nameSET NOCOUNT OFF
END
--触发器
CREATE TRIGGER [dbo].[update_trigger] ON [master].[dbo].[user]
FOR UPDATE
AS
DECLARE @id INT,@name VARCHAR(50)SELECT @id =id, @name=name FROM INSERTED;
BEGINEXEC loopback .master. dbo.update_user @id, @name;
END

3、delete

--存储过程
CREATE PROCEDURE [dbo].[delete_user]
@id INT 
AS
BEGINSET NOCOUNT ONDELETE OPENQUERY ((MYSQLTEST, ,'SELECT * FROM users ') where id =@idSET NOCOUNT OFF
END
--触发器
CREATE TRIGGER [dbo].[delete_trigger] ON [master].[dbo].[user]
FOR DELETE
AS DECLARE @ID INTSELECT @ID =ID FROM DELETED ;
BEGINEXEC loopback .master. dbo.delete_user @id;
END

给存储过程添加异常机制

如果遇到不正确的数据导致无法更新同步,则可以做一个异常机制记录。在sqlserver中建一张记录异常的表:LogTable
这里用insert做示范

CREATE PROCEDURE [dbo].[insert_user]
@id INT ,
@name varchar(50)
AS
BEGINSET NOCOUNT ONBEGIN  tryinsert OPENQUERY(MYSQLTEST,'SELECT * FROM user')(id,name) values(@id,@name);END tryBEGIN catch
INSERT INTO LogTable values(ERROR_NUMBER(),ERROR_SEVERITY(),ERROR_STATE(),ERROR_PROCEDURE(), ERROR_LINE() ,ERROR_MESSAGE());END catchSET NOCOUNT OFF
END

这样就可以把一些错误的数据记录在LogTable 表里

小结

//MSDTC不可用解决办法
报错MSDTC(分布式交易协调器),协调跨多个数据库、消息队列、文件系统等资源管理器的事务。该服务的进程名为Msdtc.exe,该进程调用系统Microsoft Personal Web Server和Microsoft SQL Server。该服务用于管理多个服务器 .
位置:控制面板--管理工具--服务--Distributed Transaction Coordinator
依存关系:Remote Procedure Call(RPC)和Security Accounts Manager
建议:一般家用计算机涉及不到,除非你启用Message Queuing服务,可以停止。
解决办法: 1. 在windows控制面版–>管理工具–>服务–>Distributed Transaction Coordinator–>属性–>启动
2.在CMD下运行"net start msdtc"开启服务后正常。
注:如果在第1步Distributed Transaction Coordinator 无法启动,则是因为丢失了日志文件,重新创建日志文件,再启动就行了。重新创建 MSDTC 日志,并重新启动服务的步骤如下:
(1) 单击"开始",单击"运行",输入 cmd 后按"确定"。
(2) 输入:msdtc -resetlog (注意运行此命令时,不要执行挂起的事务)
(3) 最后输入:net start msdtc 回车,搞定!


http://chatgpt.dhexx.cn/article/SE207qea.shtml

相关文章

SqlServer实时数据同步到MySql

---安装安装mysqlconnector http://www.mysql.com/products/connector/ /* 配置mysqlconnector ODBC数据管理器->系统DSN->添加->mysql ODBC 5.3 ANSI driver->填入data source name如jt,mysql的ip、用户名、密码即可 */ --新建链接服务器 exec sp_addlinkedserver…

数据库实时同步技术解决方案

下载网站:www.SyncNavigator.CN 客服QQ1793040 ---------------------------------------------------------- 关于HKROnline SyncNavigator 注册机价格的问题 HKROnline SyncNavigator 8.4.1 企业版数据同步软件 自2009年第一个版本开发出来以来,经过8年不断地根…

不同SQL Server数据库之间表数据的实时同步-发布与订阅

最近要将不同服务器上数据库的表数据同步汇总,所以就涉及到了数据同步的问题,以前没有接触过,在网上找了找方法, 大抵的方法有三种: 1,在数据库中编写触发器 2,写一个同步程序去完成同步 3&…

“实时数据同步:构建高效的 MySQL 数据同步方案“

方案一 基于LVM快照进行备份切换 介绍: MySQL数据库本身并不支持快照功能(sqlServer支持) 因此快照备份是指通过文件系统支持的快照功能对数据库进行备份 备份的前提是将所有数据库文件放在同一文件分区中,然后对该分区进行快照操作 LVM是LINUX系统下对磁盘分区进…

多源异构数据库实时同步解决方案

1 需求概述 将企业多个业务系统产生的交易数据流实时同步到数据仓库或大数据平台,通过对交易数据的联机实时分析,快速制定或调整商业计划,提升企业的核心竞争力。 需求关键点:同步过程不可影响或中断业务系统正常运行、同步延时…

hadoop大数据平台搭建

大数据平台搭建 大数据平台搭建虚拟机环境准备修改ip,映射IP地址ssh无密码通信同步时间关闭防火墙安装jdk hadoop平台正式搭建安装hadoop安装 kafka安装spark 大数据平台搭建 zookeeperkafkaspark Hadoop yarn 虚拟机环境准备 我们在搭建大数据分布式系统之前需要对软件和虚…

CDH大数据平台搭建之VMware及虚拟机安装

CDH大数据平台搭建-VMware及虚拟机安装 前言一、下载所需框架二、安装(略)三、安装虚拟机1、新建虚拟机(按照操作即可) 总结 前言 搭建大数据平台需要服务器,这里通过VMware CentOS镜像进行模拟,供新手学习必备。 一、下载所需框架 VMware 和CentOS可以…

CDH大数据平台搭建之虚拟环境配置

CDH大数据平台搭建之虚拟环境配置 前言一、虚拟机网络配置1.配置ip地址2.验证配置是否成功 二、关闭防火墙1.防火墙命令2.禁用防火墙 三、虚拟机主机名配置1.临时配置主机名2.永久配置主机名 四、配置域名解析五、新建大数据用户1.新建用户2.配置普通用户sudo权限3.验证 六、SS…

大数据平台搭建(一):虚拟机环境配置

前言 最近看了些hadoop相关的资料,然后想自己从零开始搭建一个大数据平台。 大数据平台架构 1.概念性的东西还是不想多啰嗦,先上一张网上找的平台架构图,上图的目的是为了大家对整个平台架构有个宏观的认识,这个很重要&#xff0c…

怎么搭建大数据平台,这个大数据平台方案值得学习

在大数据的时代,不仅仅是个人,企业的发展也离不开大数据。对于企业来说,一方面用户越来越多从线下转移到线上,用户的特点属性需要通过网络获取,企业需要依靠大数据把握市场变化并了解客户,从而提供满足市场…

大数据平台搭建,cdh选型配置

天天干后端,又干前端,本行大数据,差点生疏了,哦吼~正当我发愁之际。 领导安排任务了,下个月去某控上市公司。他们需要从0 开始做大数据平台,主要工作内容如下, 平台搭建,数据迁移&…

大数据平台CDH搭建

一、数仓之Cloudera Manager 1、CM简介 1.1、简介 Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具。 1.2、架构 1)Cloudera Repository:软件由Cloudera管理分布存储库。(有点类似Maven的中心仓库&…

大数据平台搭建目录

欢迎各位学习和借鉴搭配大数据系统 1.备注 省略了一些文件的创建,请自行创建 2.配置到大数据系统的所有配套文件 案例中所使用的版本,解决了版本适配问题 百度网盘链接:https://pan.baidu.com/s/1B5sx61Ori4U8fshHE3bJaA 提取码:6666 一.安装Lunx&…

高可用的分布式Hadoop大数据平台搭建,超详细,附代码。

目录 前言1: 前言2: 一,基础环境 1,三台Centos7.5,一台master,两台slave1和slave2 2,IP配置 ​ 3,改主机名 4,配三台主机映射 5,三台主机时钟同步 6&a…

CDH大数据平台搭建之集群规划

CDH大数据平台搭建之集群规划 前言一、集群规模二、集群规划总结 前言 话说无规矩不成方圆,搭建CDH大数据平台之前需要的工作很多,首先,你需要计算公司每日的数据量,来确定需要多少服务器,确定好服务器之后&#xff0…

大数据平台搭建及集群规划

CDH大数据平台搭建之集群规划_码上_成功的博客-CSDN博客_cdh集群规划 大数据Hadoop分布式集群部署(详细版)_arnoldmp的博客-CSDN博客_分布式集群部署 大数据平台的硬件规划、网络调优、架构设计、节点规划 【全网独家】大数据集群节点与硬件规划_大数…

知名大厂大数据平台搭建案例分享

“ 今天我们来看一下淘宝、美团和滴滴的大数据平台” 01 淘宝大数据平台 淘宝可能是中国互联网业界较早搭建了自己大数据平台的公司,下图是淘宝早期的 Hadoop 大数据平台,比较典型。 淘宝的大数据平台基本也是分成三个部分,上面是数据源与数据…

CDH大数据平台搭建之HADOOP分布式集群搭建

CDH大数据平台搭建之HADOOP安装 一、什么是HADOOP?二、如何下载1.官网下载2.网盘下载 三、搭建集群1.虚拟机准备2.安装JDK3.安装ZOOKEEPER4.集群规划5.安装HADOOP6.修改配置文件1、进入配置文件目录:2、修改env文件3、修改core-site.xml文件4、修改hdfs-site.xml文…

大数据平台搭建实训报告(思路而已)

目录 1.环境准备 1.1实验目的 1.2实践操作 2.部署HDFS 2.1实验步骤 2.2实践操作 3.实验三 HDFS shell操作 3.1实验目的 3.2实践操作 3.2.1练习对HDFS文件创建、查看、删除、复制、粘贴等文件操作 3.2.2练习本地文件与HDFS文件的上传与下载 3.2.3练习HDFS文件权限修…

CDH大数据平台搭建

Hadoop是apache旗下的一套开源软件平台, 主要对海量数据进行分布式处理。 本次部署,计划使用5台服务器,服务器磁盘规划如下: 分区挂载完成以后,使用root用户执行对目录/data授权。每台服务器都执行此命令。 chmod 777 -R /data …