如丝般顺滑地从Windows迁移SQLServer数据库到Linux

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: # 问题引出 老鸟看过菜鸟的上一篇《MSSQL On Linux备份与还原》文章后,很满意,但是还是忍不住发问:“这篇文章讲的是MSSQL在Linux系统上的备份与还原,如果我之前是Windows系统的用户,怎么把我的数据库如丝般顺滑地迁移到MSSQL On Linux呢?”。 “嗯,老鸟,这个问题问的非常好,毕竟Windows的License费用不低,如果能够使用免费的Linux系统

问题引出

老鸟看过菜鸟的上一篇《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上全备文件
01.png

上传备份文件到Linux

在Windows上完成全备以后,接下来我们需要将备份文件上传到Linux系统,菜鸟用的是MobaXterm这个工具自带的上传功能。
02.png

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中数据库文件结构
03.png

Linux中执行简单的查询
04.png

SSMS中GUI查看
05.png

写在最后

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

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
1月前
|
Linux Shell Windows
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
|
1月前
|
安全 Linux Shell
全面对比linux和windows,选择哪个系统比较好
全面对比linux和windows,选择哪个系统比较好
68 0
|
10天前
|
SQL 监控 安全
Linux&Windows 日志分析 陇剑杯 CTF
Linux&Windows 日志分析 陇剑杯 CTF
|
14天前
|
Linux Windows
Windows、Mac、Linux解决端口被占用的问题
Windows、Mac、Linux解决端口被占用的问题
21 1
|
16天前
|
负载均衡 Java 关系型数据库
linux 下amoeba实现数据库的负载均衡
linux 下amoeba实现数据库的负载均衡
13 1
|
21天前
|
安全 Ubuntu Linux
Linux远程访问Windows实现步骤
在Windows上启用远程桌面连接并获取IP地址后,Linux用户需安装SSH客户端( Debian系:`sudo apt-get update; sudo apt-get install openssh-client`,RPM系:`sudo yum install openssh-clients`)。然后使用命令`ssh 用户名@Windows_IP地址`连接,其中`用户名`和`Windows_IP地址`按实际情况填写。
15 4
|
1月前
|
Shell Linux 数据库
【Shell 命令集合 网络通讯 】Linux 更新邮件别名数据库 newaliases命令 使用指南
【Shell 命令集合 网络通讯 】Linux 更新邮件别名数据库 newaliases命令 使用指南
29 1
|
1月前
|
监控 Shell Linux
【Shell 命令集合 磁盘管理 】Linux 检查和创建磁盘配额数据库 quotacheck命令使用教程
【Shell 命令集合 磁盘管理 】Linux 检查和创建磁盘配额数据库 quotacheck命令使用教程
31 0
|
1月前
|
存储 Shell Linux
【Shell 命令集合 文件管理】Linux 更新locate命令所使用的数据库 updatedb命令解析
【Shell 命令集合 文件管理】Linux 更新locate命令所使用的数据库 updatedb命令解析
155 0
|
1月前
|
Linux 数据安全/隐私保护 Docker
linux和windows中安装emqx消息服务器
linux和windows中安装emqx消息服务器
39 0