« 2019年6月 | トップページ | 2019年8月 »

2019年7月20日 (土)

続々:BSoDとの戦いに挑む

収束した....のか?

前回前々回のポストからいくつかやってみた結果の結論から言うと、Version 1903をインストールしたら収まった。ような気がする。

それまでにやったこと

ざっくり書くとこんな感じ。

  1. 余計な仮想スイッチの削除
  2. NICのドライバ更新
  3. Windows 10 Version 1903 (Windows 10 May 2019 Update) のインストール

1. 余計な仮想スイッチの削除

OSはPro版なのでHyper-Vが使えるんだけど、Version 1709から「既定のスイッチ(Default Switch)」と呼ばれる仮想スイッチが自動で作成されるようになった。

既定のスイッチについてはQiitaに解説記事が投稿されているのでそちらを参照いただくとして、過去Hyper-Vゲストにインターネットアクセスさせるために仮想スイッチを作っていたことがあり、そいつと機能的に噛んでいるのでは?ということで既定のスイッチだけ残して残りは削除することに。

ちなみにこれ、Hyper-Vの役割をセットアップしていないと削除できないので、Hyper-Vをセットアップして既定のスイッチ以外を削除して再起動。
これでしばらく様子をみることにしたが、一日置いてBSoD発症。

2. NICのドライバ更新

デバイスマネージャーでNIC(有線、無線とも)を見てみると、Windows Update経由でインストールされたものが使用されていた。

そういえば昔(10年以上前の話だが)、両面自動印刷機能とかが付いたHPのカラーインクジェットプリンタをWindows Updateのドライバで動かそうとしたら、片面印刷だけ、かつカラー不可という非常にイケてない状況になったことがあったので、IntelからNICのドライバをダウンロードしてセットアップ。
同様に様子を見ていたら、作業の3日後にBSoD発症。

3. Windows 10 Version 1903 のインストール

バージョン情報をみると、Version 1903公開から2か月以上たっていたにもかかわらずVersion 1803のままだった。たぶん、1903をダウンロードできるだけのまとまった稼働時間を確保していなかったのだろう。

ということで、更新アシスタントからVersion 1903を手動セットアップすることに。

結果、Intel製NICドライバは見事Windows Update版で上書きされてしまったが、実のところVersion 1903をセットアップして以降BSoDは発症していない。こっちの記事でDocker for Windowsを使っていても、である。

はっきりしないうちに収束した感があるので、モヤモヤするものが若干あるけれど。

| | コメント (0)

DockerにSQL Serverを追い出す件

追い出したい

僕のPCには開発用と称して

  • PostgreSQL 9.6
  • MySQL 8
  • Microsoft SQL Server 2017 Developer

をセットアップしているんだが、ホスト環境にそのままセットアップしているとこういった不満が出てくる(という私見)。

  • アップグレードは簡単にしたい
  • DBMSはアプリと1対1対応させたい
  • 開発していないときは、DBMSのプロセスを下げたい

こんなところか。
ということで、手始めにSQL ServerをDockerに追い出してみることにする。

SQL Server on Docker

いまどきのSQL ServerはLinux上でも動かせるエディションがリリースされているので、Microsoftも公式Dockerイメージを公開している。
今回はホスト環境にデータを永続化しておきたいので、Docker Hubの記載をもとにdocker-compose.ymlをかいてみた。

まだホスト環境でSQL Serverが稼働中なので、ホスト環境からの接続ポートを1433から14330に変更している。

version: '3'

 

services:
# Microsoft SQL Server 2017 Linux (Developer Edition)
db:
image: mcr.microsoft.com/mssql/server:2017-latest
container_name: mssql2017dev
environment:
ACCEPT_EULA: Y
# If you runs in production environment, you should change sa password.
SA_PASSWORD: P@ssw0rd2017
# If you have valid Product ID, set MSSQL_PID valiable.
# See : https://hub.docker.com/_/microsoft-mssql-server
#MSSQL_PID: Express
volumes:
- ./data/data:/var/opt/mssql/data
- ./data/log:/var/opt/mssql/log
ports:
- 14330:1433

docker-compose.ymlを置いているディレクトリで、PowerShellからこう叩くとDocker上にSQL Serverが立ち上がる。

PS> mkdir .\data\data
PS> mkdir .\data\log
PS> docker-compose up -d

 

ツールで接続する

 

立ち上がったら、ホスト環境のsqlcmdで接続して動作確認。

PS> sqlcmd -S localhost,14330 -U sa -P P@ssw0rd2017

注意点としては、ポートの指定がよくあるコロン(:)ではなくカンマ(,)だということ。MSDNにはちゃんと書かれているけれど、これは初見殺しだよなぁ。

接続ができたら、今度はSQL Server Management Studioを使えるようにしてみる。接続ダイアログのサーバ名は、sqlcmdの時同様の書き方でよい。

Connwithssms

これでSQL ServerをDockerに追い出せたので、データ移行をこなせば追い出しが完了する見込み。

 

プロジェクト的なもの

GitHubにプロジェクト的なものを上げてます。
ご参考あれ。

続きを読む "DockerにSQL Serverを追い出す件"

| | コメント (0)

« 2019年6月 | トップページ | 2019年8月 »