戦闘:MySQLへのSQLServerデータのリアルタイム同期

1.インストールmysqlconnector


2. [設定mysqlconnector

ODBCデータマネージャ - >システムDSN->追加 - > MySQLのODBC 5.3 ANSI driver-> JTデータ・ソース名として満たされ、IPのMySQL、ユーザー名、パスワード


3.新しいリンクサーバー


sp_addlinkedserverをExecの 
 @ =サーバー'JT'、--ODBC名ソースデータ
 の@ srvproduct = 'MySQLの'、 -彼らのカジュアル
 @プロバイダ= 'MSDASQL'、 -固定
 @ = NULL DATASRCを、
 @ = NULL LOCATION、
 @provstr = '= {DRIVER ANSI 5.3 MySQLのODBCドライバ}; SERVER = 192.168.5.188; DATABASE =蘇州; PORT = 3306; UIDがルート='、   
@catalog = NULL


sp_addlinkedsrvloginがEXEC 
  @ rmtsrvname = 'JT'、
  @ useself = '偽'、
  @ rmtuser = 'ルート'、
  @ rmtpassword = 'パスワード';
  
  
  OPENQUERY(JT、 'SZ SELECT * FROM;')SELECT * FROM
  GO
  
 

  
使用は、[マスター]
GO
@ optvalue = N'TRUEは、 ' ' @ OPTNAME = N'rpcうち' EXEC master.dbo.sp_serveroptionの@サーバー= N'jt
GO
EXEC master.dbo.sp_serveroptionの@サーバー= N'jt'を、 @ OPTNAME = N'remote procの取引プロモーション'@ optvalue = N'false'
GO
  
 


--- 4.sqlserverと新しいMySQLデータベースとテーブル

 

データベース蘇州を作成します。

テーブルSZを作成します(
ID int型nullではないアイデンティティ(1,1)、主キー、
あるOrderNo CHAR(20)NOT NULL、
ordertimeのdatetime NOT NULLデフォルトGETDATE()、
備考VARCHAR(200)
) 
行きます

表SZ(登録
IDのINT(11)nullでない、
あるOrderNo CHAR(20)NOT NULL、
ordertime日時(6)nullでない、
発言のvarchar(200)、
主キー(ID)
エンジン= InnoDBのデフォルトのcharset = UTF8と、

 

--- 5ループを作成します。
 -確立リンクループバック・サーバ

EXEC sp_addlinkedserverを@server = N'loopback '@srvproduct = N' '@Provider = N'SQLNCLI'、
@datasrc = @@ SERVERNAME
行きます


-リモートプロシージャコールとローカル業務は、配信サービスに昇格するので(フォーカス)SQL Serverを停止、サーバーのリンクオプションを設定し
、USE [マスター]
GO
EXEC master.dbo.sp_serveroptionの@サーバー= N'loopback」、@ OPTNAME = N'rpc OUT '@ = optvalue N'true'
GO
EXECのmaster.dbo.sp_serveroption = N'loopbackサーバー@ '@ = N'remote OPTNAME取引推進PROC'、@ = optvalue N'false「
GO


---- 6.書き込みトリガーとストアドプロシージャ

---- 6.1挿入

-重写触发器
蘇州を使用
行く
suzhou.dbo.szにトリガtr_insert_szを変える
挿入するための
ように
宣言@Id int型、@orderno CHAR(20)、ordertime日時@、発言VARCHAR(200)@
ID = ID @選択し、@あるOrderNo =あるOrderNo、@ ordertime = ordertime、発言=発言@から挿入。
開始
@Id印刷を
@orderno印刷する
印刷@ordertimeの
@remark印刷
発言の@ execのloopback.suzhou.dbo.sp_insertする@ ID、@あるOrderNo、@ ordertime、
最後
に行きます

 

 

-存储过程の
利用蘇州は
行く
PROCEDUREのsp_insert(作成
@id int型、 
@orderno CHAR(20)、
@ordertime日時、
@remarkのVARCHAR(200)

AS
BEGIN
SET NOCOUNT ONを。
OPENQUERY挿入した値(ID、あるOrderNo、ordertime、発言)(JTを、 '* SZから選択')(ID @、@あるOrderNo、@ ordertime、発言@)
ENDが
行きます


---- 6.2アップデート

-重写触发器
蘇州使用
行く
suzhou.dbo.szにトリガtr_update_szを作成する
更新用
として
備考VARCHAR(200)@、@orderno CHAR(20)を宣言
挿入から@あるOrderNo =あるOrderNo、@発言=発言を選択します。
始める
発言の@、EXEC loopback.suzhou.dbo.sp_updateする@あるOrderNoを
終了
行きます

 

 

-存储过程
使用蘇州
行く
PROCEDUREのsp_update(作成
@orderno CHAR(20)、
@remarkのVARCHAR(200)

AS
BEGIN
SET NOCOUNT ONを。
更新OPENQUERY( 'SZから選択*' JT、)設定  の発言= @発言あるOrderNo = @ ORDERNO
END
行きます

 


---更新試験データ

蘇州は使用
行く
あるOrderNo =「A001は、」=「ocpyang」発言を設定SZアップデート
行くを


---- 6.3削除

-重写触发器
利用蘇州
行く
suzhou.dbo.szにトリガtr_delete_szを作成
、削除用
として
@orderno文字を宣言(20)
@あるOrderNo =あるOrderNo削除からを選択します。
開始
@orderno幹部loopback.suzhou.dbo.sp_deleteを
最後
に行きます

 

 

-存储过程
使用蘇州
行く
PROCEDUREのsp_delete作成(
@ordernoチャー(20)

AS
BEGIN
SET NOCOUNT ONを。
どこOPENQUERY(JT、 'SZから選択*')を削除  あるOrderNo = @ ORDERNO
END
行きます

 


---データのテストを削除

蘇州使用し
て行く
あるOrderNo =「A001」のどこSZから削除
行きます

おすすめ

転載: www.cnblogs.com/SyncNavigator8-4-1/p/10975070.html