Czy SQL Server na Linuxie na maszynie 1GB RAM ma sens? Jest wiele tanich VPS z 1GB i istnieje pokusa zabawy.
Próbując zainstalować jednak otrzymamy komunikat:
This program requires a machine with at least 2000 megabytes of memory.
Przetestowałem to rozwiązanie na Linuxie (RHEL, Ubuntu), Zapakowałem instancję w Docker ze specjalnym obrazem justin2004/mssql_server_tiny (to obraz SQL Server 2017 i jest skonfigurowany aby omijać konfigurację sprzętową, co pozwala go instalować na maszynie z mniej niż 2GB ram).
Poniżej prosta konfiguracja i kilka wyjaśnień:
-e 'MSSQL_PID=Express' (biorę Express mniejszy narzut na pamięć, a mając VPS np. publiczy nie łamiesz licencji MS)
-p 4444:1433 (mapuję standardowy port sqlserver 1433 na własny 4444)
-v /sqldata:/var/opt/mssql (mapuję domyślny katalog mssql w /var/opt/mssql na własny /sqldata i tam ustawiam domyślne katalogi na data,log,backup,dump)
--memory-swap -1 (jak zabraknie fizycznego ram, zrzucam pamięć na dysk do pełnego jego wykorzystania)
--name ms1 (to moja nazwa instancji w Docker)
--hostname ms1 (to moja nazwa instancji w SQLServer)
--d justin2004/mssql_server_tiny
Na terminalu w Linux jeśli masz już Docker wpisz polecenie na uruchomienie obrazu:
sudo docker run
-e 'ACCEPT_EULA=Y'
-e
'SA_PASSWORD=WpiszTwojeMocneHaslo'
-e 'MSSQL_PID=Express'
-e
'MSSQL_COLLATION=Polish_CI_AS'
-p 4444:1433
-v /sqldata:/var/opt/mssql
-e
'TZ=Europe/Warsaw'
-e 'MSSQL_DATA_DIR=/sqldata/data'
-e
'MSSQL_LOG_DIR=/sqldata/log'
-e 'MSSQL_BACKUP_DIR=/sqldata/backup'
-e
'MSSQL_DUMP_DIR=/sqldata/dump'
--memory-swap -1
--name ms1
--hostname ms1-d
justin2004/mssql_server_tiny
-e 'ACCEPT_EULA=Y'
-e 'SA_PASSWORD=WpiszTwojeMocneHaslo'
-e 'MSSQL_PID=Express'
-e 'MSSQL_COLLATION=Polish_CI_AS'
-p 4444:1433
-v /sqldata:/var/opt/mssql
-e 'TZ=Europe/Warsaw'
-e 'MSSQL_DATA_DIR=/sqldata/data'
-e 'MSSQL_LOG_DIR=/sqldata/log'
-e 'MSSQL_BACKUP_DIR=/sqldata/backup'
-e 'MSSQL_DUMP_DIR=/sqldata/dump'
--memory-swap -1
--name ms1
--hostname ms1