前边提到了,在用DMS迁移数据库的时候,会要求数据库的基本架构(表结构等)和原来是一致的,如果数据库比较多的话,那就很麻烦了,而且像view, 存储过程这些也没办法用DMS迁移。


    所以如果是这样的话,其实DMS并不是很方便,不过其实这是有原因的,因为微软对于数据库迁移其实并不止DMS这一种方式,DMS在中国落地的时间还没有半年,但是另外一个工具DMA其实几年前就可以GA了,DMA是个很方便的工具,他有个很重要的功能就是可以做评估,比如之前迁移SQL Server到Azure SQL的时候就可以拿DMA来做迁移的评估,同时他也可以做数据库的迁移,我们可以在用DMS迁移数据之前,先用DMA迁移数据库的schema,这样整个迁移过程会平滑的多!


    首先,需要先下载DMA工具,DMA不像DMS,他不是一个SaaS的平台,而是一个在本地安装的工具,可以下载到本地进行安装,只要能在网络上访问源和目标的数据库即可


    https://www.microsoft.com/en-us/download/details.aspx?id=53595


    安装过程不赘述,直接看怎么使用,下边就是DMA的界面使用DMA迁移数据库schema_第1张图片


我们可以直接创建一个project,创建的时候会看到可以选assessment,还是migration,我们先拿assessment来试下,可以看到源这里直接就可以选AWS RDS

使用DMA迁移数据库schema_第2张图片


DMA会检测数据库的兼容性,因为Azure SQL是个较为轻量级的数据库,一些功能是不支持的,而且本身不同数据库版本之间也会存在兼容性问题,所以要先评估是否有类似的情况

使用DMA迁移数据库schema_第3张图片


这里连接到源之后会读取源库的信息

使用DMA迁移数据库schema_第4张图片


评估的时间要看源库的数量和大小而定,这里数据量很小,所以评估过程很快,我们还可以把报表打出来进行筛选

使用DMA迁移数据库schema_第5张图片



下边就来看怎么用DMA迁移数据库的schema,在迁移的时候源库没有AWS RDS的选项,不过我们可以选SQL Server, 迁移的范围直接选schema就好,数据迁移我们可以用DMS,DMA本身不支持增量迁移,但是DMS可以,所以这两个其实可以结合使用

使用DMA迁移数据库schema_第6张图片


这里选择源库和目标库

使用DMA迁移数据库schema_第7张图片


这里可以看到,读取源库信息之后,view,procedure这些都会生成对应的脚本,之后这些脚本会到目标库上去执行

使用DMA迁移数据库schema_第8张图片


deploy schema之后,就可以看到结果了

使用DMA迁移数据库schema_第9张图片


到目标库之后,已经可以看到这些内容了,表的主键这些也都和源库是一样的

使用DMA迁移数据库schema_第10张图片


之后再用DMS迁移的时候就不会再提示什么表不存在,主键不存在之类的了

使用DMA迁移数据库schema_第11张图片