国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

這篇具有很好參考價值的文章主要介紹了記一次MySQL數(shù)據(jù)遷移到SQLServer全過程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

為什么要做遷移?

由于系統(tǒng)版本、數(shù)據(jù)庫的升級,導(dǎo)致測試流程阻塞,為了保證數(shù)據(jù)及系統(tǒng)版本的一致性,我又迫切需要想用這套環(huán)境做性能測試,所以和領(lǐng)導(dǎo)、開發(fā)請示,得到批準(zhǔn)后,便有了這次學(xué)習(xí)的機會,所以特此來記錄下整個過程。

使用方案:

借助工具與編碼相結(jié)合形式,備份MySQL數(shù)據(jù)庫,并把備份數(shù)據(jù)庫還原到本地MySQL數(shù)據(jù)庫,使用第三方工具完成數(shù)據(jù)遷移,代碼實現(xiàn)SQL條數(shù)統(tǒng)計按照庫名和表名回寫結(jié)果,使用ultracompare實現(xiàn)比對。

使用工具:

第一種遷移工具

Microsoft SQL Server Migration Assistant for MySQL:推薦這款工具,微軟出的,但是也會有些問題,如部分表數(shù)據(jù)不能完全遷移

第二種遷移工具

Navicat Premium 12:不推薦,速度慢,極容易失敗

第三種遷移工具

Tapdata:這款也不錯,第三方工具,但不穩(wěn)定,總內(nèi)存溢出,底層Java寫的,需要與客服溝通解決使用中問題,客服響應(yīng)速度不是很理想

比對工具

ultracompare:比對結(jié)果使用

工具使用

第一種遷移工具使用

Microsoft SQL Server Migration Assistant for MySQL,這款工具是微軟出的,真的很好用,而且速度也算比較快。

https://www.microsoft.com/en-us/download/details.aspx?id=54257,下載安裝.

下面來介紹如何使用這款工具,具體步驟如下:

第一步:創(chuàng)建一個遷移工程

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

需要注意的是你需要選擇遷移到的SQL Server數(shù)據(jù)庫的版本,目前支持:SQL Azure,SQL Server 2005,SQL Server2008,SQL Server 2012,SQL Server2014,根據(jù)實際需要選擇你要遷移到目標(biāo)數(shù)據(jù)庫的版本。

第二步:連接源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

上面的是源:MySQL,下面的是目標(biāo):SQL Server

第三步:選擇需要遷移的數(shù)據(jù)庫創(chuàng)建遷移分析報告

此報告會分析當(dāng)前需要遷移的數(shù)據(jù)庫中的所有表結(jié)構(gòu)并會生成一個可行性報告

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

生成的報告如下:

分析需要轉(zhuǎn)換的對象,表,數(shù)據(jù)庫有多少個,是否存在不可轉(zhuǎn)換的對象等信息,如有檢查錯誤會下下面輸出

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

第四步: 轉(zhuǎn)換schema 也就是數(shù)據(jù)庫結(jié)構(gòu)

遷移分兩步:1.轉(zhuǎn)換數(shù)據(jù)庫結(jié)構(gòu),2.遷移數(shù)據(jù);

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

第五步:在源數(shù)據(jù)庫轉(zhuǎn)換完schema之后記得在目標(biāo)數(shù)據(jù)庫上執(zhí)行同步schema操作

否則轉(zhuǎn)換的數(shù)據(jù)庫結(jié)構(gòu)是不會到目標(biāo)數(shù)據(jù)庫的

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

點擊同步之后同樣會有一個同步的報告:

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

點擊OK之后就真正執(zhí)行同步操作會將你轉(zhuǎn)換完的結(jié)構(gòu)同步到目標(biāo)數(shù)據(jù)庫上,創(chuàng)建對應(yīng)的表及其他對象。同步操作完成之后會有如下輸出:

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

第六步:結(jié)構(gòu)同步完成之后接下來就是數(shù)據(jù)遷移操作了

我們可以看到右邊有幾個tab頁,當(dāng)前選中的是Type Map,會列出源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的字段類型的mapping關(guān)系

因為不同數(shù)據(jù)庫之間的數(shù)據(jù)類型還是有所差異的。

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

點擊Migrate Data之后需要再次確認(rèn)輸入源數(shù)據(jù)庫密碼和目標(biāo)數(shù)據(jù)庫密碼,然后開始真正的數(shù)據(jù)的遷移。

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

執(zhí)行之后就等待完成就好,同樣會生成一個數(shù)據(jù)遷移完成的報告。至此數(shù)據(jù)遷移就可以完成了。

第二種遷移工具使用

Navicat Premium 12這款工具操作更簡單,因為很多步驟可以圖形化,相對簡便。

具體操作步驟如下:

建立MySQL、SqlServer連接,

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

雙擊MySQL的連接,建立連接

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

然后選擇navicat 的左上角工具

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

數(shù)據(jù)將自動導(dǎo)入

**注意:**該工具將不會同步約束,比如:默認(rèn)值之類的。但是非空約束是可以傳遞到SqlServer

第三種遷移工具

Tapdata,這個工具是永久免費的,也算比較好用,具體使用方法如下:

第一步:配置MySQL 連接

1、點擊 Tapdata Cloud 操作后臺左側(cè)菜單欄的【連接管理】,然后點擊右側(cè)區(qū)域【連接列表】右上角的【創(chuàng)建連接】按鈕,打開連接類型選擇頁面,然后選擇MySQL

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

2、在打開的連接信息配置頁面依次輸入需要的配置信息

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

【連 接 名 稱】:設(shè)置連接的名稱,多個連接的名稱不能重復(fù)

【數(shù)據(jù)庫地址】:數(shù)據(jù)庫 IP / Host

【端 口】:數(shù)據(jù)庫端口

【數(shù)據(jù)庫名稱】:tapdata 數(shù)據(jù)庫連接是以一個 db 為一個數(shù)據(jù)源。這里的 db 是指一個數(shù)據(jù)庫實例中的 database,而不是一個 mysql 實例。

【賬 號】:可以訪問數(shù)據(jù)庫的賬號

【密 碼】:數(shù)據(jù)庫賬號對應(yīng)的密碼

【時 間 時 區(qū)】:默認(rèn)使用該數(shù)據(jù)庫的時區(qū);若指定時區(qū),則使用指定后的時區(qū)設(shè)置

第二步:配置 SQL Server 連接

3、同第一步操作,點擊左側(cè)菜單欄的【連接管理】,然后點擊右側(cè)區(qū)域【連接列表】右上角的【創(chuàng)建連接】按鈕,打開連接類型選擇頁面,然后選擇 SQL Server

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

4、在打開的連接信息配置頁面依次輸入需要的配置信息,配置完成后測試連接保存即可。

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

第三步:選擇同步模式-全量/增量/全+增

進(jìn)入Tapdata Cloud 操作后臺任務(wù)管理頁面,點擊添加任務(wù)按鈕進(jìn)入任務(wù)設(shè)置流程

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

根據(jù)剛才建好的連接,選定源端與目標(biāo)端。

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

根據(jù)數(shù)據(jù)需求,選擇需要同步的庫、表,如果你對表名有修改需要,可以通過頁面中的表名批量修改功能對目標(biāo)端的表名進(jìn)行批量設(shè)置。

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

在以上選項設(shè)置完畢后,下一步選擇同步類型,平臺提供全量同步、增量同步、全量+增量同步,設(shè)定寫入模式和讀取數(shù)量。

如果選擇的是全量+增量同步,在全量任務(wù)執(zhí)行完畢后,Tapdata Agent 會自動進(jìn)入增量同步狀態(tài)。在該狀態(tài)中,Tapdata Agent 會持續(xù)監(jiān)聽源端的數(shù)據(jù)變化(包括:寫入、更新、刪除),并實時的將這些數(shù)據(jù)變化寫入目標(biāo)端。

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

點擊任務(wù)名稱可以打開任務(wù)詳情頁面,可以查看任務(wù)詳細(xì)信息。

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

點擊任務(wù)監(jiān)控可以打開任務(wù)執(zhí)行詳情頁面,可以查看任務(wù)進(jìn)度/里程碑等的具體信息。

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

第四步:進(jìn)行數(shù)據(jù)校驗

一般同步完成后,我都習(xí)慣性進(jìn)行一下數(shù)據(jù)校驗,防止踩坑。

Tapdata 有三種校驗?zāi)J?,我常用最快的快?code>count校驗 ,只需要選擇到要校驗的表,不用設(shè)置其他復(fù)雜的參數(shù)和條件,簡單方便。

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

如果覺得不夠用,也可以選擇表全字段值校驗 ,這個除了要選擇待校驗表外,還需要針對每一個表設(shè)置索引字段。

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

在進(jìn)行表全字段值校驗時,還支持進(jìn)行高級校驗。通過高級校驗可以添加JS校驗邏輯,可以對源和目標(biāo)的數(shù)據(jù)進(jìn)行校驗。

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

還有一個校驗方式關(guān)聯(lián)字段值校驗 ,創(chuàng)建關(guān)聯(lián)字段值校驗時,除了要選擇待校驗表外,還需要針對每一個表設(shè)置索引字段。

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

以上就是 MySQL數(shù)據(jù)實時同步到 SQL Server 的操作分享。

使用到的SQL技術(shù)

MySQL部分

查詢某個庫的所有表名稱

select table_name from information_schema.tables where table_schema='數(shù)據(jù)庫名';

查詢某個數(shù)據(jù)庫中所有的表名 列名 字段長度

SELECT TABLE_NAME as '表名', COLUMN_NAME as '列名',COLUMN_COMMENT,DATA_TYPE as '字段類型' ,COLUMN_TYPE as '長度加類型' FROM information_schema.`COLUMNS` where TABLE_SCHEMA='數(shù)據(jù)庫名' order by  TABLE_NAME,COLUMN_NAME

sqlserver部分

SQLserver 查詢當(dāng)前庫 所有表名

SELECT Name FROM SysObjects Where XType='U' ORDER BY Name;

查詢數(shù)據(jù)庫中重復(fù)數(shù)據(jù)按照ID查詢

SELECT id FROM 數(shù)據(jù)庫名 where id<>'' GROUP BY id HAVING COUNT(*)>1

刪除一個表中各字段完全相同情況,只留一條數(shù)據(jù)

-- delete  top(1) from 數(shù)據(jù)庫名 where id =id值

刪除日志

USE [master]
GO
ALTER DATABASE 數(shù)據(jù)庫名 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE 數(shù)據(jù)庫名 SET RECOVERY SIMPLE   --簡單模式
GO
USE 數(shù)據(jù)庫名
GO
DBCC SHRINKFILE (N'數(shù)據(jù)庫名_log' , 2, TRUNCATEONLY)  --設(shè)置壓縮后的日志大小為2M,可以自行指定
GO
USE [master]
GO
ALTER DATABASE 數(shù)據(jù)庫名 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE 數(shù)據(jù)庫名 SET RECOVERY FULL  --還原為完全模式
GO

修改表字段

alter table 數(shù)據(jù)庫名 alter column 字段名	字段類型(長度)

解決sqlserver問題:超時時間已到。在操作完成之前超時時間已過或服務(wù)器未響應(yīng)。

1、點開菜單欄:工具 - > 選項

2、設(shè)置腳本執(zhí)行超時時間(根據(jù)自己需求,0為不限制)

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

3、設(shè)置鏈接字符串更新時間(根據(jù)自己需求,范圍為1-65535)

記一次MySQL數(shù)據(jù)遷移到SQLServer全過程

Navicat Premium 16 無限試用

@echo off

echo Delete HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Registration[version and language]
for /f %%i in ('"REG QUERY "HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium" /s | findstr /L Registration"') do (
    reg delete %%i /va /f
)
echo.

echo Delete Info folder under HKEY_CURRENT_USER\Software\Classes\CLSID
for /f %%i in ('"REG QUERY "HKEY_CURRENT_USER\Software\Classes\CLSID" /s | findstr /E Info"') do (
    reg delete %%i /va /f
)
echo.

echo Finish

pause

遷移數(shù)據(jù)成功后遇到的問題

  1. 部分表數(shù)據(jù)會重復(fù),多次嘗試遷移引起,需要手動刪除重復(fù)數(shù)據(jù),極小概率出現(xiàn),一般出現(xiàn)在數(shù)據(jù)量大的表;
  2. 部分表字段類型會改變,遷移工具會自動轉(zhuǎn)換成SqlServer支持字段類型,并會影響部分應(yīng)用服務(wù),使其不能正常啟動,需要開發(fā)同事定位并修改成正確類型;
  3. 部分表會出現(xiàn)沒有主鍵和索引的現(xiàn)象,需要自行手動添加;
  4. 表字段類型及索引、主鍵修改,如果逐表修改的話,工作量會很大。

寫在最后

整個遷移過程,共耗時近兩周,比我想象中的要難得多,遇到的問題也是真的很棘手,不得不說,當(dāng)數(shù)據(jù)量很大時,確實會給數(shù)據(jù)的操作帶來巨大挑戰(zhàn)。文章來源地址http://www.zghlxwxcb.cn/news/detail-503428.html

到了這里,關(guān)于記一次MySQL數(shù)據(jù)遷移到SQLServer全過程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Mysql遷移到kingbase(人大金倉)全過程方案(java)

    Mysql遷移到kingbase(人大金倉)全過程方案(java)

    按項目國產(chǎn)化需求,需要將MySQL數(shù)據(jù)庫遷移成kingbase數(shù)據(jù)庫,后端服務(wù)是java 現(xiàn)先用本地創(chuàng)建kingbase-win版服務(wù)器進(jìn)行流程、代碼測試 目錄 前言: 流程: 一.從官網(wǎng)下載文件 1.下載安裝包 ?2.下載需要的授權(quán)文件 ?3.下載數(shù)據(jù)庫連接驅(qū)動文件?編輯 ?二.安裝 ??編輯 三.數(shù)據(jù)庫遷

    2024年02月04日
    瀏覽(25)
  • Mysql遷移到kingbase全過程調(diào)整方案解決(人大金倉)(java)

    Mysql遷移到kingbase全過程調(diào)整方案解決(人大金倉)(java)

    按項目國產(chǎn)化需求,需要將MySQL數(shù)據(jù)庫遷移成kingbase數(shù)據(jù)庫,后端服務(wù)是java 現(xiàn)先用本地創(chuàng)建kingbase-win版服務(wù)器進(jìn)行流程、代碼測試 目錄 前言: 流程: 一.從官網(wǎng)下載文件 1.下載安裝包 ?2.下載需要的授權(quán)文件 ?3.下載數(shù)據(jù)庫連接驅(qū)動文件?編輯 ?二.安裝 ??編輯 三.數(shù)據(jù)庫遷

    2024年02月16日
    瀏覽(23)
  • yum 安裝mysql8數(shù)據(jù)全過程

    mysql8安裝方式:(使用官方y(tǒng)um倉庫) 1. wget https://dev.mysql.com/get/mysql80-community-release-el7-4.noarch.rpm ? ?安裝? ?? ?yum install mysql80-community-release-el7-4.noarch.rpm 2、生成yum源緩存 每次當(dāng)我們編寫了,都需要生成yum緩存,以免安裝錯誤。 ?yum makecache ? 3、檢查安裝的yum源是否存在 ??

    2024年02月16日
    瀏覽(21)
  • 記一次Hbase2.1.x歷史數(shù)據(jù)數(shù)據(jù)遷移方案
  • 記錄一次開機內(nèi)存分析的全過程

    記錄一次開機內(nèi)存分析的全過程

    作者:zzy的學(xué)習(xí)筆記 記錄一次開機內(nèi)存分析的全過程,盡量詳盡的介紹常用內(nèi)存分析工具和命令行的使用,結(jié)合具體問題探討開機內(nèi)存分析的實踐經(jīng)驗。通過這篇文章我會介紹開機內(nèi)存的常用測試分析工具的基本使用方法,以及如何通過抓取出來的內(nèi)存數(shù)據(jù)得出下一步的分析

    2024年02月07日
    瀏覽(25)
  • MySQL8.0數(shù)據(jù)庫超詳細(xì)安裝教程全過程

    MySQL8.0數(shù)據(jù)庫超詳細(xì)安裝教程全過程

    1、官網(wǎng)下載MySQL8.0地址:MySQL :: Download MySQL Installer (Archived Versions) 2、 雙擊安裝包進(jìn)行安裝 3、自定義安裝 4、選擇MySQL Server8.0 ? 5、創(chuàng)建MYSQL數(shù)據(jù)存儲目錄及安裝目錄 6、配置安裝路徑及數(shù)據(jù)存儲目錄 7、確認(rèn)繼續(xù) 8、選擇MySQL,下一步 9、開始安裝 10、第一次安裝需要C++的依賴

    2024年02月08日
    瀏覽(38)
  • Unity連接數(shù)據(jù)庫mysql全過程+可能遇到的問題與解決方案

    Unity連接數(shù)據(jù)庫mysql全過程+可能遇到的問題與解決方案

    目錄 一、具備條件 二、unity連接mysql 三、問題總結(jié) 1. Mysql安裝完成 ????????安裝完成后需要查看mysql的版本,打開終端(管理者身份運行),輸入以下語句登錄mysql,查看MySQL版本; 可以看到我下載的版本是 5.7.38; 2. MySQL Connector/NET下載 目的:為了搭建unity連接mysql的環(huán)境

    2024年02月03日
    瀏覽(23)
  • 手術(shù)麻醉信息系統(tǒng)源碼 php + mysql + vue2,覆蓋患者就診全過程,體征數(shù)據(jù)自動采集繪制

    手術(shù)麻醉信息系統(tǒng)源碼 php + mysql + vue2,覆蓋患者就診全過程,體征數(shù)據(jù)自動采集繪制

    手術(shù)麻醉信息系統(tǒng)源碼 php?+?mysql?+?vue2??B/S網(wǎng)頁版 麻醉信息系統(tǒng)是HIS產(chǎn)品的中的一個組成部分,主要應(yīng)用于醫(yī)院的麻醉科,屬于電子病歷類產(chǎn)品。醫(yī)院麻醉監(jiān)護(hù)的功能覆蓋整個手術(shù)與麻醉的全過程,包括手術(shù)申請與排班、審批、安排、術(shù)前、術(shù)中和術(shù)后。 技術(shù)架構(gòu):mysq

    2024年02月03日
    瀏覽(31)
  • 微信小程序保存相冊授權(quán)全過程:第一次授權(quán)、已授權(quán)、拒絕后再授權(quán)

    微信小程序保存相冊授權(quán)全過程:第一次授權(quán)、已授權(quán)、拒絕后再授權(quán)

    微信小程序部分功能需要使用授權(quán)(也就是需要用戶顯式同意,系統(tǒng)會阻止開發(fā)者任何靜默獲取授權(quán)行為),以存儲相冊為例,用戶需要獲得\\\"scope.writePhotosAlbum\\\"權(quán)限 微信系統(tǒng)接口wx.getSetting可以獲取已經(jīng)獲得的權(quán)限列表 在實際開發(fā)時,我們有時候并不會去特意處理權(quán)限,直接

    2024年02月09日
    瀏覽(21)
  • 研一小白記錄第一次在實驗室服務(wù)器上跑深度學(xué)習(xí)的代碼全過程(實驗室服務(wù)器上跑代碼詳細(xì)全過程哦)

    研一小白記錄第一次在實驗室服務(wù)器上跑深度學(xué)習(xí)的代碼全過程(實驗室服務(wù)器上跑代碼詳細(xì)全過程哦)

    你在服務(wù)器上跑過代碼嗎?哇~你跑過!是啥樣的...每回見別人跑都會問并且羨慕會在大服務(wù)器上跑代碼的哈哈哈在研究生剛開學(xué)前還甚至不知道什么是服務(wù)器,更是無法想象在除了自己能看得見摸得著的電腦屏幕之外跑代碼的樣子。直到有天開會自己坐在了一個大大的“黑箱

    2024年02月02日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包