当前位置: 澳门新濠3559 > 数据库 > 正文

内部版本16299.19),是时候跨界在Linux上安装我的

时间:2019-10-12 05:04来源:数据库
原文链接 http://www.sqlpassion.at/archive/2016/11/28/first-steps-with-sql-server-on-linux/    据说大神们已经可以在wsl上运行图形化的Linux程序了,这点我没有测试过,有兴趣的小伙伴可以自行折腾。

原文链接

http://www.sqlpassion.at/archive/2016/11/28/first-steps-with-sql-server-on-linux/

    据说大神们已经可以在wsl上运行图形化的Linux程序了,这点我没有测试过,有兴趣的小伙伴可以自行折腾。

小结

近几个的星期技术真是突飞猛进啊:首先我们在SQL Server的标准版里有了开发版的所有功能,现在我们有了可以在Linux上直接运行的基于Windows的SQL Server。加入SQL Server社区很享受,我们感受到近些年的革新。我们的明天会更精彩!

对于微软SQL Server未来发展方向你有啥想法?欢迎留言!

感谢关注!

澳门新濠3559 1

开始折腾Linux上的SQL Server

为了在Linux上运行SQL Server,你需要安装一个Linux发行版。微软当前支持Ubuntu 16.04,和RHEL 7.2(红帽子企业版Linux)。在这里我决定简单安装一个Ubuntu虚拟机,然后在它上面安装SQL Server。微软在线帮助会告诉你如何在Linux上安装SQL Server的详细步骤,SQL Server和你就是几个命令的距离:

sudo curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list
sudo apt-get update
sudo apt-get install -y mssql-server
sudo /opt/mssql/bin/sqlservr-setup

一旦你在Linux上安装了SQL Server,你可以用sytemctl命令验证下SQL Server是否在运行。

systemctl status mssql-server

另外你也可以安装Linux上的SQL Server客户端工具,内部版本16299.19),是时候跨界在Linux上安装我的第一个SQL安装。它会在Linux上给你sqlcmd命令执行——很赞!

SQL Server安装完成后,你可以在Windows下的SSMS来连接运行在Linux上的SQL Server。你只需要提供Ubuntu虚拟机的IP地址和正确密码的sa账号。很简单——它就是一个SQL Server实例(和Windows一样)——运行在别的地方——这里是运行在Linux上!连接成功后,现在我们来运行著名的

SELECT @@VERSION:

澳门新濠3559 2

没错,我们运行在Linux上!还有更精彩的!你可以在Linux上运行常规的基于Windows版SQL Server的备份和还原,也是没有问题。首先你要拷贝一个SQL Server数据库备份到你的Ubuntu虚拟机。默认情况下Ubuntu没有安装SMB,你可以用它来配置用于文件交换的文件共享。首先我们在Ubuntu上通过安装SMB功能来修正:

sudo apt-get install samba
smbpasswd -a klaus

安装好SMB,你可以通过添加下列目录到/etc/samba/smb.conf文件来配置远程文件共享:

[Documents]
path = /home/klaus/Documents
available = yes
valid users = klaus
read only = no
browsable = yes
public = yes
writable = yes

在这里我共享/home/klaus/Documents作为共享文件夹。然后你需要重启SMB服务来让远程文件共享可用,从你的Windows系统。

sudo service smbd restart

最后复制你的SQL Server数据库备份到你的Ubuntu虚拟机。当你在你的Ubuntu虚拟机上有了你的数据库备份,最后你可以复制它到/var/opt/mssql/data文件夹,这样的话,SQL Server就可以访问它:

sudo cp AdventureWorks2014.bak /var/opt/mssql/data/AdventureWorks2014.bak

现在当你在SSMS界面里定位到数据库还原,你可以看到SQL Server可以看到你的备份。

澳门新濠3559 3

然后通过提供备份文件进行常规的RESORE DATABASE命令:

-- Restore AdventureWorks2014 on Linux
RESTORE DATABASE [AdventureWorks2014] FROM DISK = N'C:varoptmssqldataAdventureWorks2014.bak' WITH FILE = 1,
MOVE N'AdventureWorks2014_Data' TO N'C:varoptmssqldataAdventureWorks2014_Data.mdf',  
MOVE N'AdventureWorks2014_Log' TO N'C:varoptmssqldataAdventureWorks2014_Log.ldf', STATS = 1
GO

说实话,真的是厉害了,我的哥!!!

澳门新濠3559 4

你还期待Linux上的SQL Server会有什么呢?我刚说过——几乎一起!我已经测试了前沿技术——例如内存优化表,列存储索引,并行执行计划,等待统计等等。——统统支持!!!

这些功能都支持是正常的,因为常规基于Windows的SQL Server——只是在寄宿在Linux进程里运行,剥掉Windows系统的SQL Server。

澳门新濠3559 5

架构

在我们谈论Linux上的SQL Server的细节之前,我想花几分钟时间谈下微软如何实现在Linux上运行SQL Server。当微软首次公开声称它们在Linux上运行SQL Server的安装,每个人都会认为SQL Server只是移植到Linux。SQL Server已经通过SQLOS抽象了一些底层操作系统的功能,因此这会有用,但意味着微软需要维护不同的代码库(一个Windows,一个Linux)。我们都同意这是不可行的。

为了解决这个问题,现在微软在Linux上运行基于Windows的未修改代码。微软做了如下举动:

style="font-family: Microsoft YaHei;">”我们在SQLPAL上嵌入Linux进程运行经典的Windows版的SQL Server,即从Drawbridge(吊桥)演变。”——Slava Oks:

style="font-family: Microsoft YaHei;">澳门新濠3559 6

SQLPAL是“SQL Server Platform Abstraction Layer(SQL Server平台抽象层)”。Drawbridge本身是微软研究院在2011年9月建立的项目,目的提供新形式虚拟化的应用程序沙盒。目前还没有在Linux上,SQL Server整个架构如何运行的公开信息,因此这里不能讲解得很清楚。但最重要,要记住的事:在Linux上,SQL Server不是一个端口,它是和基于Windows的SQL Server一样。

因此,你几乎可以在Linux上的SQL Server上做和Windows上的SQL Server的任何事情。它是可行的,没有任何副作用。当然还不是所有的一切都可以在Linux上的SQL Server做。当前还不支持SQL Server代理,而且还没有像HA/DR(高可用性/故障恢复)的Always ON可用性组。但我假定,微软会在Linux上为我们提供在这方面提供新的功能和特性。在基于Window上和基于Linux上间创建可用性复制,会是多么惊艳的事!

WSL团队的blog:

我们知道,几个星期前,微软发布了在Linux上直接运行的SQL Server第一个公开CTP版本!因此,对我来说,是时候跨界在Linux上安装我的第一个SQL安装,这样的话,我就可以在Linux上折腾SQL Server。在这篇文章里,我想给你概括讲下在Linux上,SQL Server的起步是怎样的。

 Git

为什么在Linux上运行SQL Server

从技术角度来说,微软这里这里有了很大的突破。没有人会想到在Steve Ballmer(微软首席执行官)领导下发生这些。微软已经做出了180°的转弯——非常棒!但在Linux上运行SQL Server的商业原因是什么?我们来看下:

  • 没有系统授权费用(Linux是免费的)
  • 对于Linux,微软提供了一个“成熟”的关系数据库技术(当然还有像MySQL的其他可用数据库,但是……)
  • ……

坦白讲:在Linux上运行SQL Server,这整个想法都有点疯狂,但你进一步想下,越发觉得这有意义——对于一些场景。我们都同意,对于大家,在Linux上的SQL Server不会是主要的开发模式。但对一些特殊场景会有意义。

     作为一个java web developer,常用的大概就是ssh,git,jdk,tomcat,nginx等等。我们一一来测试一下。

澳门新濠3559 7

    WSL,Windows Subsystem for Linux,就是之前的Bash on [Ubuntu on] Windows(嗯,微软改名部KPI ),在wsl环境下我们可以运行一些Linux程序。

澳门新濠3559 8

issue tracker:

SSH

    安装完成之后我们就可以进行折腾了,有人可能会好奇那如何使用windows上的文件呢?其实windows的目录全部挂载在/mnt这个目录下,我们可以在/mnt/c目录下看到c盘的各种文件。好了,先运行一下screenfetch来看看。

   git的各种命令也很正常。

    最后,我认为wsl对windows平台的开发者绝对是重大利好,一方面,一部分linux上好用的工具也可以在windows平台上使用了,另一方面,在windows上开发好的程序可以直接部署到wsl上测试,这样就能保证开发环境和生产环境尽可能的相似。好了,Enjoy it!

release notes:

澳门新濠3559 9

澳门新濠3559 10

澳门新濠3559 11

    我们可以看到ssh远程连接可以正常使用,所以嘛putty或者xshell这种东西可以卸载了(逃

    那如果我们把wsl里面的环境折腾乱掉怎么办?得益于Windows商店的好处,我们只要卸载并重新在商店下载即可。

    接下来,我们正式介绍并安装wsl。

(btw,贴几个wsl的相关资料,感兴趣的小伙伴自行阅读研究。

JDK

澳门新濠3559 12

澳门新濠3559 13

    另外,gcc和clang经过测试也可以使用,这里就不再展示了。    

    我们启动tomcat,然后在Edge浏览器里面访问,便可以看到tomcat的默认首页,是不是很神奇?当然nginx也是没有问题的。

    在beta的时候我们需要在powershell里面输入bash才能下载wsl,而且没有国内下载节点,不支持断点续传,所以一旦网络不稳定就废了。在1709版本的Windows10中,我们可以去商店搜索Ubuntu来下载,现在不但有Ubuntu,还有SUSE和openSUSE。(在Windows商店里下载Ubuntu是不是感觉很诡异w(゚Д゚)w

澳门新濠3559 14

    接下来测试jdk,我们来编译一小段代码试试看,可以看到jdk也没什么问题。

澳门新濠3559 15

Tomcat&Nginx

Windows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,目标是使纯正的Ubuntu 14.04 "Trusty Tahr"映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。[[1]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-1)[[2]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-2)[[3]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-3)

style="font-family: Microsoft YaHei">WSL提供了一个微软开发的Linux兼容内核接口(不包含Linux代码),来自Ubuntu澳门新濠3559,的用户模式二进制文件在其上运行。[[4]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-4)

style="font-family: Microsoft YaHei">该子系统不能运行所有Linux软件,例如那些图形用户界面,以及那些需要未实现的Linux内核服务的软件。[[5]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-Ars-March-5)不过,这可以用在外部X服务器上运行的图形X Window系统缓解。[[6]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-6)

style="font-family: Microsoft YaHei">此子系统起源于命运多舛的Astoria项目,其目的是允许Android应用运行在Windows 10 Mobile上。[[5]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-Ars-March-5)此功能组件从Windows 10 Insider Preview build 14316开始可用。[[7]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-7)

style="font-family: Microsoft YaHei; font-size: 15px">——维基百科

    首先要说一句,其实Windows 10在一周年更新(1607,内部版本14393)的时候就加入了wsl,但是直到刚刚更新的秋季创意者更新(1709,内部版本16299),wsl才正式脱离beta,逐渐趋于稳定,所以我选择这个时候再写这篇文章。以下内容都是基于秋季创意者更新(1709,内部版本16299.19)。

    首先打开设置,进入应用,选择程序和功能,点击启用或关闭Windows功能,勾选适用于Linux的Windows子系统,接下来重启。

编辑:数据库 本文来源:内部版本16299.19),是时候跨界在Linux上安装我的

关键词: 澳门新濠3559