Most of my work involves collaborating with engineers and product managers to improve the performance, security, and manageability of workloads that are running on Red Hat Enterprise Linux (RHEL). The vast majority of those I encounter in my work are built on databases that are used to store the structured data associated with those workloads.
Software architects will often explore the next generation of operating platforms in advance of their release since it can help them to understand how new technology may benefit the various application workloads in their organizations. Looking at commercial databases on a beta version of a major release of a platform like RHEL can be tricky because the software provider may still be working on changes required to fully support their software on the new platform. Because of this, customers are sometimes unable to test a key application until the vendor has completed their certification process which can be months after a major new operating system platform becomes available.
Microsoft SQL Server 2017 has been available for production workloads on RHEL 7 since October 2 of 2017. For RHEL 8 Beta, we’ve worked closely with Microsoft to accelerate performance and provide a wider range of programming languages and application frameworks that can provide powerful choices as you look to build your next application.
One of the best ways to understand the impact of these changes is to try them out, but RHEL 8 is still beta software, and SQL Server 2017 is not supported on it for production use. If you’d like to try out SQL Server on RHEL 8 Beta, this post will help you get it running, but you should not use it in a production environment until Red Hat Enterprise Linux 8 becomes generally available and Microsoft provides their officially supported RHEL 8 package.
One of the core goals for Red Hat Enterprise Linux is to provide a stable, consistent runtime environment for third-party applications. To support this, Red Hat preserves application compatibility for specific APIs and kernel interfaces. When we move to a new major release, there are typically some deliberate differences in package names, new versions of libraries and new utilities that may cause complications for existing applications that target a prior release. Software vendors can create binaries on Red Hat Enterprise Linux 7 if they follow Red Hat guidelines that will run on Red Hat Enterprise Linux 8, but the packaging is a different matter. Software packaged for Red Hat Enterprise Linux 7 will not be supported on Red Hat Enterprise Linux 8.
SQL Server 2017 on Red Hat Enterprise Linux 7 makes use of python2 and OpenSSL 1.0. These steps should give you an environment which is compatible with those two components which have moved to more recent versions on RHEL 8 Beta. Their inclusion by Red Hat was a deliberate step to preserve backward compatibility.
sudo yum install python2 sudo yum install compat-openssl10
We now need to deal with the defaults for python on the system. As explained by Langdon White last November, Red Hat Enterprise Linux 8 can support both python2 and python3 binaries simultaneously, but by default, there is no /usr/bin/python
command. We need to make python2 the default interpreter so that SQL Server 2017 can see /usr/bin/python
as it expects. We do this with:
sudo alternatives --config python
The command prompts me to select a Python version and will create a symlink that persists across upgrades.
There are 3 programs which provide python
'
Selection Command ----------------------------------------------- * 1 /usr/libexec/no-python + 2 /usr/bin/python2 3 /usr/bin/python3 Enter to keep the current selection[+], or type selection number:
Select option 2 and it will create a symlink from /usr/bin/python2
to /usr/bin/python
.
We can now configure the system to use the Microsoft SQL Server 2017 software repository via the curl
command:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo
At this point, we’re ready to download the SQL Server 2017 installation using the new download feature of yum. We do this so that we can install it without trying to resolve dependencies:
sudo yum download mssql-server
And install it without resolving dependencies using rpm
:
sudo rpm -Uvh --nodeps mssql-server*rpm
At this point you can proceed with a normal SQL Server installation as described in the Microsoft’s Quickstart: Install SQL Server and create a database on Red Hat starting with step 3:
Once installed, you can verify the installed version of SQL Server by running the command:
# yum list --installed | grep mssql-server
Containers Can Be Easier!
With the upcoming SQL Server 2019 this can get easier, because that version is planned to be available for RHEL as a container. SQL Server 2019 is already in Beta. To try it out on RHEL 8 Beta takes three steps:
First, we create a persistent storage directory where we can keep our SQL data. For this example, I’ll just use a /var/mssql
directory.
sudo mkdir /var/mssql sudo chmod 755 /var/mssql
Now we the SQL 2019 Beta container down from the Microsoft Container Repository with:
sudo podman pull mcr.microsoft.com/mssql/rhel/server:2019-CTP2.2
Finally, we configure SQL. In this case, we’ll set the SA account password for a database named sql1 running on ports 1401 through 1433.
sudo podman run -e 'ACCEPT_EULA=Y' -e \ 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' \ --name 'sql1' -p 1401:1433 -v /var/mssql:/var/opt/mssql:Z -d \ mcr.microsoft.com/mssql/rhel/server:2019-CTP2.2
To learn more about podman and containers in Red Hat Enterprise Linux 8 Beta see the documentation here.
Either Way Works!
Using the steps in this post can try out RHEL 8 Beta and SQL Server 2017 with the traditional OS install or the container-based one. Either way, you should now have a working SQL Server instance. From here, you can move on to creating database content and exploring the tools available in RHEL 8 Beta to create an application stack, automate setup and improve performance.
Be sure to join me along with Microsoft’s Bob Ward, Principal Architect for the Microsoft Database Systems Group, for our talk, “Deploy a modern data platform with SQL Server 2019 on Red Hat Enterprise Linux 8 Beta” at Red Hat Summit 2019.
執筆者紹介
Louis Imershein is a Product Manager at Red Hat focussed on Microsoft SQL Server and database workloads. He is responsible for working with Microsoft and Red Hat engineering to ensure that SQL Server performance, management, and security is optimized for Red Hat platforms. For more than 30 years, Louis has worked in technical support, engineering, software architecture, and product management on a wide range of OS, management, security, and storage software projects. Louis joined Red Hat as part of the acquisition of Permabit Technology Corporation, where he was VP of Product.
チャンネル別に見る
自動化
テクノロジー、チームおよび環境に関する IT 自動化の最新情報
AI (人工知能)
お客様が AI ワークロードをどこでも自由に実行することを可能にするプラットフォームについてのアップデート
オープン・ハイブリッドクラウド
ハイブリッドクラウドで柔軟に未来を築く方法をご確認ください。
セキュリティ
環境やテクノロジー全体に及ぶリスクを軽減する方法に関する最新情報
エッジコンピューティング
エッジでの運用を単純化するプラットフォームのアップデート
インフラストラクチャ
世界有数のエンタープライズ向け Linux プラットフォームの最新情報
アプリケーション
アプリケーションの最も困難な課題に対する Red Hat ソリューションの詳細
オリジナル番組
エンタープライズ向けテクノロジーのメーカーやリーダーによるストーリー
製品
ツール
試用、購入、販売
コミュニケーション
Red Hat について
エンタープライズ・オープンソース・ソリューションのプロバイダーとして世界をリードする Red Hat は、Linux、クラウド、コンテナ、Kubernetes などのテクノロジーを提供しています。Red Hat は強化されたソリューションを提供し、コアデータセンターからネットワークエッジまで、企業が複数のプラットフォームおよび環境間で容易に運用できるようにしています。
言語を選択してください
Red Hat legal and privacy links
- Red Hat について
- 採用情報
- イベント
- 各国のオフィス
- Red Hat へのお問い合わせ
- Red Hat ブログ
- ダイバーシティ、エクイティ、およびインクルージョン
- Cool Stuff Store
- Red Hat Summit