0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Add AdventureWorks to SQL Server 2019 RC1 (RHEL) on Docker

Last updated at Posted at 2019-08-28

はじめに

2019/08/21 に SQL Server 2019 RC1 が発表されました。

このRCはRelease Candidate(製品候補版)ということで、大きな問題などがなければ9月か10月にはGA(General Availability)されるだろうと思います。

今回は、GAに向けて、Docker環境のSQL Server 2019 (RHEL)にAdventureWorksDBを入れ、デモとして利用できる環境を作成します。

環境

今回は、以下の環境でインストールを実施しています。

- OS: Windows 10 Pro Version 1903 (OS Build 18362.295)
- Docker Desktop: 2.1.0.1 (37199)
- Docker Engine: 19.03.1
- Docker Compose: 1.24.1

※OSは、macOS Mojave 10.14.6でも確認済みです。

インストール

インストールは、CTP3.2の時と同様です。

imageの個所をCTP3.2からRC1に変更することでSQL Server 2019 RC1を起動できます。
docker-compose up -d でSQL Serverを起動してください。

docker-compose.yaml
version: '3'

services:
  mssql:
    image: mcr.microsoft.com/mssql/rhel/server:2019-RC1
    container_name: 'mssql2019-rc1-rhel'
    environment:
      - MSSQL_SA_PASSWORD=<your_strong_password>
      - ACCEPT_EULA=Y
      # - MSSQL_PID=<your_product_id> # default: Developer
      # - MSSQL_PID=Express
      # - MSSQL_PID=Standard
      # - MSSQL_PID=Enterprise
      # - MSSQL_PID=EnterpriseCore
    ports:
      - 1433:1433
    volumes: # Mounting a volume does not work on Docker for Mac
      - ./mssql/log:/var/opt/mssql/log
      - ./mssql/data:/var/opt/mssql/data

AdventureWorksのダウンロード

MS Docs、もしくは GitHubより、AdventureWorks2017.bak をダウンロードしてください。

AdventureWorksの配置

AdventureWorksの配置(Windows)

ダウンロードしたAdventureWorks2017.bakファイルを、ホストの.\mssql\dataフォルダパス内に配置します。

cmd.exe
> dir D:\Docker\mssql-2019\mssql\data /b
AdventureWorks2017.bak <-ファイルが配置されていることを確認
Entropy.bin
master.mdf
mastlog.ldf
model.mdf
modellog.ldf
model_msdbdata.mdf
model_msdblog.ldf
model_replicatedmaster.ldf
model_replicatedmaster.mdf
msdbdata.mdf
msdblog.ldf
tempdb.mdf
tempdb2.ndf
templog.ldf

AdventureWorksの配置(Mac)

Docker on Macでは、docker-compose.yaml上でvolumesタグを指定できません。
そのため、docker cpコマンドを使用してAdventureWorks2017.bakファイルを/var/opt/mssql/dataディレクトリに配置します。

ダウンロードしたAdventureWorks2017.bakファイルが存在するディレクトリに移動します。
※今回は、docker-compose.yamlファイルと同じディレクトリに配置しました。

$ ls -al
total 98224
drwxr-xr-x   4 ymasaoka  staff       128  8 28 01:54 .
drwxr-xr-x  12 ymasaoka  staff       384  8 12 17:59 ..
-rw-r--r--   1 ymasaoka  staff  50286592  8 28 01:54 AdventureWorks2017.bak
-rw-r--r--   1 ymasaoka  staff       817  8 27 00:00 docker-compose.yaml

docker psコマンドを使用して、起動しているSQL Server 2019コンテナのIDを確認します。

$ docker ps
CONTAINER ID        IMAGE                                          COMMAND                  CREATED             STATUS              PORTS                    NAMES
e0868b38e321        mcr.microsoft.com/mssql/rhel/server:2019-RC1   "/opt/mssql/bin/perm…"   4 days ago          Up 4 seconds        0.0.0.0:1433->1433/tcp   mssql2019-rc1-rhel

この例でいうと、e0868b38e321がコンテナIDです。
このIDを使用して、Dockerコンテナ内の/var/opt/mssql/dataディレクトリにAdventureWorks2017.bakを配置します。

$ docker cp AdventureWorks2017.bak e0868b38e321:/var/opt/mssql/data

Dockerコンテナの中に入り、AdventureWorks2017.bakが配置されていることを確認してください。

$ docker exec -it e0868b38e321 "bash"
[root@localhost /]# ls -al /var/opt/mssql/data
total 121952
drwxr-xr-x 2 root root      4096 Aug 27 17:06 .
drwxr-xr-x 6 root root      4096 Aug 22 21:21 ..
-rw-r--r-- 1  501 games 50286592 Aug 27 16:54 AdventureWorks2017.bak  # ファイルが配置されていることを確認
-rw-r----- 1 root root       256 Aug 22 21:21 Entropy.bin
-rw-r----- 1 root root   4653056 Aug 27 16:59 master.mdf
-rw-r----- 1 root root   2097152 Aug 28 11:07 mastlog.ldf
-rw-r----- 1 root root   8388608 Aug 27 16:59 modellog.ldf
-rw-r----- 1 root root   8388608 Aug 27 16:59 model.mdf
-rw-r----- 1 root root  14024704 Aug 22 21:21 model_msdbdata.mdf
-rw-r----- 1 root root    524288 Aug 22 21:21 model_msdblog.ldf
-rw-r----- 1 root root    524288 Aug 22 21:21 model_replicatedmaster.ldf
-rw-r----- 1 root root   4653056 Aug 22 21:21 model_replicatedmaster.mdf
-rw-r----- 1 root root  14024704 Aug 22 21:34 msdbdata.mdf
-rw-r----- 1 root root    524288 Aug 27 16:59 msdblog.ldf
-rw-r----- 1 root root   8388608 Aug 27 16:59 tempdb.mdf
-rw-r----- 1 root root   8388608 Aug 28 13:28 templog.ldf

AdventureWorksの復元

AdventureWorksの復元(Windows)

SSMS(SQL Server Management Studio)を起動します。
Dockerコンテナ上で起動しているSQL Server 2019 RC1にログインします。

image.png

ログイン出来たら、[サーバー名] -> [データベース]を右クリックし、[データベースの復元]を選択します。

image.png

[データベースの復元]画面が表示されます。
[ページの選択] -> [全般]を選択し、[ソース]欄にあるラジオボタン[デバイス]を選択します。
ラジオボタン右横にある参照ボタン[...]を選択します。

image.png

[バックアップ デバイスの選択]画面が表示されます。
[追加]ボタンを選択します。

image.png

[バックアップ ファイルの検索]画面が表示されます。
/var/opt/mssql/dataディレクトリがデフォルトで表示されており、配置したAdventureWorks2017.bakが選択できることを確認します。
AdventureWorks2017.bakを選択し、[OK]を選択します。

image.png

[バックアップ デバイスの選択]画面に、追加したAdventureWorks2017.bakファイルの情報が表示されていることを確認します。
[OK]を選択します。

image.png

[データベースの復元 - AdventureWorks2017]画面が表示されます。
[OK]を選択し、データベースの復元を開始します。
※必要に応じて、[File]タブや[オプション]タブ内の設定を行ってください。

image.png

復元に成功すると、以下の画面が表示されます。

image.png

オブジェクトエクスプローラー上で[AdventureWorks2017]のDBが追加されたことを確認してください。

image.png

AdventureWorksの復元(Mac)

Azure Data Studioを起動します。
Dockerコンテナ上で起動しているSQL Server 2019 RC1にログインします。

img-ads-conn.png

ログイン出来たら、SERVER DASHBOARDを開き、[Tasks] -> [Restore]を選択します。

img-ads-srvdshbrd.png

[Restore database]画面が開きます。
[General]タブを選択します。
[Source] -> [Restore from]欄で、[Backup file]を選択します。
[Backup file path]欄にあるファイル選択ボタンを選択します。

img-ads-restore01.png

[Select a file]画面が表示されます。
dataディレクトリ以下に表示されている[AdventureWorks2017.bak]ファイルを選択し、[OK]を選択します。

img-ads-restore02.png

[Restore database]画面に戻ります。
復元する内容を確認し、[Restore]を選択します。

img-ads-restore03.png

データベースのリストアが開始されます。
問題ない場合は、[TASKS]コンソールに[Restore Database succeeded]が表示されます。
[AdventureWorks2017]のDBが追加されたことを確認してください。

img-ads-restore04.png

終わりに

Docker環境のSQL Server 2019 (RHEL)にAdventureWorksDBを入れて、デモとして利用できる環境を作成しました。
何も問題がなければ、2019/09もしくは2019/10には、SQL Server 2019はGAを迎えられると思います。
GAの前にいろいろ試して、ぜひ活用してみてください。

JSSUG(Japan SQL Server User Group)では、月1回、SQL Serverの勉強会を行なっています。
Microsoft MVPの方など、詳しい方もいらっしゃるので、興味ある方はぜひこちらにも参加してください。

またJSSUGにはSlackグループもあります。
SQL Serverの最新情報などをいち早く確認することができますので、こちらもぜひJoinしてみてください。

関連リンク

参考情報

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?