2020年12月アーカイブ

WSUSサーバのお話です。

WSUSサーバってたまにメンテナンスしないと、まともに動かなくなる代物だったりします。なんだかなぁ・・・・

Win10 のごり押しアップデートがうっとーしくてしゃーないから、WSUS建てたら、今度はその WSUS がメンテフリーにならないって、MS の嫌がらせなんですかねぇ・・・・(いや、単に安定したものを作れないっていう MS の無能から来るものだとは思うんですが)

何が起こるかっていうと、SQL Server が CPU 100% 状態になって応答しなくなります。

MS のサイトにブログという形で記述があるんですが、いろいろと情報が足りないのですよ。

sqlcmdをインストール

MS はどーやら、WindowsServer は Core での使用を推奨してるよーです。WinServ のインストーラ立ち上げたら、Core が Default 選択されてるし、MS はどこぞの文章で、Server は Core で使うんだよ!みたいなこと言ってるんですが・・・・・どこがだよ!!

さきの記事だと、SQL Server Management Studio を使うことになってるんですが、Server Core には Management Studio はインストールできません。そらそーだわな。GUI ツールなんだから。

なんで、コマンドラインで sqlcmd を使います。インストールするのはこれら。

この3つは、Server Core でも問題なくインストールできます。

リモート実行する環境

WindowsServer Core のマシンはコンソールを開こうが RDP しようが、DOS 窓が開いてるだけなんで、ターミナル的なものでつながないとやっとれません。なんで、PowerShell で telnet みたいなことをします。

使うコマンドは、

Enter-PSSession

有効化するためになんか Porlicy 関連のコマンドが必要だった気がするんですが、覚えてないんで、これはググってくだされ。

スクリプトを実行する

いよいよスクリプトを実行します。

sqlcmd -S np:\\.\pipe\Microsoft##WID\tsql\query -i D:\work\WsusDBMaintenance.sql

このコマンド、調べてもなかなか出てこんのですよね。特に DB 名のところ。こんなん知ってなきゃ分かるわけがない。

で、先のブログからダウンロードした sql スクリプトをそのまま実行してもエラーになるんですよ、これが

sqlcmd-error.png

スクリプトに

SET QUOTED_IDENTIFIER ON

この1行を加えないといけない。追記したスクリプトを置いときます。

WsusDBMaintenance.sql

スクリプトをもう一つ

MS のサイトにもひとつ、こんな記事があったりします。

なんで、これもスクリプト化して実行します。

RebuildIndex.sql

sqlcmd -S np:\\.\pipe\Microsoft##WID\tsql\query -i D:\work\RebuildIndex.sql

実行!

というわけで、実行します。

ただ、ここからがよくわかりません。

スクリプトを順に実行すりゃそれで収まるか?というと、収まらないのです。というわけで、私は次の操作を繰り返し実行してみました。手あたり次第にやってたら、収まってくれました。

  • WsusDBMaintenance.sql スクリプト
  • RebuildIndex.sql スクリプト
  • WSUS コンソール上のメンテナンス
  • OS再起動

これらを順不同で繰り返しやったら、収まりました。うーん、よくわからん

このアーカイブについて

このページには、2020年12月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2020年10月です。

次のアーカイブは2021年2月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。