Skip to content

SQL Server on Arm

Microsoft has an edge SQL Server product that is also available on 64-bit Arm in addition of x86 processors, offering core functionality.

However, forget about .NET extensibility, snapshots, replication and other features that are excluded from this product.

The Developer edition of Azure SQL Edge is limited to 4 cores and 32GB of RAM.

The SQL Server on Linux infrastructure is used, with the container OS being based on Windows build 10.0.17134 (corresponding to Windows 10 version 1803). Those images, including the NT user-mode kernel, are shared with the x86_64 version.

Azure SQL Edge can be pulled from Microsoft’s container registry.

docker pull mcr.microsoft.com/azure-sql-edge:latest

You can then run it with:

sudo docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge

The binaries are statically translated through sbtrans by Microsoft to be able to run on 64-bit Arm processors.

sbtrans‘s runtime library, libsbtrntm.so, doesn’t have a JIT fallback. As such, this is a fully ahead of time translation.

Those translations are stored at /opt/mssql/lib/sbt, with a hash of the binary used to lookup translated files. The location for the translations is configurable via the PAL_SBT_SEARCH_PATH environment variable.

Leave a Reply

Your email address will not be published. Required fields are marked *