Skip to content
VDS · Windows Server

VPS上のMS SQL Server

Windows VPSにMS SQL Server Expressをインストールし、メモリを制限し、安全にアクセスを開放し、バックアップを設定する方法を解説します。

更新日 2026年8月23日

MS SQL Server は、Windows Server を搭載した VPS に通常のアプリケーションと同じようにインストールできます。多くの用途には無料の Express エディションで十分です。制限は、データベースあたり 10 GB、エンジンのメモリ 1410 MB、最大 4 コアです。

必要なティア

Windows Server 自体が約 2 GB のメモリを消費します。そこにデータベースエンジンとアプリケーションを加えてください。VDS-1 と VDS-2 は Windows + MS SQL の組み合わせには狭すぎます。実用的な最小構成は VDS-3(4 コア / 8 GB / 120 GB)で、負荷の高いデータベースには VDS-4 以上を選んでください。VDS-3 の書き込み上限 240 MB/s の NVMe ディスクは、データベースには十分です。

インストール

Microsoft のウェブサイトから SQL Server Express のインストーラーをダウンロードし、サイレントインストールを実行します。

.\SQLEXPR_x64_ENU.exe /q /ACTION=Install /FEATURES=SQLEngine /INSTANCENAME=SQLEXPRESS `
  /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" `
  /SECURITYMODE=SQL /SAPWD="LongPasswordHere" /TCPENABLED=1 /IACCEPTSQLSERVERLICENSETERMS

コマンドラインツール(sqlcmd)と、インターフェースで操作する場合は SQL Server Management Studio も別途インストールしてください。

確認:

Get-Service MSSQL$SQLEXPRESS
sqlcmd -S .\SQLEXPRESS -Q "select @@version"

メモリとコア

デフォルトでは、エンジンが利用可能なメモリをすべて消費し、システムが影響を受けます。Windows に少なくとも 2 GB を残して、明示的に制限してください。

EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 4096; RECONFIGURE;

VDS-3(8 GB)の場合、適切な値は 4096 です。VDS-5(24 GB)の場合は 16384 です。

アクセス

ポート 1433 を外部に開放してはいけません。選択肢:

  • アプリケーションが同じマシンで動作する場合 — データベースを localhost に置き、ファイアウォールルールをまったく作成しないでください。
  • 外部アクセスが必要な場合 — 自分のアドレスにのみポートを開放します。
New-NetFirewallRule -DisplayName "MSSQL" -Direction Inbound -Protocol TCP -LocalPort 1433 `
  -RemoteAddress 203.0.113.5 -Action Allow

sa アカウントは無効化し、代わりに自分のデータベースのみに権限を持つ名前付きユーザーを作成することをおすすめします。

CREATE LOGIN app WITH PASSWORD = 'LongPassword';
CREATE DATABASE shop;
USE shop; CREATE USER app FOR LOGIN app;
ALTER ROLE db_owner ADD MEMBER app;
ALTER LOGIN sa DISABLE;

バックアップ

自動マシンバックアップも、パネルでの状態スナップショットもありません。データベースのバックアップは自分で取得してください。スケジューラのタスクで 1 日 1 回:

sqlcmd -S .\SQLEXPRESS -Q "BACKUP DATABASE shop TO DISK='C:\backup\shop.bak' WITH INIT, COMPRESSION"

Express では圧縮は利用できません。COMPRESSION を削除してください。完成したファイルは必ずマシンから外部に取り出してください。データベースの隣に置いたコピーでは、ディスクが失われたときに復旧できません。

少なくとも四半期に一度は復元を確認してください。一度も復元されたことのないバックアップは、バックアップとは言えません。

よくある間違い

  • TCP/IP プロトコルが有効になっていない。 デフォルトでは、Express は名前付きパイプのみで待ち受けます。SQL Server 構成マネージャーで有効化し、サービスを再起動してください。
  • 名前付きインスタンスの動的ポート。 1433 を明示的に設定してください。そうしないとファイアウォールルールが機能しません。
  • データベースが 10 GB に達し、書き込みを受け付けなくなった。 これは Express の制限です。それを超えるには別のエディションかデータのクリーンアップが必要です。
  • トランザクションログの放置。 完全復旧モデルでは、.ldf ファイルはディスクを圧迫するまで増え続けます。ログをバックアップするか、単純復旧モデルに切り替えてください。

空き容量に注意してください。ディスクが満杯になるとデータベースが完全に停止します。クリーンアップの方法については、記事ディスクとパーティションをご覧ください。