1. 程式人生 > >實戰:sqlserver 資料實時同步到mysql

實戰:sqlserver 資料實時同步到mysql

1.安裝安裝mysqlconnector


2.配置mysqlconnector

ODBC資料管理器->系統DSN->新增->mysql ODBC 5.3 ANSI driver->填入data source name如jt,mysql的ip、使用者名稱、密碼即可


3.新建連結伺服器


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 伺服器連結

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


----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 [email protected] where [email protected]
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 [email protected]
END
go


---delete資料測試

use suzhou
go
delete from sz where orderno='a001'
go

相關推薦

實戰:sqlserver 資料實時同步mysql

1.安裝安裝mysqlconnector 2.配置mysqlconnector ODBC資料管理器->系統DSN->新增->mysql ODBC 5.3 ANSI driver->填入data source name如jt,mysql的ip、使用者

多臺SQLServer資料實時同步

SyncNavigator是一款專門用於SqlServer、Mysql資料同步的軟體,由國內頂級開發團隊開發完成,經歷8年逐步完善,目前具備強大的資料同步功能,國內很多大型連鎖超市,企業,公司都在用SyncNavigator資料同步軟體進行著資料同步服務。 它可以為我們提供

canal實戰(一):canal連線kafka實現實時同步mysql資料

前面已經介紹過了canal-kafka的應用。canal-kafka是把kafka作為客戶端,嵌入到canal中,並且在canal基礎上對原始碼進行了修改,以達到特定的實現canal到kafka的傳送。 canal-kafka是阿里雲最近更新的一個新的

mysql資料實時同步到Elasticsearch

業務需要把mysql的資料實時同步到ES,實現低延遲的檢索到ES中的資料或者進行其它資料分析處理。本文給出以同步mysql binlog的方式實時同步資料到ES的思路, 實踐並驗證該方式的可行性,以供參考。 mysql binlog日誌 mysql的binlog日誌主要用於資料庫的主從複製與

Mysql 資料實時同步hbase

一、前言 要實時同步資料,首先要能實時的監控到資料庫資料的變化,可以使用canal、Maxwell 等工具完成。我選用canal,因為它更靈活,更合格我的專案需求。 二、通過canal監控資料庫資料變化 三、專案整體架構 四、主要程式碼 import com

SODBASE實時資料基礎(一):實時同步Mysql資料庫到Kafka

在實際大資料工作中,常常有實時監測資料庫變化或實時同步資料到大資料儲存,解決大資料實時分析的需求。同時,增量同步資料庫資料相比全量查詢也減少了網路頻寬消耗。本文以Mysql的bin-log到Kafka為例,使用Canal Server,通過SODBASE引擎不用寫程式就可以

如何使用Maxwell和flume,kafka 把MySQL資料實時同步到HDFs?

Maxwell介紹Maxwell是一個守護程式,一個應用程式,能夠讀取MySQL Binlogs然後解析輸出為json。支援資料輸出到Kafka中,支援表和庫過濾。配置MySQL->Maxwell->Kafka->Flume->HDFS1)MySQL配

20170705L07-09-03老男孩Linux運維實戰培訓-Sersync實時同步軟件實戰應用指南06

sersync這一節接說的是如何給sersync做性能壓力測試主要是讓人知道怎麽做壓力測試報告壓力報告第一條1寫明硬件環境,全用的操作系統2使用的sersync軟件的版本3壓力測試的大體訪求4測試的數據20170705L07-09-03老男孩Linux運維實戰培訓-Sersync實時同步軟件實戰應用指南06

20170710L07-09-03老男孩Linux運維實戰培訓-Sersync實時同步軟件實戰應用指南07

sersync接上一節的sersync壓力測試這一節主要是對著上一節的壓力測試文本做真實的壓力測試測試出到底sersync的壓力極限是多少從每秒10個到100個# tree |wc -l #查看寫了多少文件# uptime #查看負載下面是測試腳本#!/bin/shcount=100while truedo

20170710L07-09-03老男孩Linux運維實戰培訓-Sersync實時同步軟件實戰應用指南08

sersync還是說的sersync的壓力測試for n in ‘seq 100‘ ; do mkdir -p test/$n:done #創建100目錄還是壓力測試的實際測試。這次好像加入了一個腳本去記錄同步的延時20170710L07-09-03老男孩Linux運維實戰培訓-Sersync實

使用maxwell實時同步mysql數據到kafka

serve sql_mod port nload mysqld targe 消費 reset entos 一、軟件環境: 操作系統:CentOS release 6.5 (Final) java版本: jdk1.8 zookeeper版本: zookeeper-3.4.1

使用maxwell實時同步mysql資料到kafka

一、軟體環境: 作業系統:CentOS release 6.5 (Final) java版本: jdk1.8 zookeeper版本: zookeeper-3.4.11 kafka 版本: kafka_2.11-1.1.0.tgz maxwell版本:maxwell-1.16.0.tar.gz 注意 :

rsync+inotify實現資料實時同步

主伺服器192.168.222.4 CentOS7 從伺服器192.168.222.5 CentOS6 實時同步/home/data1目錄到從伺服器 從伺服器192.168.222.5操作 # yum -y install rsync* 建立rsyncd.conf檔案 vim /et

使用Logstash來實時同步MySQL和log日誌資料到ES

少年,光看是不行的,我的github在這裡,跟著做吧:https://github.com/singgel/NoSql-SkillTree         logstash是一個數據分析軟體,主要目的是分析log日誌。整一套軟體可以當作一個MVC模型,

使用Logstash來實時同步MySQL資料到ES

本篇我們來實戰從MYSQL裡直接同步資料 一、首先下載和你的ES對應的logstash版本,本篇我們使用的都是6.1.1        下載後使用logstash-plugin install logstash-input-jdbc 命令安裝jdbc的

Bmob 開發 Android程式快速入門 8 資料實時同步

                     Bmob 開發 Android程式快速入門 8 資料實時同步   資料實時同步 資料實時同步是一個超酷的功能!  

資料實時同步或抽取上收的技術分析

1           實現資料集中的技術手段分析比較根據業界提供資料同步或抽取的解決方案來看,主要包括以下幾大類:l         儲存複製技術l         資料庫複製技術l         ETL抽取技術1.1         儲存複製技術實現原理儲存複製技術主要

Linux下Rsync+sersync實現資料實時同步

本教程實現的是Linux伺服器之間自動同步檔案或目錄的功能,網上有很多這方面的教程,大體有兩種途徑 (1)Rsync+inotify-tools (2)Rsync+sersync 本教程採用第二種實現.下面先簡單介紹幾個專案中用到的軟體或概念. R

centos7 Rsync+sersync實現資料實時同步

一、為什麼要用rsync+sersync架構? 1、sersync是基於inotify開發的,類似於inotify-tools的工具 2、sersync可以記錄下被監聽目錄中發生變化的(包括增加、刪除、修改)具體某一個檔案或者某一個目錄的名字,然後使用rsync同步的時候

兩個資料庫表資料實時同步(sql2008 觸發器)

/****** Object:  Trigger [dbo].[TR_C0T14]    Script Date: 11/01/2011 13:21:04 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -