溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何將SQLServer2008的數據復制到MySQL數據庫

發(fā)布時間:2021-09-18 11:00:34 來源:億速云 閱讀:207 作者:chen 欄目:數據庫

這篇文章主要講解了“如何將SQLServer2008的數據復制到MySQL數據庫”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何將SQLServer2008的數據復制到MySQL數據庫”吧!

  首先,需要正常配置分發(fā)和發(fā)布數據庫,這里我們就不再過多的介紹了。

  然后,就可以開始新建一個發(fā)布用于復制到MySQL了,可創(chuàng)建一個表用于測試。

  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

  --添加事務發(fā)布

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

  創(chuàng)建后,可以通過復制監(jiān)視器觀察復制的情況。也可以通過之前提到的LinkServer的方式從SQLServer中觀察MySQL數據庫的變化。

  SQLServer2008的數據復制到MySQL注意什么

  1、建立發(fā)布時@replicate_ddl=0,否則會有如下報錯:

  消息21678,級別16,狀態(tài)1,過程sp_MSrepl_addpublication,第1110行

  僅當"@replicate_ddl"設置為"0"時,才能將參數"@enabled_for_het_sub"設置為"true"。

  也就是說對于異構數據庫,DDL操作是沒法復制的,這點后期維護比較費事。

  2、此前建立的DSN,為代碼中@subscriber_datasrc=N'MySQLTest'的位置。

  3、以上一些參數并不代表必須這樣設置,供參考。

  4、由于環(huán)境限制,測試的時候發(fā)布庫與分發(fā)庫在同一臺服務器的同實例下,因此DSN只建立了一次,我猜測在分發(fā)服務器建立應該就可以了,以后有環(huán)境再做測試。

感謝各位的閱讀,以上就是“如何將SQLServer2008的數據復制到MySQL數據庫”的內容了,經過本文的學習后,相信大家對如何將SQLServer2008的數據復制到MySQL數據庫這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI