1.安装安装mysqlconnector

2.配置mysqlconnector

ODBC数据管理器->系统DSN->加入->mysql ODBC 5.3 ANSI driver->填入data source name如jt,mysql的ip、username、password就可以

3.新建链接server

exec sp_addlinkedserver

 @server='jt',       --ODBC里面data source name

 @srvproduct='mysql',    --自己随便

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

 @datasrc=NULL,

 @location=NULL,

 @provstr='DRIVER={MySQL ODBC 5.3 ANSI Driver};SERVER=192.168.5.188;DATABASE=suzhou;UID=root;PORT=3306;',   

@catalog = NULL

exec sp_addlinkedsrvlogin

  @rmtsrvname='jt',

  @useself='false',

  @rmtuser='root',

  @rmtpassword='password';

 

 

  select * from openquery(jt,'SELECT * FROM sz ; ')

  GO

USE [master]

GO

EXEC master.dbo.sp_serveroption @server=N'jt', @optname=N'rpc out', @optvalue=N'TRUE'

GO

EXEC master.dbo.sp_serveroption @server=N'jt', @optname=N'remote proc transaction promotion', @optvalue=N'false'

GO

---4.sqlserver和mysql新建库和表

create database suzhou;

create table sz(

id int not null  identity(1,1) primary key,

orderno char(20) not null,

ordertime datetime not null default getdate(),

remark varchar(200)

)

go

create table sz(

id int(11) not null ,

orderno char(20) not null,

ordertime datetime(6) not null ,

remark varchar(200),

primary key (id)

) engine=innodb  default charset=utf8;

---5.建立回环

 --建立LOOPBACK server链接

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

@datasrc = @@SERVERNAME

go

--设置server链接选项,阻止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

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

----6.1 insert

--重写触发器

use suzhou

go

alter trigger tr_insert_sz on suzhou.dbo.sz

for insert

as

declare  @id   int, @orderno  char(20),@ordertime datetime,@remark  varchar(200)

select @id=id,@orderno=orderno,@ordertime=ordertime,@remark =remark from inserted;

begin

print @id

print @orderno

print @ordertime

print @remark

exec loopback.suzhou.dbo.sp_insert @id,@orderno,@ordertime,@remark

end

go

--存储过程

use suzhou

go

create PROCEDURE sp_insert(

@id   int,

@orderno  char(20),

@ordertime datetime,

@remark  varchar(200)

)

AS

BEGIN

SET NOCOUNT ON;

Insert openquery(jt, 'select * from sz')(id,orderno,ordertime,remark)values(@id,@orderno,@ordertime,@remark)

END

go

----6.2 update

--重写触发器

use suzhou

go

create trigger tr_update_sz on suzhou.dbo.sz

for update

as

declare  @orderno  char(20),@remark  varchar(200)

select @orderno=orderno,@remark =remark from inserted;

begin

exec loopback.suzhou.dbo.sp_update @orderno,@remark

end

go

--存储过程

use suzhou

go

create PROCEDURE sp_update(

@orderno  char(20),

@remark  varchar(200)

)

AS

BEGIN

SET NOCOUNT ON;

update openquery(jt, 'select * from sz') set remark=@remark where orderno=@orderno

END

go

---update数据測试

use suzhou

go

update sz set remark='ocpyang' where orderno='a001'

go

----6.3 delete

--重写触发器

use suzhou

go

create trigger tr_delete_sz on suzhou.dbo.sz

for delete

as

declare  @orderno  char(20)

select @orderno=orderno from deleted;

begin

exec loopback.suzhou.dbo.sp_delete @orderno

end

go

--存储过程

use suzhou

go

create PROCEDURE sp_delete(

@orderno  char(20)

)

AS

BEGIN

SET NOCOUNT ON;

delete openquery(jt, 'select * from sz')  where orderno=@orderno

END

go

---delete数据測试

use suzhou

go

delete from sz where orderno='a001'

go

实战:sqlserver 数据实时同步到mysql的更多相关文章

  1. SQLServer数据实时同步PostgreSQL

    SQLServer数据实时同步至PostgreSQL 前言: 为迎合工作需求有时候传送的数据保存在SQLServer中但由于工作需要需要保存到PostgreSQL中进行处理,本文主要通过在SQLSer ...

  2. Mysql数据实时同步

    企业运维的数据库最常见的是 mysql;但是 mysql 有个缺陷:当数据量达到千万条的时候,mysql 的相关操作会变的非常迟缓; 如果这个时候有需求需要实时展示数据;对于 mysql 来说是一种灾 ...

  3. mysql数据实时同步到Elasticsearch

    业务需要把mysql的数据实时同步到ES,实现低延迟的检索到ES中的数据或者进行其它数据分析处理.本文给出以同步mysql binlog的方式实时同步数据到ES的思路, 实践并验证该方式的可行性,以供 ...

  4. MySQL 到 ES 数据实时同步技术架构

    MySQL 到 ES 数据实时同步技术架构 我们已经讨论了数据去规范化的几种实现方式.MySQL 到 ES 数据同步本质上是数据去规范化多种实现方式中的一种,即通过"数据迁移同步" ...

  5. canal整合springboot实现mysql数据实时同步到redis

    业务场景: 项目里需要频繁的查询mysql导致mysql的压力太大,此时考虑从内存型数据库redis里查询,但是管理平台里会较为频繁的修改增加mysql里的数据 问题来了: 如何才能保证mysql的数 ...

  6. 项目实战:rsync+sersync实现数据实时同步

    一.组网介绍 本次实验使用两台主机: qll251 角色:Rsync server + Sersync server qll252 角色: Rsync client 本次实验采用CentOS7.7系统 ...

  7. sersync实现数据实时同步

    1.1 第一个里程碑:安装sersync软件 1.1.1 将软件上传到服务器当中并解压 1.上传软件到服务器上 rz -E 为了便于管理上传位置统一设置为 /server/tools 中 2.解压软件 ...

  8. CentOS7下Rsync+sersync实现数据实时同步

    近期公司要上线新项目,后台框架选型我选择当前较为流行的laravel,运行环境使用lnmp. 之前我这边项目tp32+apache,开发工具使用phpstorm. 新建/编辑文件通过phpstorm配 ...

  9. Linux下Rsync+sersync实现数据实时同步

    inotify 的同步备份机制有着缺点,于是看了sersync同步,弥补了rsync的缺点.以下转自:http://www.osyunwei.com/archives/7447.html 前言: 一. ...

随机推荐

  1. LA 6476 Outpost Navigation (DFS+剪枝)

    题目链接 Solution DFS+剪枝 对于一个走过点k,如果有必要再走一次,那么一定是走过k后在k点的最大弹药数增加了.否则一定没有必要再走. 记录经过每个点的最大弹药数,对dfs进行剪枝. #i ...

  2. EasyUI 1.3之前DataGrid中动态选中、获取Checkbox

    这几天做项目,由于项目中用到的EasyUI版本过低,不能使用自带操作DataGrid中CheckBox的方法. 所以自己写了一个临时方案: 根据ID集合选中所属行的CheckBox: data={1, ...

  3. 高德地图关键字搜索删除上一次搜索的Marker

    方法:Marker类的  setMap(null);方法 高德是通过循环调用addmarker(i,d)方法  创建marker标记,所以我们需要 把创建的marker标记压入到一个数组,再第二次搜索 ...

  4. discuz二次开发技巧

    discuz二次开发技巧 二次开发大多时候知识设置和处理,如果能够获知模板文件获得的变量数组将大大提高我们的开发效率 获取页面已经定义的变量 <--{eval printf_r(get_defi ...

  5. iOS 取得CGimage字节数据的方法

    通过我在网上搜索和总结,目前看来,我发现两种比较方便的方式. 1. CGImage -> CGDataProvider -> CFData -> xx * CGDataProvide ...

  6. KVO初探

    一,概述 KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知.简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应 ...

  7. winform 对话框控件,打印控件

    1.文件对话框(FileDialog) 它又常用到两个: 打开文件对话框(OpenFileDialog) 保存文件对话框(SaveFileDialog) 2.字体对话框(FontDialog) 3.颜 ...

  8. 复杂事件处理——Esper入门(示例程序)

    前面对Esper Quick Start & Tutorial进行了简单描述,希望各位看官能够大致了解what is Esper,甚至对how to work有朦朦胧胧的了解. 开发一个Esp ...

  9. Oracle问题解决(远程登录失败)

    远程机: 安装 Oracle 的计算机: 本地机: 访问远程机 Oracle 的计算机. 一.问题描述 远程机安装 Oracle 成功. 本地机配置 InstantClient 后, PLSql De ...

  10. BZOJ 1037 生日聚会

    Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party. hidadz带着朋友们来到花园中,打算坐成一排玩游戏.为了游戏不至于无聊,就座的方案应满足如下条件: ...