<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">

<channel>
	<title>MarlonRibunal.com</title>
	<atom:link href="https://marlonribunal.com/feed/?max-results=10" rel="self" type="application/rss+xml"/>
	<link>https://marlonribunal.com</link>
	<description>SQL, Code, Coffee, etc.</description>
	<lastBuildDate>Wed, 15 Jul 2026 22:18:51 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>
	<xhtml:meta content="noindex" name="robots" xmlns:xhtml="http://www.w3.org/1999/xhtml"/><item>
		<title>Do This Before You Contact Your SQL Server Consultant</title>
		<link>https://marlonribunal.com/do-this-before-you-contact-your-sql-server-consultant/</link>
					<comments>https://marlonribunal.com/do-this-before-you-contact-your-sql-server-consultant/#respond</comments>
		
		<dc:creator><![CDATA[Marlon Ribunal]]></dc:creator>
		<pubDate>Thu, 16 Jul 2026 10:08:00 +0000</pubDate>
				<category><![CDATA[Project Management]]></category>
		<category><![CDATA[SQL Server]]></category>
		<guid isPermaLink="false">https://marlonribunal.com/?p=2745</guid>

					<description><![CDATA[Say you need outside help. You’ve exhausted all the things that you could do and, still, nothing works. So, you decide that calling in for help is the next sensible thing to do. Let’s say this is the first time you’re asking for somebody’s help. You decide which consultant to work with. The hardest part, if you’re doing this for the first time, is how to start that conversation. <a href="https://marlonribunal.com/do-this-before-you-contact-your-sql-server-consultant/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Say you need outside help. You’ve exhausted all the things that you could do and, still, nothing works. So, you decide that calling in for help is the next sensible thing to do. Let’s say this is the first time you’re asking for somebody’s help. You decide which consultant to work with. The hardest part, if you’re doing this for the first time, is how to start that conversation.</p>



<p class="wp-block-paragraph">The first conversation is the most critical one. Obviously, you cannot just turn over your SQL Server instance and wait for the bill. Some prep changes what you get out of that first conversation. It means spending less time covering the basics and more time focusing on the problem that made you pick up the phone in the first place.</p>



<p class="wp-block-paragraph">Here&#8217;s what&#8217;s worth having ready before you make the call.<br /><br />(And, not incidentally, if you are a new SQL Server DBA hire, you can use the following to get a baseline understanding of the environment you&#8217;re now facing.)</p>



<h2 class="wp-block-heading">Determine what&#8217;s wrong with your server</h2>



<p class="wp-block-paragraph">Here&#8217;s the thing. Your consultant is a highly technical person, but you don&#8217;t always have to speak in technical terms. Explain the pain points from the users&#8217; perspective. Is the UI slow? Are users experiencing timeout issues? Is a button not responding in a timely manner? Look at the problem through the users&#8217; eyes and understand their pain.</p>



<p class="wp-block-paragraph">An important thing to take note of is what feels slow or broken. Is it specific like a report? A batch job that has been failing to meet the SLA? Is it the whole application? Ingestion pipeline failing to finish at all?</p>



<p class="wp-block-paragraph">Another important thing to take note of is the timeline. When did this start happening? Is it after a vendor update? Is it after releasing a new ingestion tool? After a SQL patch? After a migration? <s>After a new hire?</s></p>



<p class="wp-block-paragraph">Also, I&#8217;d add who is feeling the pain and who is affected the most. Maybe it&#8217;s one or two people in the Accounting department. Maybe it&#8217;s the CFO trying to run a quarterly report. Or perhaps it&#8217;s your customers or partners who rely on access to your data outside your company.</p>



<p class="wp-block-paragraph">That gives the consultant some context to work with. </p>



<p class="wp-block-paragraph">You know your business better than any consultant walking through the door. That context is where a good diagnosis starts.</p>



<h2 class="wp-block-heading">Understand your data landscape</h2>



<p class="wp-block-paragraph">You don&#8217;t have to know every nook and cranny of your SQL Server environment, whether it&#8217;s running on-prem or in the cloud. But you should have a baseline understanding of how things are put together.</p>



<p class="wp-block-paragraph">Things like SQL Server versions and editions, if you know them, can provide useful information about your environment. Have an approximate idea of how many servers are affected, or maybe the percentage compared to the total number of servers. Is the issue only happening on your on-prem servers, or are your cloud instances affected as well?</p>



<p class="wp-block-paragraph">Those are a few important things for the consultant to know as a starting point.</p>



<h2 class="wp-block-heading"><strong>One thing worth checking first</strong></h2>



<p class="wp-block-paragraph">If you check nothing else, check this: do your backups actually work? Or do you even have the right backup strategy in place?</p>



<p class="wp-block-paragraph">If you don&#8217;t have RPO and RTO defined (or worse, don&#8217;t know what those mean), put that at the top of your discussion list with your consultant. This is one of the most important things you need to get right.</p>



<p class="wp-block-paragraph">Not &#8220;is the backup job running?&#8221; That&#8217;s not the question. The real question is whether you have ever restored a backup and confirmed that it actually works.</p>



<p class="wp-block-paragraph"><em><strong>A backup that has never been tested is just a hope, not a safety net.</strong></em></p>



<p class="wp-block-paragraph">Okay, somebody said that before. I&#8217;m just borrowing it here because it perfectly describes why testing your backups matters. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">If you&#8217;re not sure, that&#8217;s okay. That&#8217;s exactly the kind of thing you want to identify early. And honestly, it&#8217;s one of the first things I would want to understand as well.</p>



<h2 class="wp-block-heading">Sort out access and ownership</h2>



<p class="wp-block-paragraph">Well, how can the consultant help if they don&#8217;t have the access level needed to do the work or accomplish what you brought them in to do?</p>



<p class="wp-block-paragraph">Nothing slows down a first week like waiting on permissions. Before you bring anyone in, it helps to know who owns the SQL Server environment today (<strong>sa is the wrong answer</strong>). Who can grant the access they need? Does it require a chain of approvals from higher-ups? Or is it an open-for-all kind of thing? The consultant needs to know if it&#8217;s the latter.</p>



<p class="wp-block-paragraph">If you&#8217;re on a tight schedule or everything is already on fire, you don&#8217;t want to delay troubleshooting and resolution just because of access issues.</p>



<h2 class="wp-block-heading">If you&#8217;re technical, go deeper maybe</h2>



<p class="wp-block-paragraph">If you or someone on your team is hands-on, here&#8217;s the bigger picture a DBA would typically look at. None of this is required. It is just useful information to have if you can pull it together.</p>



<p class="wp-block-paragraph">Hopefully, Query Store is enabled. And if you&#8217;re lucky, it has enough history captured that you can correlate the data with the actual issues you&#8217;re seeing.</p>



<p class="wp-block-paragraph">Disk latency, specifically read/write latency, is another useful piece of information if you have it. Ideally, if you have results from CrystalDiskInfo or a similar disk benchmark, that can give the consultant an idea of what they&#8217;re dealing with when it comes to storage performance. Maybe storage is part of the problem.</p>



<p class="wp-block-paragraph">Is TempDB configured according to known best practices? Is Instant File Initialization enabled? What about Lock Pages in Memory? How are MAXDOP and Cost Threshold for Parallelism configured?</p>



<p class="wp-block-paragraph">What does the disk subsystem look like? Where are your data and log files stored? Are your system databases sitting on the OS drive? How much memory is allocated to SQL Server?</p>



<p class="wp-block-paragraph">These are the kinds of details that can help a SQL Server consultant understand the environment before they start troubleshooting.</p>



<p class="wp-block-paragraph">You may also want to run tools like Brent Ozar&#8217;s <strong>sp_Blitz</strong> or Glenn Berry&#8217;s <strong>SQL Server Diagnostic Queries</strong>. If those don&#8217;t mean anything to you, that&#8217;s okay. These are just examples of tools that can provide useful information to a SQL Server consultant.</p>



<h2 class="wp-block-heading">Just be prepared</h2>



<p class="wp-block-paragraph">The best thing to remember is this: <strong>be prepared</strong>.</p>



<p class="wp-block-paragraph">The better prepared you are, the less time is spent having someone learn your environment, and the sooner you can get to the actual problem.</p>



<p class="wp-block-paragraph">Whether you work with an outside consultant or someone from your own team, walking in with your symptoms, your environment details, and the information you already have gives everyone a much better place to start.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://marlonribunal.com/do-this-before-you-contact-your-sql-server-consultant/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Deploy a SQL Server 2025 Container on macOS Using OrbStack</title>
		<link>https://marlonribunal.com/install-sql-server-2025-container-on-macos-using-orbstack/</link>
					<comments>https://marlonribunal.com/install-sql-server-2025-container-on-macos-using-orbstack/#respond</comments>
		
		<dc:creator><![CDATA[Marlon Ribunal]]></dc:creator>
		<pubDate>Mon, 13 Jul 2026 13:15:00 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<guid isPermaLink="false">https://marlonribunal.com/?p=2680</guid>

					<description><![CDATA[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. I used OrbStack instead of Docker Desktop. <a href="https://marlonribunal.com/install-sql-server-2025-container-on-macos-using-orbstack/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">My old Dell XPS that I used for personal stuff started to degrade; well, it&#8217;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&#8217;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.</p>



<p class="wp-block-paragraph">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&#8217;t been easy. There&#8217;s that.</p>



<p class="wp-block-paragraph">And, SSMS is not supported in this platform, and Microsoft said that SSMS in Mac is &#8220;out of scope&#8221; 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 <strong>Tahoe 26.5.1</strong>.</p>



<p class="wp-block-paragraph">For my Mac SQL Server sandbox, I used <strong>OrbStack </strong>instead of Docker Desktop. I used Docker in my old sandbox on my Dell XPS. Why OrbStack? Simply because it&#8217;s the more efficient option on a Mac. First, it&#8217;s a native macOS app. The biggest factor is how these two allocate memory. OrbStack&#8217;s memory management is dynamic, meaning it doesn&#8217;t hold onto memory that it isn&#8217;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.</p>



<p class="wp-block-paragraph">The usual Docker commands work as-is in OrbStack, so there&#8217;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.</p>



<h2 class="wp-block-heading">Install OrbStack</h2>



<p class="wp-block-paragraph">The easiest way to install OrbStack on a Mac is via the package manager <strong>Home Brew</strong>. My preferred terminal is <strong>iTerm2</strong>. </p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-highlight-hover" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(159, 170, 243, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#292d3e"><span style="background:#aaafcf;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#292d3e">Zsh</span></span><span role="button" tabindex="0" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>brew install --cask orbstack</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-palenight" style="background-color: #292D3E" tabindex="0"><code><span class="line"><span style="color: #FFCB6B">brew</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">install</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">--cask</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">orbstack</span></span></code></pre></div>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="776" src="https://marlonribunal.com/wp-content/uploads/2026/07/image-1024x776.png" alt="" class="wp-image-2683" srcset="https://marlonribunal.com/wp-content/uploads/2026/07/image-1024x776.png 1024w, https://marlonribunal.com/wp-content/uploads/2026/07/image-300x227.png 300w, https://marlonribunal.com/wp-content/uploads/2026/07/image-768x582.png 768w, https://marlonribunal.com/wp-content/uploads/2026/07/image-1536x1164.png 1536w, https://marlonribunal.com/wp-content/uploads/2026/07/image.png 1844w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">And that&#8217;s pretty much it. Next is the container. Run OrbStack if it isn&#8217;t already running.<br /><br /><strong>IMPORTANT: Enable Rosetta</strong> / <strong>Update Rosetta 2</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#292d3e"><span style="background:#aaafcf;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#292d3e">Zsh</span></span><span role="button" tabindex="0" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>orb config set rosetta true</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-palenight" style="background-color: #292D3E" tabindex="0"><code><span class="line"><span style="color: #FFCB6B">orb</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">config</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">set</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">rosetta</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">true</span></span></code></pre></div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">My SQL Server 2025 container keeps getting stuck at the initialization process. <strong>Enabling Rosetta fixed the issue.</strong></p>



<h2 class="wp-block-heading">Pull and Run the Container</h2>



<p class="wp-block-paragraph">As I said, you don&#8217;t have to use any new commands to pull the image and run the SQL Server 2025 container. Commands such as <code>docker pull/run</code> and <code>docker compose</code> should run fine out of the box in OrbStack.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#292d3e"><span style="background:#aaafcf;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#292d3e">Zsh</span></span><span role="button" tabindex="0" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>docker pull mcr.microsoft.com/mssql/server:2025-latest</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-palenight" style="background-color: #292D3E" tabindex="0"><code><span class="line"><span style="color: #FFCB6B">docker</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">pull</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">mcr.microsoft.com/mssql/server:2025-latest</span></span></code></pre></div>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="752" src="https://marlonribunal.com/wp-content/uploads/2026/07/image-3-1024x752.png" alt="" class="wp-image-2688" srcset="https://marlonribunal.com/wp-content/uploads/2026/07/image-3-1024x752.png 1024w, https://marlonribunal.com/wp-content/uploads/2026/07/image-3-300x220.png 300w, https://marlonribunal.com/wp-content/uploads/2026/07/image-3-768x564.png 768w, https://marlonribunal.com/wp-content/uploads/2026/07/image-3-1536x1128.png 1536w, https://marlonribunal.com/wp-content/uploads/2026/07/image-3.png 1904w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Then simply run the container. Just a note, if you are using the default command interpreter Z Shell (<code>szh</code>) in iTerm2, get rid of the double quotes and run the following instead:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#292d3e"><span style="background:#aaafcf;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#292d3e">Zsh</span></span><span role="button" tabindex="0" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>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-latest</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-palenight" style="background-color: #292D3E" tabindex="0"><code><span class="line"><span style="color: #FFCB6B">docker</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">run</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">-e</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">ACCEPT_EULA=Y</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">-e</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">MSSQL_SA_PASSWORD=</span><span style="color: #89DDFF">&#39;</span><span style="color: #C3E88D">password_here</span><span style="color: #89DDFF">&#39;</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">-p</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">1433</span><span style="color: #C3E88D">:1433</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">--name</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">sql2025</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">--hostname</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">sql2025</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">-d</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">mcr.microsoft.com/mssql/server:2025-latest</span></span></code></pre></div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">You might get a warning that says &#8220;<strong>The requested image&#8217;s platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested &lt;container_id&gt;.</strong>&#8220;<br /><br />This simply is saying you&#8217;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). <br /></p>



<figure class="wp-block-image size-full"><img decoding="async" width="1844" height="1398" src="https://marlonribunal.com/wp-content/uploads/2026/07/image-6.png" alt="" class="wp-image-2696" srcset="https://marlonribunal.com/wp-content/uploads/2026/07/image-6.png 1844w, https://marlonribunal.com/wp-content/uploads/2026/07/image-6-300x227.png 300w, https://marlonribunal.com/wp-content/uploads/2026/07/image-6-1024x776.png 1024w, https://marlonribunal.com/wp-content/uploads/2026/07/image-6-768x582.png 768w, https://marlonribunal.com/wp-content/uploads/2026/07/image-6-1536x1164.png 1536w" sizes="(max-width: 1844px) 100vw, 1844px" /></figure>



<p class="wp-block-paragraph">The container should be fine even with that warning. But if you&#8217;re bothered by it, just rebuild the container with explicit <code>Linux/amd64</code>. Just stop and delete the existing container and add the <code>--platform</code> flag in the Docker command.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#292d3e"><span style="background:#aaafcf;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#292d3e">Zsh</span></span><span role="button" tabindex="0" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>docker stop sql2025</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-palenight" style="background-color: #292D3E" tabindex="0"><code><span class="line"><span style="color: #FFCB6B">docker</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">stop</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">sql2025</span></span></code></pre></div>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#292d3e"><span style="background:#aaafcf;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#292d3e">Zsh</span></span><span role="button" tabindex="0" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>docker rm sql2025</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-palenight" style="background-color: #292D3E" tabindex="0"><code><span class="line"><span style="color: #FFCB6B">docker</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">rm</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">sql2025</span></span></code></pre></div>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#292d3e"><span style="background:#aaafcf;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#292d3e">Zsh</span></span><span role="button" tabindex="0" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>docker 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</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-palenight" style="background-color: #292D3E" tabindex="0"><code><span class="line"><span style="color: #FFCB6B">docker</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">run</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">--platform</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">linux/amd64</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">-e</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">ACCEPT_EULA=Y</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">-e</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">MSSQL_SA_PASSWORD=</span><span style="color: #89DDFF">&#39;</span><span style="color: #C3E88D">password_here</span><span style="color: #89DDFF">&#39;</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">-p</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">1433</span><span style="color: #C3E88D">:1433</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">--name</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">sql2025</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">--hostname</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">sql2025</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">-d</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">mcr.microsoft.com/mssql/server:2025-latest</span></span></code></pre></div>



<p class="wp-block-paragraph"><br /><br />The warning should now be gone.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="776" src="https://marlonribunal.com/wp-content/uploads/2026/07/image-7-1024x776.png" alt="" class="wp-image-2697" srcset="https://marlonribunal.com/wp-content/uploads/2026/07/image-7-1024x776.png 1024w, https://marlonribunal.com/wp-content/uploads/2026/07/image-7-300x227.png 300w, https://marlonribunal.com/wp-content/uploads/2026/07/image-7-768x582.png 768w, https://marlonribunal.com/wp-content/uploads/2026/07/image-7-1536x1164.png 1536w, https://marlonribunal.com/wp-content/uploads/2026/07/image-7.png 1844w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">VS Code with mssql Extenstion</h2>



<p class="wp-block-paragraph">Install VC Code on your Mac via Home Brew if you haven&#8217;t done so.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#292d3e"><span style="background:#aaafcf;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#292d3e">Zsh</span></span><span role="button" tabindex="0" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>brew install --cask visual-studio-code</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-palenight" style="background-color: #292D3E" tabindex="0"><code><span class="line"><span style="color: #FFCB6B">brew</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">install</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">--cask</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">visual-studio-code</span></span></code></pre></div>



<p class="wp-block-paragraph"><br /><br /><br />Then, Open your VS Code and install the SQL Server (<code>mssql</code>) extension. The extension version as of this writing is <strong>v1.43.0</strong>.<br /><br />Create new connection:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="631" height="1024" src="https://marlonribunal.com/wp-content/uploads/2026/07/image-15-631x1024.png" alt="" class="wp-image-2710" srcset="https://marlonribunal.com/wp-content/uploads/2026/07/image-15-631x1024.png 631w, https://marlonribunal.com/wp-content/uploads/2026/07/image-15-185x300.png 185w, https://marlonribunal.com/wp-content/uploads/2026/07/image-15-768x1246.png 768w, https://marlonribunal.com/wp-content/uploads/2026/07/image-15-947x1536.png 947w, https://marlonribunal.com/wp-content/uploads/2026/07/image-15.png 1105w" sizes="auto, (max-width: 631px) 100vw, 631px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Then, that&#8217;s it! </p>



<p class="wp-block-paragraph">Press <strong>⇧</strong> + <strong>⌘</strong> + <strong>P</strong>, and select <code>MS SQL: Open New Query and Connect</code>.</p>



<p class="wp-block-paragraph">In the editor, check the <code>master_files</code> just to see if the database is queryable <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(159, 170, 243, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#292d3e"><span style="background:#aaafcf;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#292d3e">SQL</span></span><span role="button" tabindex="0" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>select * from sys.master_files ;</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-palenight" style="background-color: #292D3E" tabindex="0"><code><span class="line"><span style="color: #F78C6C">select</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">*</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">from</span><span style="color: #BABED8"> sys.master_files ;</span></span></code></pre></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="729" src="https://marlonribunal.com/wp-content/uploads/2026/07/image-14-1024x729.png" alt="" class="wp-image-2709" srcset="https://marlonribunal.com/wp-content/uploads/2026/07/image-14-1024x729.png 1024w, https://marlonribunal.com/wp-content/uploads/2026/07/image-14-300x214.png 300w, https://marlonribunal.com/wp-content/uploads/2026/07/image-14-768x547.png 768w, https://marlonribunal.com/wp-content/uploads/2026/07/image-14-1536x1094.png 1536w, https://marlonribunal.com/wp-content/uploads/2026/07/image-14-scaled.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Troubleshooting Stuck SQL Server 2025 Container</h2>



<p class="wp-block-paragraph">Just a quick check to see if you can connect to the SQL Server from your Mac</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#292d3e"><span style="background:#aaafcf;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#292d3e">Zsh</span></span><span role="button" tabindex="0" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>nc -vz localhost 1433</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-palenight" style="background-color: #292D3E" tabindex="0"><code><span class="line"><span style="color: #FFCB6B">nc</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">-vz</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">localhost</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">1433</span></span></code></pre></div>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="776" src="https://marlonribunal.com/wp-content/uploads/2026/07/image-10-1024x776.png" alt="" class="wp-image-2701" srcset="https://marlonribunal.com/wp-content/uploads/2026/07/image-10-1024x776.png 1024w, https://marlonribunal.com/wp-content/uploads/2026/07/image-10-300x227.png 300w, https://marlonribunal.com/wp-content/uploads/2026/07/image-10-768x582.png 768w, https://marlonribunal.com/wp-content/uploads/2026/07/image-10-1536x1164.png 1536w, https://marlonribunal.com/wp-content/uploads/2026/07/image-10.png 1844w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">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.<br /><br /><strong>A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 35 &#8211; An internal exception was caught)</strong><br /><br />I checked my container stats, and one thing I noticed immediately is that the CPU is hitting the max of 100% usage.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#292d3e"><span style="background:#aaafcf;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#292d3e">Zsh</span></span><span role="button" tabindex="0" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>docker stats sql2025</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-palenight" style="background-color: #292D3E" tabindex="0"><code><span class="line"><span style="color: #FFCB6B">docker</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">stats</span><span style="color: #BABED8"> </span><span style="color: #C3E88D">sql2025</span></span></code></pre></div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><br /></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="163" src="https://marlonribunal.com/wp-content/uploads/2026/07/image-12-1024x163.png" alt="" class="wp-image-2705" srcset="https://marlonribunal.com/wp-content/uploads/2026/07/image-12-1024x163.png 1024w, https://marlonribunal.com/wp-content/uploads/2026/07/image-12-300x48.png 300w, https://marlonribunal.com/wp-content/uploads/2026/07/image-12-768x122.png 768w, https://marlonribunal.com/wp-content/uploads/2026/07/image-12-1536x245.png 1536w, https://marlonribunal.com/wp-content/uploads/2026/07/image-12-scaled.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Upon futher digging, I found that emulation path getting stuck during SQL Server initialization. Check if <strong>enabling Rosetta</strong> on fixes the issue.</p>



<p class="wp-block-paragraph">We&#8217;ll restore a SQL Server 2025 database in the next post. </p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://marlonribunal.com/install-sql-server-2025-container-on-macos-using-orbstack/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Reflections on the Life of a DBA</title>
		<link>https://marlonribunal.com/reflections-on-the-life-of-a-dba/</link>
					<comments>https://marlonribunal.com/reflections-on-the-life-of-a-dba/#comments</comments>
		
		<dc:creator><![CDATA[Marlon Ribunal]]></dc:creator>
		<pubDate>Mon, 06 Jul 2026 13:15:00 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[SQL Server]]></category>
		<guid isPermaLink="false">https://marlonribunal.com/?p=2637</guid>

					<description><![CDATA[The DBA life is fraught with pain. Those battles that we endure are mostly invisible to many. Those countless sleepness nights are a testament to our dedication. Whether that is a server that went down because of a bad patch or a server that refused to get back online after a configuration change, we are always there to save the day (or night). And it doesn't matter if we're in the middle of a special celebration of a loved one, or a well-deserved rest day. We rise to the occassion.  <a href="https://marlonribunal.com/reflections-on-the-life-of-a-dba/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>Nota Bene: <strong>Not </strong>written by AI. I have written this from the heart&#8230;for those who are willing to listen. &#8211; Marlon</em></p>



<p class="wp-block-paragraph">I was in Sequoia National Forest with my family over the holiday weekend (our Independence Day here in the US). Hiking in national forests within driving distance of home has been one of our ways of unplugging whenever we get a chance. I had some time to reflect on my career.</p>



<p class="wp-block-paragraph">I saw how the forest adapts to changes. I saw small trees budding from seeds scattered all over the ground. These will soon become part of the whole forest ecosystem. But forest fire brings the painful changes.</p>



<p class="wp-block-paragraph">Charred snags and charred tree wounds bear witness to the pain brought about by the blaze. What is most interesting to me is that no matter how many times the flame engulfs the forest , it always finds the reason to sprout a new life. There is this process called Phoenix Regeneration where the fallen or burned trees go through a transformation.</p>



<p class="wp-block-paragraph">Sometimes you wonder how human life intertwines with nature. There is that life-death cycle&#8230;the comfort, the pain&#8230;they both are part of that cycle. </p>



<p class="wp-block-paragraph">Like the forest, human is more than capable of surviving any bad events. That incredible resilience is part of our human nature. Just like the trees, it is within our nature to effect a Phoenix Regeneration (although that is metaphorical when it comes to us humans).</p>



<p class="wp-block-paragraph">Same goes to our career. It goes through that similar cycle. The ups and downs. Jobs come and go. The pain and the comfort is part of that cycle.<br /><br />And this is what brought me here to these reflections.</p>



<p class="wp-block-paragraph">The DBA life is fraught with pain. Those battles that we endure are mostly invisible to many. Those countless sleepness nights are a testament to our dedication. Whether that is a server that went down because of a bad patch or a server that refused to get back online after a configuration change, we are always there to save the day (or night). And it doesn&#8217;t matter if we&#8217;re in the middle of a special celebration of a loved one, or a well-deserved rest day. We rise to the occassion. </p>



<p class="wp-block-paragraph">And I couldn&#8217;t forget that cold January evening. I was at a black-tie party. My phone was exploding with Splunk On-Call alerts and Teams messages. An important SQL Server went down. I never leave the house without my work laptop. I can probably forget my wallet at home, but never my laptop.<br /><br />Pulling my laptop onto the dining table would have been awkward or outright disrespectful at best. The only place for me then was that busy kitchen, teeming with relentless chaos. Imagine that guy in black suit with his laptop. I found a corner where I dealt with the issue with poise but with a sense of urgency. The mission was clear. I was to deliver without reservation or excuses.</p>



<p class="wp-block-paragraph">The pain is part of it. The weekends. The holidays. Or, worse, the Birthdays. You sacrifice them all for the love of fixing things that are broken. And this was something I chose. Nothing was forced on me. I chose this not only as a job, but more so as a calling. No one forced me to be here. I fulfill this duty with the understanding that it is a noble mission.</p>



<p class="wp-block-paragraph">The cycle of pain and comfort is deeply ingrained in the life of a DBA. You are called to it. You choose that life, and it chooses you. Comfort comes in the form of appreciation. A simple &#8220;Marlon, thanks. That helped.&#8221; goes a long way.</p>



<p class="wp-block-paragraph">I find joy in helping people understand why things happen and how to address them, so the next time they can do it themselves. I am one who never gatekeeps what they know. I owe what I know to those whom I follow. I have no right to withhold or not share the knowledge that I have learned from other people. &#8220;<em>Thank you, Marlon, for sharing that with me</em>&#8221; is more important to me than &#8220;<em>Thanks, Marlon, for fixing that for me</em>&#8220;.</p>



<p class="wp-block-paragraph">Blood. Sweat. And Tears. Not a complaint. Not an excuse. But an act of pure love. And I never regretted a single thing. </p>



<p class="wp-block-paragraph">Would I do it again? I will do it again. And over again. And again. Yes, I will do it over and over again. <br /><br />Here I am charred, wounded. But I&#8217;d do it again in a heartbeat. Over. Again. Despite the pain. Not a doubt.<br /><br />It&#8217;s all worth it. And I find comfort in the fact that deep in my heart I know&#8230;</p>



<p class="wp-block-paragraph"><strong>I GAVE IT MY ALL</strong>.</p>



<p class="wp-block-paragraph"></p>



<div class="wp-block-comments"><h2 id="comments" class="wp-block-comments-title">6 responses to &#8220;Reflections on the Life of a DBA&#8221;</h2>

<ol class="wp-block-comment-template"><li id="comment-13384" class="comment even thread-even depth-1">

<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:40px"><div class="wp-block-avatar"><img alt='Scott Moon Avatar' src='https://secure.gravatar.com/avatar/1a704813fc1be8c76ad47db09ed68860fb18c2a30842248b1ca3434cc6f4a19e?s=40&#038;d=retro&#038;r=g' srcset='https://secure.gravatar.com/avatar/1a704813fc1be8c76ad47db09ed68860fb18c2a30842248b1ca3434cc6f4a19e?s=80&#038;d=retro&#038;r=g 2x' class='avatar avatar-40 photo wp-block-avatar__image' height='40' width='40'  style="border-radius:20px;"/></div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div class="wp-block-comment-author-name has-small-font-size">Scott Moon</div>


<div class="wp-block-group is-layout-flex wp-block-group-is-layout-flex" style="margin-top:0px;margin-bottom:0px"><div class="wp-block-comment-date has-small-font-size"><time datetime="2026-07-13T11:52:08-07:00"><a href="https://marlonribunal.com/reflections-on-the-life-of-a-dba/comment-page-1/#comment-13384">07/13/2026</a></time></div>

</div>


<div class="wp-block-comment-content"><p>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&#8217;s first homerun and was late to school functions. I slept in late on Saturday&#8217;s and missed my daughter&#8217;s soccer goals. All because I was too tired from working late.</p>
<p>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.  </p>
<p>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&#8217;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.</p>
<p>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&#8217;t have someone to take care of it? That sounds like bad planning or maybe a trust issue?  </p>
<p>Don&#8217;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.  </p>
<p>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.</p>
</div>

<div class="wp-block-comment-reply-link has-small-font-size"><a rel="nofollow" class="comment-reply-link" href="https://marlonribunal.com/reflections-on-the-life-of-a-dba/comment-page-1/?replytocom=13384#respond" data-commentid="13384" data-postid="2637" data-belowelement="comment-13384" data-respondelement="respond" data-replyto="Reply to Scott Moon" aria-label="Reply to Scott Moon">Reply</a></div></div>
</div>

<ol><li id="comment-13385" class="comment byuser comment-author-marlon bypostauthor odd alt depth-2">

<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:40px"><div class="wp-block-avatar"><img alt='Marlon Ribunal Avatar' src='https://secure.gravatar.com/avatar/8d0b7ecf5c8767c2d8d444064f61d083b37822cd606f858bf03a3ef4fd27c809?s=40&#038;d=retro&#038;r=g' srcset='https://secure.gravatar.com/avatar/8d0b7ecf5c8767c2d8d444064f61d083b37822cd606f858bf03a3ef4fd27c809?s=80&#038;d=retro&#038;r=g 2x' class='avatar avatar-40 photo wp-block-avatar__image' height='40' width='40'  style="border-radius:20px;"/></div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div class="wp-block-comment-author-name has-small-font-size"><a rel="external nofollow ugc" href="http://marlonribunal.com" target="_self" >Marlon Ribunal</a></div>


<div class="wp-block-group is-layout-flex wp-block-group-is-layout-flex" style="margin-top:0px;margin-bottom:0px"><div class="wp-block-comment-date has-small-font-size"><time datetime="2026-07-13T15:52:25-07:00"><a href="https://marlonribunal.com/reflections-on-the-life-of-a-dba/comment-page-1/#comment-13385">07/13/2026</a></time></div>

</div>


<div class="wp-block-comment-content"><p>Thank you for sharing your story.</p>
</div>

<div class="wp-block-comment-reply-link has-small-font-size"><a rel="nofollow" class="comment-reply-link" href="https://marlonribunal.com/reflections-on-the-life-of-a-dba/comment-page-1/?replytocom=13385#respond" data-commentid="13385" data-postid="2637" data-belowelement="comment-13385" data-respondelement="respond" data-replyto="Reply to Marlon Ribunal" aria-label="Reply to Marlon Ribunal">Reply</a></div></div>
</div>

</li></ol></li><li id="comment-13383" class="comment even thread-odd thread-alt depth-1">

<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:40px"><div class="wp-block-avatar"><img alt='Margaret Norkett Avatar' src='https://secure.gravatar.com/avatar/ad821e34046f2c7e8e7de66a3b2d6521b86a62591afb3b2ace9cb90758b378b3?s=40&#038;d=retro&#038;r=g' srcset='https://secure.gravatar.com/avatar/ad821e34046f2c7e8e7de66a3b2d6521b86a62591afb3b2ace9cb90758b378b3?s=80&#038;d=retro&#038;r=g 2x' class='avatar avatar-40 photo wp-block-avatar__image' height='40' width='40'  style="border-radius:20px;"/></div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div class="wp-block-comment-author-name has-small-font-size">Margaret Norkett</div>


<div class="wp-block-group is-layout-flex wp-block-group-is-layout-flex" style="margin-top:0px;margin-bottom:0px"><div class="wp-block-comment-date has-small-font-size"><time datetime="2026-07-13T11:40:13-07:00"><a href="https://marlonribunal.com/reflections-on-the-life-of-a-dba/comment-page-1/#comment-13383">07/13/2026</a></time></div>

</div>


<div class="wp-block-comment-content"><p>Thank you Marlon for being one of the ones I&#8217;ve learned from through the years. I&#8217;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 &#8220;accidental DBAs&#8221; so very many years ago now.</p>
</div>

<div class="wp-block-comment-reply-link has-small-font-size"><a rel="nofollow" class="comment-reply-link" href="https://marlonribunal.com/reflections-on-the-life-of-a-dba/comment-page-1/?replytocom=13383#respond" data-commentid="13383" data-postid="2637" data-belowelement="comment-13383" data-respondelement="respond" data-replyto="Reply to Margaret Norkett" aria-label="Reply to Margaret Norkett">Reply</a></div></div>
</div>

<ol><li id="comment-13386" class="comment byuser comment-author-marlon bypostauthor odd alt depth-2">

<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:40px"><div class="wp-block-avatar"><img alt='Marlon Ribunal Avatar' src='https://secure.gravatar.com/avatar/8d0b7ecf5c8767c2d8d444064f61d083b37822cd606f858bf03a3ef4fd27c809?s=40&#038;d=retro&#038;r=g' srcset='https://secure.gravatar.com/avatar/8d0b7ecf5c8767c2d8d444064f61d083b37822cd606f858bf03a3ef4fd27c809?s=80&#038;d=retro&#038;r=g 2x' class='avatar avatar-40 photo wp-block-avatar__image' height='40' width='40'  style="border-radius:20px;"/></div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div class="wp-block-comment-author-name has-small-font-size"><a rel="external nofollow ugc" href="http://marlonribunal.com" target="_self" >Marlon Ribunal</a></div>


<div class="wp-block-group is-layout-flex wp-block-group-is-layout-flex" style="margin-top:0px;margin-bottom:0px"><div class="wp-block-comment-date has-small-font-size"><time datetime="2026-07-13T15:53:38-07:00"><a href="https://marlonribunal.com/reflections-on-the-life-of-a-dba/comment-page-1/#comment-13386">07/13/2026</a></time></div>

</div>


<div class="wp-block-comment-content"><p>We learn from one another. We&#8217;re standing on the shoulders of the giants.</p>
</div>

<div class="wp-block-comment-reply-link has-small-font-size"><a rel="nofollow" class="comment-reply-link" href="https://marlonribunal.com/reflections-on-the-life-of-a-dba/comment-page-1/?replytocom=13386#respond" data-commentid="13386" data-postid="2637" data-belowelement="comment-13386" data-respondelement="respond" data-replyto="Reply to Marlon Ribunal" aria-label="Reply to Marlon Ribunal">Reply</a></div></div>
</div>

</li></ol></li><li id="comment-13381" class="comment even thread-even depth-1">

<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:40px"><div class="wp-block-avatar"><img alt='Andrea Gnemmi Avatar' src='https://secure.gravatar.com/avatar/6b726626e0fd587048e6b2010ed1c2237680dbe91ab281defe49d0c58b4205d0?s=40&#038;d=retro&#038;r=g' srcset='https://secure.gravatar.com/avatar/6b726626e0fd587048e6b2010ed1c2237680dbe91ab281defe49d0c58b4205d0?s=80&#038;d=retro&#038;r=g 2x' class='avatar avatar-40 photo wp-block-avatar__image' height='40' width='40'  style="border-radius:20px;"/></div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div class="wp-block-comment-author-name has-small-font-size">Andrea Gnemmi</div>


<div class="wp-block-group is-layout-flex wp-block-group-is-layout-flex" style="margin-top:0px;margin-bottom:0px"><div class="wp-block-comment-date has-small-font-size"><time datetime="2026-07-13T01:23:46-07:00"><a href="https://marlonribunal.com/reflections-on-the-life-of-a-dba/comment-page-1/#comment-13381">07/13/2026</a></time></div>

</div>


<div class="wp-block-comment-content"><p>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!<br />
Thanks for this beautiful blog post!</p>
</div>

<div class="wp-block-comment-reply-link has-small-font-size"><a rel="nofollow" class="comment-reply-link" href="https://marlonribunal.com/reflections-on-the-life-of-a-dba/comment-page-1/?replytocom=13381#respond" data-commentid="13381" data-postid="2637" data-belowelement="comment-13381" data-respondelement="respond" data-replyto="Reply to Andrea Gnemmi" aria-label="Reply to Andrea Gnemmi">Reply</a></div></div>
</div>

<ol><li id="comment-13387" class="comment byuser comment-author-marlon bypostauthor odd alt depth-2">

<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:40px"><div class="wp-block-avatar"><img alt='Marlon Ribunal Avatar' src='https://secure.gravatar.com/avatar/8d0b7ecf5c8767c2d8d444064f61d083b37822cd606f858bf03a3ef4fd27c809?s=40&#038;d=retro&#038;r=g' srcset='https://secure.gravatar.com/avatar/8d0b7ecf5c8767c2d8d444064f61d083b37822cd606f858bf03a3ef4fd27c809?s=80&#038;d=retro&#038;r=g 2x' class='avatar avatar-40 photo wp-block-avatar__image' height='40' width='40'  style="border-radius:20px;"/></div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div class="wp-block-comment-author-name has-small-font-size"><a rel="external nofollow ugc" href="http://marlonribunal.com" target="_self" >Marlon Ribunal</a></div>


<div class="wp-block-group is-layout-flex wp-block-group-is-layout-flex" style="margin-top:0px;margin-bottom:0px"><div class="wp-block-comment-date has-small-font-size"><time datetime="2026-07-13T15:54:45-07:00"><a href="https://marlonribunal.com/reflections-on-the-life-of-a-dba/comment-page-1/#comment-13387">07/13/2026</a></time></div>

</div>


<div class="wp-block-comment-content"><p>Thank you for the support. I&#8217;ll try to write off-tangent posts from time to time.</p>
</div>

<div class="wp-block-comment-reply-link has-small-font-size"><a rel="nofollow" class="comment-reply-link" href="https://marlonribunal.com/reflections-on-the-life-of-a-dba/comment-page-1/?replytocom=13387#respond" data-commentid="13387" data-postid="2637" data-belowelement="comment-13387" data-respondelement="respond" data-replyto="Reply to Marlon Ribunal" aria-label="Reply to Marlon Ribunal">Reply</a></div></div>
</div>

</li></ol></li></ol>



	<div id="respond" class="comment-respond wp-block-post-comments-form">
		<h3 id="reply-title" class="comment-reply-title">Leave a Reply <small><a rel="nofollow" id="cancel-comment-reply-link" href="/feed/?max-results=10#respond" style="display:none;">Cancel reply</a></small></h3><form action="https://marlonribunal.com/wp-comments-post.php" method="post" id="commentform" class="comment-form"><p class="comment-notes"><span id="email-notes">Your email address will not be published.</span> <span class="required-field-message">Required fields are marked <span class="required">*</span></span></p><p class="comment-form-comment"><label for="comment">Comment <span class="required">*</span></label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea></p><p class="comment-form-author"><label for="author">Name <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" autocomplete="name" required="required" /></p>
<p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input id="email" name="email" type="text" value="" size="30" maxlength="100" aria-describedby="email-notes" autocomplete="email" required="required" /></p>
<p class="comment-form-url"><label for="url">Website</label> <input id="url" name="url" type="text" value="" size="30" maxlength="200" autocomplete="url" /></p>
<p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes" /> <label for="wp-comment-cookies-consent">Save my name, email, and website in this browser for the next time I comment.</label></p>
<p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Post Comment" /> <input type='hidden' name='comment_post_ID' value='2637' id='comment_post_ID' />
<input type='hidden' name='comment_parent' id='comment_parent' value='0' />
</p><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="a33e29eefa" /></p><p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="100"/><script>
document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );
</script>
</p></form>	</div><!-- #respond -->
	<p class="akismet_comment_form_privacy_notice">This site uses Akismet to reduce spam. <a href="https://akismet.com/privacy/" target="_blank" rel="nofollow noopener">Learn how your comment data is processed.</a></p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://marlonribunal.com/reflections-on-the-life-of-a-dba/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>How to Set Up SQL Server 2025, Ollama and NGINX in Docker Without the Headaches</title>
		<link>https://marlonribunal.com/how-to-set-up-sql-server-2025-ollama-and-nginx-in-docker-without-the-headaches/</link>
					<comments>https://marlonribunal.com/how-to-set-up-sql-server-2025-ollama-and-nginx-in-docker-without-the-headaches/#comments</comments>
		
		<dc:creator><![CDATA[Marlon Ribunal]]></dc:creator>
		<pubDate>Mon, 27 Oct 2025 13:00:00 +0000</pubDate>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server 2025]]></category>
		<category><![CDATA[Vector Search]]></category>
		<guid isPermaLink="false">https://marlonribunal.com/?p=2586</guid>

					<description><![CDATA[Ollama SQL FastStart kit just works out of the box. It makes it easy to spin the whole Docker Compose stack not in minutes but seconds! <a href="https://marlonribunal.com/how-to-set-up-sql-server-2025-ollama-and-nginx-in-docker-without-the-headaches/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I like to subject myself to agony from time to time. So, I tried to build my SQL Server 2025 test environment in Docker from scratch.  I thought I was getting behind with the good stuff about the native AI integration into the Microsoft database platform &#8211; vector search and the concept of embedding in particular. Spinning a SQL Server container in Docker is <a href="https://marlonribunal.com/how-to-create-a-sql-server-2022-learning-sandbox-in-few-easy-steps/">easy peasy</a>.</p>



<p class="wp-block-paragraph">But setting up SQL Server to connect to the Large Language Model over a Secure Proxy is not for the faint of heart. Just the angst of getting the spaces aligned in the YAML file can toss you into existential crisis.  After almost a couple of hours of pulling my hair trying to fix one error after another, I gave up.</p>



<p class="wp-block-paragraph">If you are like me who&#8217;s itching to try the SQL Server 2025 features and its promises of good fortune and brighter tomorrow, especially the vector search and embedding stuff, there&#8217;s a repo out there that you can clone to your personal laptop to easily and quickly set up SQL 2025, LLM (Ollama), and Secure Proxy (NGINX), which is required by SQL Server &#8211; all in one setup via Docker Compose. Well, needless to say, the only thing that you need is the Docker Desktop &nbsp;app installed in your personal laptop (and Git).</p>



<p class="wp-block-paragraph">And aren&#8217;t we so lucky to have the people who dedicate their precious time to making our life easier? <br /><br />Enter <a href="https://www.nocentino.com/posts/2025-05-19-ollama-sql-faststart/" target="_blank" rel="noopener nofollow" title="Ollama SQL FastStart"><strong>Ollama SQL FastStart</strong></a>.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><code>Ollama SQL FastStart</code> streamlines the deployment of SQL Server 2025 with integrated AI capabilities through a comprehensive Docker-based solution. This project delivers a production-ready environment combining SQL Server 2025, Ollama’s large language model services, and NGINX with full SSL support—all preconfigured to work together seamlessly</p>
</blockquote>



<p class="wp-block-paragraph">This is huge in my humble opinion! This is helping to bring the boon of the <strong>first AI-ready enterprise database platform</strong> to the hand of the masses. Microsoft you failed at this noble commission! To be fair, Microsoft has a getting-started blog on this subject <a href="https://devblogs.microsoft.com/azure-sql/getting-started-with-ai-in-sql-server-2025-on-windows/">here</a>. But that&#8217;s the long way. <code>Ollama SQL FastStart</code> is the short cut.</p>



<p class="wp-block-paragraph">Thanks <a href="https://www.linkedin.com/in/nocentino/">Anthony Nocentino</a> for this <strong>Getting Started with Vector Search in SQL Server 2025 Using Ollama</strong> kit. This will save the world a lot of headaches. And might just avert a worldwide catastrophe caused by existential crises.<br /><br />Anthony&#8217;s <code>Ollama SQL FastStart</code> kit just works out of the box. It really makes it easy and quick to spin the whole environment not in minutes but seconds! I&#8217;m exaggerating there a bit of course, but a couple of Bash commands is all you need to set the whole thing up. You&#8217;ll be up and running those vector searches in no time!</p>



<h2 class="wp-block-heading">Install Git &amp; Clone the Repo</h2>



<p class="wp-block-paragraph">If you haven&#8217;t done so, download and install <a href="https://git-scm.com/">Git</a>. And the <a href="https://www.docker.com/products/docker-desktop/" target="_blank" rel="noopener nofollow" title="">Docker Desktop</a> app if that&#8217;s not installed yet also.</p>



<p class="wp-block-paragraph">I have a folder in my local called <code>C:\Docker</code>. This is where I usually save all my Docker related stuff. You may want to create a folder anywhere that is convenient for you. Open <code>Git Bash</code> in your folder.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="992" src="https://marlonribunal.com/wp-content/uploads/2025/10/image-3-1024x992.png" alt="" class="wp-image-2607" srcset="https://marlonribunal.com/wp-content/uploads/2025/10/image-3-1024x992.png 1024w, https://marlonribunal.com/wp-content/uploads/2025/10/image-3-300x291.png 300w, https://marlonribunal.com/wp-content/uploads/2025/10/image-3-768x744.png 768w, https://marlonribunal.com/wp-content/uploads/2025/10/image-3-1536x1488.png 1536w, https://marlonribunal.com/wp-content/uploads/2025/10/image-3.png 1605w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Then clone the <code>Ollama SQL FastStart</code> project from GitHub.</p>



<pre class="wp-block-code"><code>git Clone https://github.com/nocentino/ollama-sql-faststart.git</code></pre>



<p class="wp-block-paragraph">Change dir to <code>ollama-sql-faststart</code>:</p>



<pre class="wp-block-code"><code>cd ollama-sql-faststart</code></pre>



<p class="wp-block-paragraph">Then build and start the services:</p>



<pre class="wp-block-code"><code>docker compose up --detach</code></pre>



<p class="wp-block-paragraph">Give it a couple of minutes to let it do its magic.</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="480" height="272" src="https://marlonribunal.com/wp-content/uploads/2025/10/image-2.png" alt="" class="wp-image-2606" srcset="https://marlonribunal.com/wp-content/uploads/2025/10/image-2.png 480w, https://marlonribunal.com/wp-content/uploads/2025/10/image-2-300x170.png 300w" sizes="auto, (max-width: 480px) 100vw, 480px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">If you&#8217;ve setup your Docker correctly, you should now see the <code>ollama-sql-faststart</code> Docker compose stack, like so:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="788" src="https://marlonribunal.com/wp-content/uploads/2025/10/image-4-1024x788.png" alt="" class="wp-image-2610" srcset="https://marlonribunal.com/wp-content/uploads/2025/10/image-4-1024x788.png 1024w, https://marlonribunal.com/wp-content/uploads/2025/10/image-4-300x231.png 300w, https://marlonribunal.com/wp-content/uploads/2025/10/image-4-768x591.png 768w, https://marlonribunal.com/wp-content/uploads/2025/10/image-4-1536x1182.png 1536w, https://marlonribunal.com/wp-content/uploads/2025/10/image-4-scaled.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">You may want to slide that <code>Only show running containers</code> option to have a cleaner look in the compose stack.</p>



<h2 class="wp-block-heading">Install and Open SSMS 22</h2>



<p class="wp-block-paragraph">This is probably the best time to test SQL Server Management Studio v22 (Preview as of this writing) if you haven&#8217;t done so. Download it <a href="https://learn.microsoft.com/en-us/ssms/release-notes-22-preview" target="_blank" rel="noopener nofollow" title="">here</a>.</p>



<p class="wp-block-paragraph">Install SSMS v22 locally to your laptop.</p>



<p class="wp-block-paragraph">Login to the SQL Server instance in Docker:</p>



<p class="wp-block-paragraph">Server Name: <code>host.docker.internal,1433</code></p>



<p class="wp-block-paragraph">The password detail is found in Anthony&#8217;s blog linked above. And of course, you may change this after you complete your setup.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="844" height="1024" src="https://marlonribunal.com/wp-content/uploads/2025/10/image-5-844x1024.png" alt="" class="wp-image-2614" srcset="https://marlonribunal.com/wp-content/uploads/2025/10/image-5-844x1024.png 844w, https://marlonribunal.com/wp-content/uploads/2025/10/image-5-247x300.png 247w, https://marlonribunal.com/wp-content/uploads/2025/10/image-5-768x932.png 768w, https://marlonribunal.com/wp-content/uploads/2025/10/image-5.png 1225w" sizes="auto, (max-width: 844px) 100vw, 844px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Open the SQL script called <code>configure_model.sql</code> from <code>C:\&lt;your dir here&gt;\ollama-sql-faststart\scripts\configure_model.sql.</code> Then execute it</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="490" src="https://marlonribunal.com/wp-content/uploads/2025/10/image-6-1024x490.png" alt="" class="wp-image-2616" srcset="https://marlonribunal.com/wp-content/uploads/2025/10/image-6-1024x490.png 1024w, https://marlonribunal.com/wp-content/uploads/2025/10/image-6-300x144.png 300w, https://marlonribunal.com/wp-content/uploads/2025/10/image-6-768x368.png 768w, https://marlonribunal.com/wp-content/uploads/2025/10/image-6-1536x735.png 1536w, https://marlonribunal.com/wp-content/uploads/2025/10/image-6-scaled.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">And everything else that you need to get started is in the <code>configure_model.sql</code> script found in <code>C:\&lt;your dir here&gt;\ollama-sql-faststart\scripts\configure_model.sql</code>.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">And that&#8217;s it! It works like magic!</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="522" src="https://marlonribunal.com/wp-content/uploads/2025/10/image-7-1024x522.png" alt="" class="wp-image-2618" srcset="https://marlonribunal.com/wp-content/uploads/2025/10/image-7-1024x522.png 1024w, https://marlonribunal.com/wp-content/uploads/2025/10/image-7-300x153.png 300w, https://marlonribunal.com/wp-content/uploads/2025/10/image-7-768x392.png 768w, https://marlonribunal.com/wp-content/uploads/2025/10/image-7.png 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">And of course, aside from the vector search, SQL Server 2025 has a lot to offer. Find them <a href="https://learn.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-2025?view=sql-server-ver17" target="_blank" rel="noopener nofollow" title="">here</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://marlonribunal.com/how-to-set-up-sql-server-2025-ollama-and-nginx-in-docker-without-the-headaches/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>How to Avoid Knowledge Stagnation</title>
		<link>https://marlonribunal.com/how-to-avoid-knowledge-stagnation/</link>
		
		<dc:creator><![CDATA[Marlon Ribunal]]></dc:creator>
		<pubDate>Thu, 04 Sep 2025 14:30:00 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[learning]]></category>
		<guid isPermaLink="false">https://marlonribunal.com/?p=2562</guid>

					<description><![CDATA[You want the short answer? Well, the only antidote to knowledge stagnation is probably embracing the habit of lifelong learning. For the long-winded answer, read on. Have you ever had an experience where a colleague approached you and asked about &#8230; <a href="https://marlonribunal.com/how-to-avoid-knowledge-stagnation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">You want the short answer? Well, the only antidote to knowledge stagnation is probably embracing the habit of lifelong learning. For the long-winded answer, read on.</p>



<p class="wp-block-paragraph">Have you ever had an experience where a colleague approached you and asked about something technical and you do not know the answer? Or have you ever been in the middle of all-hands-on-deck, mission-critical situation and everyone is waiting for you to push the button, but you can&#8217;t figure out the right button to push? How about getting caught in a discovery meeting unprepared and you are expected to provide a solution to a baffling issue that everyone expected you to have an answer for? </p>



<p class="wp-block-paragraph">You probably don&#8217;t want to find yourself in those situations. I have, and I lost count of the number of times those happened in the past. Embarrassing as it may, I just have to admit that. And if you are like me, you probably did too. The good thing is we acknowledge these shortcomings, and we are more than willing to fill the gaps. We make up by delivering more of the things that we know and going beyond the extra mile. Then we go back and pick up the things that we don&#8217;t know and learn them.</p>



<p class="wp-block-paragraph">Technical people with years of experience in their field are expected to deliver answers where needed as needed. But we may find ourselves stuck not knowing what we&#8217;re supposed to know and even confused when caught off-guard. How do we minimize the occurrence of such lapses?</p>



<h3 class="wp-block-heading">Identify the Gaps</h3>



<p class="wp-block-paragraph">List the things that you were asked but didn&#8217;t have the answer for. Identify all the related concepts and the scenarios those might be applicable to. Ask the experts in your field or consult other resources such as forums, books, podcasts, webcasts, paid training, and many others. ChatGPT will provide you the shortcuts but vet them thoroughly. Live events such as conferences are great venues to find knowledge gaps. Test the concepts and apply when you&#8217;re sure they work and that only after determining that they are the appropriate solutions. </p>



<h3 class="wp-block-heading">Set System Instead of Goals</h3>



<p class="wp-block-paragraph">The biggest hurdle to sustaining any learning habits is consistency, or the lack thereof. It is harder to sustain progress when you are goal oriented. Focus on your processes and establish other habits that complement your learning habits. Cultivate a <a href="https://marlonribunal.com/productivity-data-pro/">productive mindset</a>. Create a personal learning system that is anchored on processes established on top of your learning priorities.</p>



<h3 class="wp-block-heading">Establish a Schedule</h3>



<p class="wp-block-paragraph">Establish a schedule along with setting up your learning habits and systems. If you don&#8217;t prioritize it, it won&#8217;t happen. Of course, this is easier said than done. If you are like me, you also struggle to stay consistent. This is why it is important to set aside a time for this purpose. Life happens. The chance that things are going to get done is higher when they are scheduled than when they are not. </p>



<p class="wp-block-paragraph">There are tons of ways to avoid knowledge stagnation. The key is to establish a robust learning system that you can sustain. </p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>