My old Dell XPS that I used for personal stuff started to degrade; well, it’s old, and it has already served past its useful life. So, a few months ago I bought a 14-inch Macbook Pro M5 Pro with 24GB of memory and the standard for M5 Pro 15-core CPU. It’s not my ideal config and I would have opted for the M5 Max. This machine is quite decent for what I need and I am not complaining.
Switching from Windows to Mac has been a challenge, to say the least. This is my first time using macOS as my primary operating system. Suffice it to say, it hasn’t been easy. There’s that.
And, SSMS is not supported in this platform, and Microsoft said that SSMS in Mac is “out of scope” and it will never ever be supported. Period. So, if I were to use this Macbook as my primary learning sandbox, I have no choice but to make it work. My macOS version as of this writing is Tahoe 26.5.1.
For my Mac SQL Server sandbox, I used OrbStack instead of Docker Desktop. I used Docker in my old sandbox on my Dell XPS. Why OrbStack? Simply because it’s the more efficient option on a Mac. First, it’s a native macOS app. The biggest factor is how these two allocate memory. OrbStack’s memory management is dynamic, meaning it doesn’t hold onto memory that it isn’t using. Although Docker has introduced improvements to memory management, such as Resource Saver and other optimizations, OrbStack is still better in that regard. Compared to Docker, OrbStack has low power usage, low memory usage, and a bunch of other advantages.
The usual Docker commands work as-is in OrbStack, so there’s no need to learn new commands or build new scripts if you already have them. Of course, caveats would include Docker Extensions and other features native to Docker.
Install OrbStack
The easiest way to install OrbStack on a Mac is via the package manager Home Brew. My preferred terminal is iTerm2.
brew install --cask orbstack
And that’s pretty much it. Next is the container. Run OrbStack if it isn’t already running.
IMPORTANT: Enable Rosetta / Update Rosetta 2
orb config set rosetta trueMy SQL Server 2025 container keeps getting stuck at the initialization process. Enabling Rosetta fixed the issue.
Pull and Run the Container
As I said, you don’t have to use any new commands to pull the image and run the SQL Server 2025 container. Commands such as docker pull/run and docker compose should run fine out of the box in OrbStack.
docker pull mcr.microsoft.com/mssql/server:2025-latest
Then simply run the container. Just a note, if you are using the default command interpreter Z Shell (szh) in iTerm2, get rid of the double quotes and run the following instead:
docker run -e ACCEPT_EULA=Y -e MSSQL_SA_PASSWORD='password_here' -p 1433:1433 --name sql2025 --hostname sql2025 -d mcr.microsoft.com/mssql/server:2025-latestYou might get a warning that says “The requested image’s platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested <container_id>.“
This simply is saying you’re on the ARM64 architecture of the Apple Silicon and the Linux SQL Server container provided by Microsoft is on the AMD64 architecture (no native ARM64 image).

The container should be fine even with that warning. But if you’re bothered by it, just rebuild the container with explicit Linux/amd64. Just stop and delete the existing container and add the --platform flag in the Docker command.
docker stop sql2025docker rm sql2025docker run --platform linux/amd64 -e ACCEPT_EULA=Y -e MSSQL_SA_PASSWORD='password_here' -p 1433:1433 --name sql2025 --hostname sql2025 -d mcr.microsoft.com/mssql/server:2025-latest
The warning should now be gone.

VS Code with mssql Extenstion
Install VC Code on your Mac via Home Brew if you haven’t done so.
brew install --cask visual-studio-code
Then, Open your VS Code and install the SQL Server (mssql) extension. The extension version as of this writing is v1.43.0.
Create new connection:

Then, that’s it!
Press ⇧ + ⌘ + P, and select MS SQL: Open New Query and Connect.
In the editor, check the master_files just to see if the database is queryable 🙂
select * from sys.master_files ;
Troubleshooting Stuck SQL Server 2025 Container
Just a quick check to see if you can connect to the SQL Server from your Mac
nc -vz localhost 1433
If port exposure looked fine, but still failing connection from VS Code, then something else might be causing the error. I was getting the following error from VS Code.
A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 35 – An internal exception was caught)
I checked my container stats, and one thing I noticed immediately is that the CPU is hitting the max of 100% usage.
docker stats sql2025
Upon futher digging, I found that emulation path getting stuck during SQL Server initialization. Check if enabling Rosetta on fixes the issue.
We’ll restore a SQL Server 2025 database in the next post.









6 responses to “Reflections on the Life of a DBA”
I am 57 and started my DBA journey in 1999 ant the age of 30. Married for 7 years with a 5 year old son and 3 year old daughter. I missed out on so much thinking that the company and the databases needed me more than my family or life did. I missed out on my son’s first homerun and was late to school functions. I slept in late on Saturday’s and missed my daughter’s soccer goals. All because I was too tired from working late.
In 2008 my wife gave me a choice to make. Family or the job and I thank God everyday I made the right choice. Three years later the company felt that a son of a friend of the owner would make a better DBA and after 12 years of many hours, undying loyalty, 2% raises, and being told of how much of a family we were I was let go mid week with only unpaid PTO.
The company I landed at allowed me to watch my son play high school football all four years, home and away, and any practices I wanted to. Never missed a soccer game and coached many years. Didn’t sleep in on Saturday unless I stayed up late on Friday date night. Took vacations out of state and for weeks. I even take work vacations where I work during the day and explore at night/weekends.
Would I do it again and give it my all? NOPE! Not a chance in hell. I would not work myself so hard that I would feel compelled to leave a black tie party to work on a stupid SQL server, you don’t have someone to take care of it? That sounds like bad planning or maybe a trust issue?
Don’t let it be said at your funeral that you were such a hard and dedicated worker, irreplaceable. Let it be said you are a friend that will never be replaced and will always be missed and that tears and laughter when memories are shed when your family remembers the times you all shared.
This job is nothing. Someone will take our place when we are done. Family and friendships are the only things that matter. Memories not MAXDOP. Listen to an old man who thought being a DBA was the best thing ever who almost lost everything to gain nothing.
Thank you for sharing your story.
Thank you Marlon for being one of the ones I’ve learned from through the years. I’ve probably passed along some of your wisdom to others, but forgot to mention from whom I got said wisdom and for that, I apologize. SQL Server community as a whole has been more than generous with time, knowledge and support of newcomers and is the biggest reason I stayed when I stumbled in as one of those “accidental DBAs” so very many years ago now.
We learn from one another. We’re standing on the shoulders of the giants.
Totally agree with what you wrote, as a fellow DBA I can relate to all you feelings, and yes I would do it again too!
Thanks for this beautiful blog post!
Thank you for the support. I’ll try to write off-tangent posts from time to time.