記一次 mysql遷徙資料到SqlServer

2022-02-11 22:09:08 字數 1845 閱讀 3600

因 mysql資料庫快過期,公司不再續租 所以要遷移資料到sqlserver上

表大概就幾個 資料量不大 20w左右  所有表都設有自增主鍵

記一下筆記方便以後參考

1.  測試環境生成sqlserver表

因用的ef core 所以直接在測試環境把表在sqlserver生成下

大概用到的東西是 dotnet ef migrations  及 dotnet ef database update  下面是當時的配置 記下作參考

根目錄下執行

//dotnet ef migrations add initialmodel -c eventcontext -p ../dhx.comevent.infrastructure/dhx.comevent.infrastructure.csproj -s dhx.comevent.csproj

//dotnet ef database update -c eventcontext -p ../dhx.comevent.infrastructure/dhx.comevent.infrastructure.csproj -s dhx.comevent.csproj

2.  表結構拷貝到正式環境

可以用下面命令生成指令碼到正式sqlserver執行 需在 web根目錄下執行(就是有program.cs的目錄)

dotnet ef migrations script  -c eventcontext

把生成的指令碼在正式上執行建立表結構

3. 為 mysql安裝odbc驅動

exec master.dbo.sp_addlinkedserver

@server = n'mysql',

@srvproduct=n'mysql',

@provider=n'msdasql',

@provstr=n'driver=; server=192.168.123.76; _database=dhx_event; user=root; password=123456; option=3'

4. 遷徙

mysql的表都是自增主鍵,在其他表都有用id做關聯(無外來鍵) ,所以遷徙時候id要和之前一致  

下面是乙個表的示例   set identity_insert event_categories on 可以讓資料庫在設有自增主鍵時候插入主鍵 用完要設定為off 另外所有的字段都要寫 如果是使用sql server management的話, 可以省得乙個個寫欄位名  選中表 - 右鍵  -編寫指令碼為 - select到新視窗

set identity_insert event_categories on 

insert into event_categories([id]

,[create_date]

,[create_person]

,[update_date]

,[update_person]

,[name]

,[order]

,[imgurl]) select [id]

,[create_date]

,[create_person]

,[update_date]

,[update_person]

,[name]

,[order]

,[imgurl] from openquery(mysql, 'select * from dhx_event.event_categories');

set identity_insert event_categories off

記一次資料遷移 mongo到mysql

工作中有時會遇到資料庫遷移的問題,如果是使用相同資料庫的話,遷移方法比較簡單,例如mysql資料庫的遷移 1 備份資料,使用mysqldump命令 mysqldump u username p password database backup.sql2 還原資料 mysql u username p...

mysql安裝一次 記一次mysql安裝

mysql 分為安裝版和壓縮版 2.安裝 2.1 解壓得到 mysql 8.0.15 winx64 資料夾 2.2 在mysql 8.0.15 winx64 資料夾下,新建配置檔案my.ini,內容 如下 mysqld 設定3306埠 port 3306 設定mysql的安裝目錄,這裡是唯一你需要改...

記一次mysql宕機

e warning pdo prepare mysql server has gone away pdo prepare mysql server has gone awayilluminate database queryexception sqlstate hy000 2002 connecti...