ODBC数据管理器 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

@server=‘MySqll_Aggregation‘,--ODBC里面data source name

@srvproduct=‘MySql‘,--自己随便

@provider=‘MSDASQL‘,--固定这个

@datasrc=NULL,

@location=NULL,

@provstr=‘DRIVER={MySQL ODBC 5.3 ANSI Driver};SERVER=172.17.29.33;DATABASE=bi;UID=zhaowenzhong;PORT=3306;‘,

@catalog=NULL

---创建连接mysql数据库的账号及密码

exec sp_addlinkedsrvlogin

@rmtsrvname=‘MySqll_Aggregation‘,----ODBC里面data source name

@useself=‘false‘,

@rmtuser=‘zhaowenzhong‘,---mysql账号

@rmtpassword=‘[email protected]‘;--mysql账号其密码

---测试是否可以访问mysql数据库中的表

select * from openquery(MySqll_Aggregation,‘SELECT * FROM tb; ‘)

-----建立允许远程访问连接操作

USE [master]

GO

EXE Cmaster.dbo.sp_serveroption@server=N‘MySqll_Aggregation‘,@optname=N‘rpc out‘,@optvalue=N‘TRUE‘

GO

EXEC master.dbo.sp_serveroption@server=N‘MySqll_Aggregation‘,@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

---编写触发器和存储过程

--insert

CREATE TRIGGER TR_INSERT_TB ON  DB_TY2015.DBO.TB

FOR INSERT

AS

DECLARE@ID INT,

@QTY INT

SELECT@ID=ID,@QTY=QTY FROM INSERTED;

BEGIN

EXEC loopback.db_ty2015.dbo.sp_insert@id,@qty;

END

CREATE PROCEDURE SP_INSERT

@ID INT,

@QTY INT

AS

BEGIN

SET NOCOUNT ON

INSERT OPENQUERY(db_ty2015,‘select * from tb‘)(id,qty) values (@id,@qty);

SET NOCOUNT OFF

END

---update

CREATE TRIGGERT R_UPDATE_TB ON DB_TY2015.DBO.TB

FOR UPDATE

AS

DECLARE @ID INT,@QTY INT

SELECT@ID=ID,@QTY=QTY FROM INSERTED;

BEGIN

EXEC loopback.db_ty2015.dbo.sp_update@id,@qty;

END

CREATE PROCEDURE SP_UPDATE

@ID INT,

@QTY INT

AS

BEGIN

SET NOCOUNT ON

UPDATE OPENQUERY(db_ty2015,‘select * from tb‘) SET qty=@qty WHERE id=@id

SET NOCOUNT OFF

END

--delete

CREATE TRIGGER TR_DELETE_TB ON DB_TY2015.DBO.TB

FOR DELETE

AS

DECLARE @ID INT

SELECT@ID=ID FROM DELETED;

BEGIN

EXEC loopback.db_ty2015.dbo.sp_DELETE@id;

END

CREATE PROCEDURE SP_DELETE

@ID INT

AS

BEGIN

SET NOCOUNT ON

DELETE OPENQUERY(db_ty2015,‘select * from tb‘) WHERE id=@id

SET NOCOUNT OFF

END

-------初始化数据     表已存在的情况

insert  into  penquery(MySqll_Aggregation,‘select * from bi.tb‘) select*from[FSLogin].[dbo].[tb]with(nolock)

---从mysql同步表结构及数据到sqlserver上

select * into  [SqlServerDBName].dbo.MYTest  from   openquery(localmysql,‘select * from mysqldbname.weibosession‘)

原文地址:https://www.cnblogs.com/dullbaby/p/9028256.html

时间: 2024-07-29 18:05:52

ODBC数据管理器 SqlServer实时数据同步到MySql的相关文章

rsync+inotify-tools实时数据同步配置实战

实验环境的准备: 源服务器:10.0.0.130 目标服务器:10.0.0.139 一.在源服务器安装Rsync服务端 1.关闭SELINUX vi /etc/selinux/config #编辑防火墙配置文件 #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq! #保存,退出 setenforce 0  #立即生效 2.开启防火墙tcp 873端口(Rsync默认端口) vi /etc/sysc

rsync+inotify实时数据同步单目录实战

rsync+inotify实时数据同步单目录实战 inotify是一个强大的.细粒度的.异步的文件系统事件监控机制,linux内核从2.6.13起加入了inotify支持,通过inotify可以监控文件系统中添加.删除.修改.移动等各种事件,利用这个内核接口,第三方软件可以监控文件系统下文件的各种变化情况,而inotify-tools正是实施监控的软件. inotify配置是建立在rsync服务基础上的配置过程 操作系统 主机名 网卡eth0 默认网关 用途 [email protected]

rsync+inotify实时数据同步多目录实战

rsync+inotify实时数据同步多目录实战 inotify配置是建立在rsync服务基础上的配置过程 操作系统 主机名 网卡eth0 默认网关 用途 [email protected] 192.168.1.111 192.168.1.1 Rsync服务端 [email protected] 192.168.1.121 192.168.1.1 Rsync 节点 子网掩码均为255.255.255.0 具体需求: 要求在58server1上以rsync守护进程的方式部署rsync服务,使得[e

Rsync+Sersync实时数据同步

sersync实时数据同步 Rsync+Inotify-tools与Rsync+sersync这两种架构有什么区别? 1.Rsync+Inotify-tools (1):Inotify-tools只能记录下被监听的目录发生了变化(包括增加.删除.修改),并没有把具体是哪个文件或者哪个目录发生了变化记录下来: (2):rsync在同步的时候,并不知道具体是哪个文件或者哪个目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此

rsync+inotify实时数据同步

Remote Sync,远程同步 1,rsync命令用法格式:rsync [选项..] 源目录 目标目录区别:同步与复制的差异复制:完全拷贝源到目标同步:增量拷贝,只传输变化过的数据 2,本地同步rsync [选项..] 本地目录1 本地目录2 #把目录1同步到目录2下rsync [选项..] 本地目录1/ 本地目录2 #把目录1下的数据同步到目录2下-a :归档模式,相当于-rlptgoD-v :显示详细信息-z :传输过程中启用压缩/解压-n :测试同步过程,不做实际修改 #与-avz连用-

Linux系统实时数据同步inotify+rsync

一.inotify简介 inotify是Linux内核的一个功能,它能监控文件系统的变化,比如删除.读.写和卸载等操作.它监控到这些事件的发生后会默认往标准输出打印事件信息.要使用inotify,Linux内核版本必须是大于2.6.13,在这之前的内核都没有这个功能.我们可以利用inotify去监控我们要监控的资源,当资源发生变化时,我们扑捉它的事件,从而触发同步数据等操作. 二.inotify软件介绍 inotify是内核的一个功能,众所周知内核的功能我们必须要配合工具才能使用,通常情况下用户

Kettle+MongoDB 数据同步到MySQL

Kettle+MongoDB 数据同步到MySQL 1.前言: MongoDB中的date类型以UTC(Coordinated Universal Time)存储,isodate类型,就等于GMT(格林尼治标准时)时间.而北京所处的是+8区,所以mongo shell会将当前的GMT+0800时间减去8,存储成GMT时间. 2.抽取作业概述 3.组件选择: 4.增量处理: 在MongoDB中查询如下是正确的: > db.xamessages.find({created_at:{$gte:ISOD

TiDB 作为 MySQL Slave 实现实时数据同步

由于 TiDB 本身兼容绝大多数的 MySQL 语法,所以对于绝大多数业务来说,最安全的切换数据库方式就是将 TiDB 作为现有数据库的从库接在主 MySQL 库的后方,这样对业务方实现完全没有侵入性下使用 TiDB 对现有的业务进行备份,应对未来数据量或者并发量增长带来的单点故障风险,如需上线 TiDB,也只需要简单的将业务的主 MySQL 地址指向 TiDB 即可. 下面我们详细介绍了如何将 MySQL 的数据迁移到 TiDB,并将 TiDB 作为 MySQL 的 Slave 进行数据同步.

Linux下rsync+inotify实现实时数据同步

一. rsync 1. 什么是rsync rsync 是一个远程数据同步工具, 可以实现本主机内,或跨主机的数据同步.以服务运行时监听在TCP 873端口, rsync演算法可以达到只传送文件变化的部分,而不是整个都传送,因此速度相当的快,性能不错. 所以rsync通常可以作为备份工具来使用. 1.1 rsync基本特点: 1. 可以镜像保存整个目录树或文件系统 2. 可以很容易做到保持原来文件的权限.时间.软硬链接等; (通过rsync的一些参数, 如 -a) 3. 较高的数据传输效率 4.