如丝般顺滑地从Windows迁移SQLServer数据库到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上全备文件

上传备份文件到Linux

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

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

Linux中执行简单的查询

SSMS中GUI查看

写在最后

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

时间: 2024-12-08 08:07:06

如丝般顺滑地从Windows迁移SQLServer数据库到Linux的相关文章

如丝般顺滑的2017阿里双11黑科技曝光

2017双11全球狂欢节,阿里再创奇迹,成交金额1682亿,交易峰值32.5万/秒,支付峰值25.6万/秒,数据库处理峰值4200万次/秒. 双11前夕,阿里巴巴集团CTO行癫就给阿里两万多位工程师下了一个很新鲜的KPI--"双11晚上,大家的主要任务是喝茶." 能如此淡定喝茶的背后,除了无数阿里技术小二的才智与努力,还有很多阿里的黑科技支撑着这样世界超级工程.现在我们跟着阿里云云效一起来揭秘下有哪些基础设施黑科技? 蜻蜓--世界领先的大规模文件分发系统 黑科技指数: 解决痛点:大规模

在Windows 8 PC上安装Linux的四种方法

微软RTM版本的Windows 8相信已经有很多人试用过了,如果在Windows 8 PC上安装Linux很困难,那我们该怎么办呢?下面提供四种方法. 在UEFI上启动Linux 首先,需要在UEFI上启动Linux.因为除了Mac,很少有PC使用UEFI替换BIOS,所以大家都不怎么关心从UEFI启动Linux. 现在,很多想在Mac上运行Linux的人使用兼容支持模块CSM,提供Mac上BIOS的仿真.这种方式很麻烦,运行得不好,在Secure Boot Windows 8 PC上可能会更糟

有关jsp在windows下的配置及连接SQLServer数据库的详解

js|server|sqlserver|window|数据|数据库|详解 最近在学习jsp,有关jsp的运行环境的配置问题着实让我费了不少功夫,环境配置好了,连接SQL Sever 2000数据库时又出了不少问题,鉴于此我把自己配置这两方面的详细步骤给大家共享一下,希望刚刚接触jsp的并立志在jsp方面有所成就的同仁少走一些弯路,让我共同进步.有希望与我交流的请加我qq:26544472(在验证信息中请注明jsp交流) (一)有关jsp在windows下的配置: Sun推出的JSP(Java S

Windows搭建ngrok服务器、Linux搭建ngrok服务器、支持用户管理

                           Windows搭建ngrok服务器.Linux搭建ngrok服务器.支持用户管理 阿里云双11领代金券啦 https://m.aliyun.com/act/activity2017h5?userCode=vc31fdqr&utm_source=vc31fdqr           微信公众号.支付宝支付等开发要求有公网(外网)服务器.每次调试时,上传代码到服务器很不方便.ngrok很好的解决了这一问题.网上的文章大多是讲实通过阿里怎么在Lin

通过Windows Azure SQL数据库防火墙规则控制数据库访问

今天的文章来自于我们用户体验团队的技术作家Kumar Vivek.这篇文章对Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure SQL数据库中新推出的数据库级防火墙规则进行了简要概括. Windows Azure SQL数据库防火墙能够阻止他人对你SQL数据库的访问,以助你保护数据.你能够指定防火墙规则,如限定允许访问的IP地址范围,来控制对数据库的访问.然而,这些规则定义在服务器层级,允许被授权的终端访问你的

Windows Azure SQL数据库的那些优势

Windows Azure是微软公司的云基础架构平台,如今,云计算已经普遍运用到各个方面,因此它也成为了微软公司整体战略的一个主要部分,并且作为Windows Azure SQL 数据库(前身叫做SQL Azure),Windows Azure的发展出了不少力. 微软公司对Azure是起于厚望的,尤其是对Windows Azure SQL数据库(为简单起见,下文将简称SQL Azure),它出现的意义不只是在云服务中提供数据库支持,更是为了创建支持PB级"大数据"乃至一切规模数据量的基

exception-myeclipse导出Runnable,在windows下可执行,linux下报错

问题描述 myeclipse导出Runnable,在windows下可执行,linux下报错 mmap failed for CEN and END part of zip file Exception in thread "main" java.util.zip.ZipException: error in opening zip file at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(Z

通过 WSL在Windows下愉快的玩耍Linux

本文同步至https://waylau.com/enable-windows-subsystem-for-linux/ WSL(Windows Subsystem for Linux) 是 在Windows系统中为那些熟悉Linux用户准备的诸多子系统功能.换言之,你可以在Windows环境下来执行Linux操作,运行 Linux程序.这对于Windows.Linux双系统有需求的用户来说是个不错的功能.本文详细介绍了如何使用 WSL. WSL 简介 Bash 是 Linux/Unix 上非常流

通过WSL,你可以在Windows下愉快的玩耍Linux

WSL(Windows Subsystem for Linux) 是 在Windows系统中为那些熟悉Linux用户准备的诸多子系统功能.换言之,你可以在Windows环境下来执行Linux操作,运行 Linux程序.这对于Windows.Linux双系统有需求的用户来说是个不错的功能.本文详细介绍了如何使用 WSL. WSL 简介 Bash 是 Linux/Unix 上非常流行的命令行 Shell,它是 Ubuntu.RHEL 等 Linux 发行版以及苹果 OS X 操作系统默认的命令行 S