見出し画像

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は使わなくてもいい

👉 これを守れば
再起動しても、増設しても壊れない構成になる。

いいなと思ったら応援しよう!

まめ 最後まで読んでいただき、ありがとうございます。 試行錯誤しながらまとめた内容なので、どこか一つでも参考になっていれば本当に嬉しいです。 「読んでよかった」「続きも読みたい」と感じてもらえたら、 チップで応援していただけると、次の記事を書く力になります。