阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

从Windows迁移SQL Server数据库到Linux

101次阅读
没有评论

共计 1977 个字符,预计需要花费 5 分钟才能阅读完成。

问题引出

老鸟看过菜鸟的这篇《MSSQL On Linux 备份与还原》文章后,很满意,但是还是忍不住发问:“这篇文章讲的是 MSSQL 在 Linux 系统上的备份与还原,如果我之前是 Windows 系统的用户,怎么把我的数据库如丝般顺滑地迁移到 MSSQL On Linux 呢?”。
“嗯,老鸟,这个问题问的非常好,毕竟 Windows 的 License 费用不低,如果能够使用免费的 Linux 系统,的确会节约一大笔开销啊。”,于是菜鸟开始马不停蹄的研究如何将 Windows 上的数据库迁移到 Linux 系统中。
随着菜鸟的深入研究,决定选择使用备份还原的方式来试试从 Windows 迁移 SQL Server 数据库到 Linux。

Windows 上备份数据库

使用 SSMS 在源头 Windows 上的数据库执行下面语句,做一个 AdventureWorks2008R2 数据库的全备。

--execute on source database
USE master
GO
EXEC sys.xp_create_subdir 'C:\Temp\'
GO

--Generate at Dec 10 2016 10:34AM on server CHERISH-PC
RAISERROR ('%d/%d database backup %s to %s ',10,1 ,1,1,'CHERISH-PC.AdventureWorks2008R2','C:\Temp\') WITH NOWAIT
BACKUP DATABASE [AdventureWorks2008R2] 
TO DISK = 'C:\Temp\AdventureWorks2008R2_full_20161210.bak' 
WITH STATS = 2 , compression;

检查 Windows 上全备文件
从 Windows 迁移 SQL Server 数据库到 Linux

上传备份文件到 Linux

在 Windows 上完成全备以后,接下来我们需要将备份文件上传到 Linux 系统,菜鸟用的是 MobaXterm 这个工具自带的上传功能。
从 Windows 迁移 SQL Server 数据库到 Linux

Linux 上检查上传的文件

# ls -l /var/opt/mssql/data/ | grep AdventureWorks2008R2_full_20161210.bak
-rw-r--r--. 1 root  root  46030848 Dec 10 00:17 AdventureWorks2008R2_full_20161210.bak

Linux 上还原数据库
文件已经上传到 Linux 系统并检查没有问题以后,接下来就是在 Linux 上还原数据库了。
使用 SSMS 连接到 Linux 版本的 SQLServer,执行下面的语句还原数据库到 MSSQL ON Linux

--execute on destination database
USE master
GO
EXEC sys.xp_create_subdir 'C:\var\opt\mssql\data\AdventureWorks2008R2\SQL'
EXEC sys.xp_create_subdir 'C:\var\opt\mssql\data\AdventureWorks2008R2\LOG'
GO

USE master
GO
RESTORE DATABASE [AdventureWorks2008R2]
FROM DISK = N'C:\var\opt\mssql\data\AdventureWorks2008R2_full_20161210.bak'
WITH MOVE N'AdventureWorks2008R2_Data' 
        TO N'C:\var\opt\mssql\data\AdventureWorks2008R2\SQL\AdventureWorks2008R2_Data.mdf'
    ,MOVE N'AdventureWorks2008R2_Log' 
        TO N'C:\var\opt\mssql\data\AdventureWorks2008R2\LOG\AdventureWorks2008R2_log.LDF'
    ,STATS=2
GO

检查 Linux 中数据库文件结构
从 Windows 迁移 SQL Server 数据库到 Linux

Linux 中执行简单的查询
从 Windows 迁移 SQL Server 数据库到 Linux

SSMS 中 GUI 查看
从 Windows 迁移 SQL Server 数据库到 Linux

写在最后

从测试结果来看,MSSQL ON Linux 完全兼容从 Windows 数据库的备份的文件,并且版本还做到了向下兼容,这点非常好,完全做到了如丝般顺滑过度到 MSSQL On Linux。细心的你一定注意到了,菜鸟是从 MSSQL 2008R2 的数据库备份还原到 Linux 上的。

Ubuntu 16.04 下安装 SQL Server for Linux http://www.linuxidc.com/Linux/2016-11/137328.htm

MSSQL On Linux 备份与还原  http://www.linuxidc.com/Linux/2016-12/138262.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/138261.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1977字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中