背景
仕事でWindows Serverで動かすSQL Server起動停止用バッチファイルを作らなくてはいけなくなった。
その時に周りから教えてもらったコマンドや処理が、要件にぴたりはまってとても助かったので、
忘れないようにメモ。
要件
- サーバが複数台有り、サーバによって起動しているサービスが微妙に違うので、サーバによって停止するサービスを
変更しやすくする
→サービスのリスト化をする部分で、不要なサービスをremでコメント化 - バッチ実行結果を後で確認出来るよう、ログを出力する。ログファイル名に日付を入れる。
(7世代保存、それより古くなったら自動削除)
SQL Serverの起動・停止させるサービスを指定
指定するサービスは、サービス一覧>プロパティ>サービス名 に表示されている名前で指定が必要
→最初自分で調べてこれが分からず、少しはまった。
※対象部分を全体のバッチファイルから抜き出して記載
set SERVICE_LIST=
set SERVICE_LIST=%SERVICE_LIST% MSSQLSERVER
set SERVICE_LIST=%SERVICE_LIST% MSSQLFDLauncher
set SERVICE_LIST=%SERVICE_LIST% SQLSERVERAGENT
set SERVICE_LIST=%SERVICE_LIST% MSSQLServerOLAPService
set SERVICE_LIST=%SERVICE_LIST% SQLBrowser
set SERVICE_LIST=%SERVICE_LIST% MsDtsServer100
set SERVICE_LIST=%SERVICE_LIST% ReportServer
set SERVICE_LIST=%SERVICE_LIST% SQLWriter
7日以前に作成されたログファイルを削除
最初はこれが出来るというのを知らず、1行だけのVBスクリプトを外部ファイルで使おうとしていた。
set LOGFILES=sqlstart_*.log
forfiles /d -7 /m %LOGFILES% /c "cmd /c del @file" 2>> NUL
今回勉強になった事
- ○日以上たったファイルの削除が出来るコマンドが、バッチで扱えるのが分かった。
- 起動停止で指定するサービス名を、サービス一覧>プロパティ>サービス名 に表示されている名前で指定が必要な事。
- バッチファイルも意外と使える事。(でもやっぱりLinuxのシェルスクリプトの方がやりやすくて助かるけど)