• 记一次 mysql迁徙数据到SqlServer


    因 mysql数据库快过期,公司不再续租 所以要迁移数据到SqlServer上

    表大概就几个 数据量不大 20w左右  所有表都设有自增主键

    记一下笔记方便以后参考

    1.  测试环境生成Sqlserver表

    因用的ef core 所以直接在测试环境把表在sqlserver生成下

    大概用到的东西是 dotnet ef migrations  及 dotnet ef database update  下面是当时的配置 记下作参考

    //DHX.ComEvent.WebApi 根目录下执行
    //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驱动

    步骤: 安装mysql驱动 参考链接: https://blog.csdn.net/song_jiang_long/article/details/52688989

    安装好驱动后 后再sqlserver的服务器对象 - 链接服务器 - 有你新加的链接  注意驱动名要修改,上文用的版本较低 我的数据库是mysql8.0 所以下载的是8.0驱动

    EXEC master.dbo.sp_addlinkedserver
    @server = N'MYSQL',
    @srvproduct=N'MySQL',
    @provider=N'MSDASQL',
    @provstr=N'DRIVER={MySQL ODBC 8.0 ANSI 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

  • 相关阅读:
    POJ 1077 Eight(单向搜索)
    HDU 1943 Ball bearings(简单数学问题)
    POJ 2632 Crashing Robots(水模拟)
    HDU 1047 Integer Inquiry(高精度加法)
    POJ 1068 Parencodings(模拟)
    [转]修改 ibatis 分页机制(ORACLE物理分页)
    实现判断机器大小端的两种方法
    linux环境下库的制作和升级
    fork函数的理解1
    如何求一个文件的行数?
  • 原文地址:https://www.cnblogs.com/xtxtx/p/11983544.html
Copyright © 2020-2023  润新知