SQL Serverで複数インスタンスを作成する方法と、正しいポート設定の考え方
こんにちは、まめです。
Windows Server上で
SQL Server 2017
SQL Server 2019
SQL Server 2022
といった複数バージョンのSQL Serverを同一サーバーに共存させるケースは珍しくありません。
しかし
インスタンスの作り方
TCP/IP ポート設定
SQL Server Browser の扱い
を誤ると、
「繋がったり繋がらなかったりする」
「再起動後に突然死ぬ」
といった事故が起きがちです。
この記事では
👉 実務で安定する構成
だけに絞って解説します。
1. SQL Serverの「インスタンス」とは?
SQL Serverのインスタンスとは、
1つのSQL Serverエンジンの実行単位です。
1サーバーに複数作れる
バージョン混在も可能
それぞれ独立して起動・停止する
例:
SQL2017(インスタンスA)
SQL2019(インスタンスB)
SQL2022(インスタンスC)
2. 複数インスタンスの作り方(概要)
① SQL Server セットアップを起動
「新しいスタンドアロン インストール」
既存SQLがあっても問題なし
② インスタンスの指定
ここが最重要。
既定インスタンス:1台に1つだけ
名前付きインスタンス:複数作成可能(推奨)
👉 複数共存する場合は
必ず名前付きインスタンス
例:
MSSQL2017
MSSQL2019
MSSQL2022
③ サービスアカウントなど
バージョンごとに分けてもOK
最初はデフォルトでも可
※ ポート設定はこの時点では触らない
3. 複数インスタンス時の最大の罠「ポート設定」
よくある誤解
インスタンス名が違うから大丈夫
勝手にSQLが調整してくれる
👉 どちらも誤り
TCP/IP ポートは
インスタンスごとに必ず分ける必要がある
4. ポート設計の基本方針(結論)
実務での正解
全インスタンス 静的ポート
全インスタンス 別ポート
IPAll のみ設定
動的ポートは使わない
5. おすすめポート番号の決め方
理由のある番号を使う
SQL Serverの既定ポートは 1433。
そこから連番にするのが分かりやすい。
例(おすすめ)
SQL Serverインスタンスポート
2017 MSSQL2017 14331
2019 MSSQL2019 14332
2022 MSSQL2022 14333
6. TCP/IP の設定手順(具体)
① SQL Server Configuration Manager
「SQL Server ネットワークの構成」
対象インスタンス
TCP/IP:有効
② TCP/IP プロパティ
【IP Addresses】タブを開く。
IPAll のみ設定
TCP Dynamic Ports : (空欄)
TCP Port : 14332(例)
⚠️ 注意点
「0」や数字を動的に入れない
IP1 / IP2 は触らない
③ SQL Server サービス再起動
設定変更後は必ず再起動
7. 接続方法の考え方(重要)
インスタンス名指定
SERVER\MSSQL2019
SQL Server Browser に依存
UDP 1434 が必要
ポート指定(推奨)
SERVER,14332
Browser 不要
UDP 1434 不要
動作が確定する
👉 業務システムではこちら一択
8. SQL Server Browser の役割
Browser は
「インスタンス名 → ポート番号」を案内するだけ
接続そのものはしない
ポート指定なら完全不要
9. ポート確認方法(実務必須)
SQL 内から確認
SELECT
local_net_address,
local_tcp_port
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;
OS から確認
netstat -ano | find "sqlservr"
10. よくあるトラブル例
動的と静的の両方に値が入っている
全インスタンス同じポート
Browser依存に気づいていない
FWは開けたがSQL側が違う
まとめ
複数インスタンスは名前付き一択
ポートは静的・別番号
接続はポート指定
Browserは使わなくてもいい
👉 これを守れば
再起動しても、増設しても壊れない構成になる。
いいなと思ったら応援しよう!
最後まで読んでいただき、ありがとうございます。
試行錯誤しながらまとめた内容なので、どこか一つでも参考になっていれば本当に嬉しいです。
「読んでよかった」「続きも読みたい」と感じてもらえたら、
チップで応援していただけると、次の記事を書く力になります。