您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何將SQLServer2008的數據復制到MySQL數據庫”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何將SQLServer2008的數據復制到MySQL數據庫”吧!
首先,需要正常配置分發和發布數據庫,這里我們就不再過多的介紹了。
然后,就可以開始新建一個發布用于復制到MySQL了,可創建一個表用于測試。
CREATETABLE[dbo].[MySQL_Repl_Test]([ID][int]IDENTITY(1,1)NOTNULL,[TestNAME][varchar](400)NULL,[CreateDate][datetime]NULL,CONSTRAINT[PK_MySQL_Repl_Test]PRIMARYKEYCLUSTERED([ID]ASC)ALTERTABLE[dbo].[MySQL_Repl_Test]ADDCONSTRAINT[DF_MySQL_Repl_Test_CreateDate]DEFAULT(getdate())FOR[CreateDate]GO
--添加事務發布
EXECsp_addpublication@publication=N'Test',@description=N'Transactionalpublicationofdatabase',@sync_method=N'concurrent_c',@retention=0,@allow_push=N'true',@allow_pull=N'false',@allow_anonymous=N'false',@enabled_for_internet=N'false',@snapshot_in_defaultfolder=N'true',@compress_snapshot=N'false',@ftp_port=0,@allow_subscription_copy=N'false',@add_to_active_directory=N'false',@repl_freq=N'continuous',@status=N'active',@independent_agent=N'true',@immediate_sync=N'true',@allow_sync_tran=N'false',@autogen_sync_procs=N'false',@allow_queued_tran=N'false',@allow_dts=N'false',@replicate_ddl=0,@allow_initialize_from_backup=N'false',@enabled_for_p2p=N'false',@enabled_for_het_sub=N'true'GOEXECsp_addpublication_snapshot@publication=N'Test',@frequency_type=1,@frequency_interval=0,@frequency_relative_interval=0,@frequency_recurrence_factor=0,@frequency_subday=0,@frequency_subday_interval=0,@active_start_time_of_day=0,@active_end_time_of_day=235959,@active_start_date=0,@active_end_date=0,@job_login=NULL,@job_password=NULL,@publisher_security_mode=1
--添加事務項目
EXECsp_addarticle@publication=N'Test',@article=N'MySQL_Repl_Test',@source_owner=N'dbo',@source_object=N'MySQL_Repl_Test',@type=N'logbased',@description=N'',@creation_script=N'',@pre_creation_cmd=N'drop',@schema_option=0x0000000000004071,@identityrangemanagementoption=N'none',@destination_table=N'MySQL_Repl_Test',@status=8,@vertical_partition=N'false',@ins_cmd=N'SQL',@del_cmd=N'SQL',@upd_cmd=N'SQL'GO
--添加事務訂閱
EXECsp_addsubscription@publication=N'Test',@subscriber=N'MYSQL',@destination_db=N'tt',@subscription_type=N'Push',@sync_type=N'automatic',@article=N'all',@update_mode=N'readonly',@subscriber_type=3EXECsp_addpushsubscription_agent@publication=N'Test',@subscriber=N'MYSQL',@subscriber_db=N'tt',@job_login=NULL,@job_password=NULL,@subscriber_security_mode=0,@subscriber_login=N'root',@subscriber_password=NULL,@subscriber_provider=N'MSDASQL',@subscriber_datasrc=N'MySQLTest',@frequency_type=64,@frequency_interval=1,@frequency_relative_interval=1,@frequency_recurrence_factor=0,@frequency_subday=4,@frequency_subday_interval=5,@active_start_time_of_day=0,@active_end_time_of_day=235959,@active_start_date=0,@active_end_date=0,@dts_package_location=N'Distributor'GO
創建后,可以通過復制監視器觀察復制的情況。也可以通過之前提到的LinkServer的方式從SQLServer中觀察MySQL數據庫的變化。
SQLServer2008的數據復制到MySQL注意什么
1、建立發布時@replicate_ddl=0,否則會有如下報錯:
消息21678,級別16,狀態1,過程sp_MSrepl_addpublication,第1110行
僅當"@replicate_ddl"設置為"0"時,才能將參數"@enabled_for_het_sub"設置為"true"。
也就是說對于異構數據庫,DDL操作是沒法復制的,這點后期維護比較費事。
2、此前建立的DSN,為代碼中@subscriber_datasrc=N'MySQLTest'的位置。
3、以上一些參數并不代表必須這樣設置,供參考。
4、由于環境限制,測試的時候發布庫與分發庫在同一臺服務器的同實例下,因此DSN只建立了一次,我猜測在分發服務器建立應該就可以了,以后有環境再做測試。
感謝各位的閱讀,以上就是“如何將SQLServer2008的數據復制到MySQL數據庫”的內容了,經過本文的學習后,相信大家對如何將SQLServer2008的數據復制到MySQL數據庫這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。