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

<channel>
	<title>Clusters Archives - The SERO Group</title>
	<atom:link href="https://theserogroup.com/tag/clusters/feed/" rel="self" type="application/rss+xml" />
	<link>https://theserogroup.com/tag/clusters/</link>
	<description>SQL Servers Healthy, Secure, And Reliable</description>
	<lastBuildDate>Tue, 16 Dec 2025 18:34:56 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://theserogroup.com/wp-content/uploads/2024/07/cropped-Canister-only-1-32x32.png</url>
	<title>Clusters Archives - The SERO Group</title>
	<link>https://theserogroup.com/tag/clusters/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">121220030</site>	<item>
		<title>Why Quiet Reflection Leads to Better IT Strategy Decisions</title>
		<link>https://theserogroup.com/azure/why-quiet-reflection-leads-to-better-it-strategy-decisions/</link>
		
		<dc:creator><![CDATA[Joe Webb]]></dc:creator>
		<pubDate>Wed, 17 Dec 2025 13:00:04 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Data Security]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[SQL Community]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Consulting]]></category>
		<category><![CDATA[The Sero Group]]></category>
		<category><![CDATA[Clustering]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Public Speaking]]></category>
		<category><![CDATA[Script Library]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[Shared Disks]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Assessment]]></category>
		<category><![CDATA[SQL Audit]]></category>
		<category><![CDATA[SQL Conference]]></category>
		<category><![CDATA[SQL Consultant]]></category>
		<category><![CDATA[SQL Events]]></category>
		<category><![CDATA[SQL Security]]></category>
		<category><![CDATA[SQL Server Consultant]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<category><![CDATA[SQL Training]]></category>
		<category><![CDATA[TempDB]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=7691</guid>

					<description><![CDATA[<p>Last Saturday, I woke up before dawn to a quiet house. My family was still asleep, as I’m the only morning person in our household. The Christmas tree lights cast a warm glow across the room, and I was alone with my thoughts and a hot cup of coffee. No urgent emails, no fire drills,&#8230; <br /> <a class="read-more" href="https://theserogroup.com/azure/why-quiet-reflection-leads-to-better-it-strategy-decisions/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/azure/why-quiet-reflection-leads-to-better-it-strategy-decisions/">Why Quiet Reflection Leads to Better IT Strategy Decisions</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Last Saturday, I woke up before dawn to a quiet house. My family was still asleep, as I’m the only morning person in our household. The Christmas tree lights cast a warm glow across the room, and I was alone with my thoughts and a hot cup of coffee. No urgent emails, no fire drills, no meetings starting in five minutes. Just space to think.</p>



<p>As I sat there, I ended up reflecting back on 2025. I found myself gravitating to these three questions:</p>



<ul class="wp-block-list">
<li>What went well this year?</li>



<li>What did I learn?</li>



<li>What should I focus on next year?</li>
</ul>



<p>If you’re a leader, I’m guessing you rarely get this kind of thinking time during your workday. I know I don’t. Our calendars are packed with calls, team meetings, and those &#8220;quick questions” that turn into two-hour troubleshooting sessions.</p>



<p>But here&#8217;s what I&#8217;ve learned: <strong>the quality of your strategic decisions is directly tied to the quality of your thinking time.</strong></p>



<p>And thinking time doesn&#8217;t happen by accident. You have to protect it.</p>



<h3 class="wp-block-heading" id="h-what-went-well-this-year">What Went Well This Year?</h3>



<p>When I asked myself this question, I didn&#8217;t think about our biggest projects or flashiest achievements. I didn&#8217;t think about when we migrated almost 2,000 databases as part of an upgrade project. Or the performance tuning we did that resulted in a $36,000 reduction in annual Azure spend for a client. </p>



<p>Instead, I thought about the relationships we strengthened. The trust we built with clients. The problems we solved before they became crises.</p>



<p>For you, this might look like:</p>



<ul class="wp-block-list">
<li>The audit that went smoothly because your security documentation was solid</li>



<li>The successful disaster recovery test that was possible because you kept refining the process</li>



<li>The team member you mentored who&#8217;s now ready for more responsibility</li>



<li>The support resources you provided your team through a trusted partner</li>
</ul>



<p>These aren&#8217;t always the things that make it into board reports. But they&#8217;re the foundation that everything else is built on.</p>



<h3 class="wp-block-heading" id="h-what-did-i-learn">What Did I Learn?</h3>



<p>This year reminded me of something Eisenhower once said: <strong>&#8220;Plans are worthless, but planning is everything.&#8221;</strong></p>



<p>The need for planning cannot be overstated. It&#8217;s critical. Even if the plan doesn&#8217;t always work out the way you intended. </p>



<p><strong>The plan itself wasn&#8217;t the point. The thinking I did while creating the plan was the point.</strong></p>



<p>Because I’d thought through our capacity, our ideal client profile, and our service delivery model, I could adjust quickly when reality didn’t match my spreadsheet. I knew which opportunities were a good fit for us and which ones to let go. Because we’ve intentionally built a small but incredibly talented team that genuinely wants to see our clients succeed, we were able to identify and create ways to help them.</p>



<p>I watched the same dynamic play out with clients. The institutions that had documented their SQL Server environments, tested their disaster recovery plans, and mapped their compliance requirements adapted quickly when needed. They were positioned for success even when the unexpected happened.</p>



<p>Planning isn&#8217;t about predicting the future. It&#8217;s about <strong>building the muscle memory to respond when the future surprises you.</strong></p>



<p>What did you learn this year about planning and adapting? Maybe it was:</p>



<ul class="wp-block-list">
<li>That your three-year technology roadmap needs quarterly reviews, not just annual ones</li>



<li>That the disaster recovery plan sitting in a SharePoint folder isn&#8217;t the same as a tested DR plan</li>



<li>That &#8220;we&#8217;ll address that next quarter&#8221; eventually becomes &#8220;why didn&#8217;t we address this sooner?&#8221;</li>



<li>That having an expert on call beats having a plan to find an expert when something breaks</li>
</ul>



<p>These lessons matter. Write them down. They&#8217;re not just hindsight—they&#8217;re your blueprint for better decisions ahead.</p>



<h3 class="wp-block-heading" id="h-what-should-i-focus-on-next-year">What Should I Focus On Next Year?</h3>



<p>For me, the answer was clear: <strong>I need to help more financial institutions and healthcare organizations understand that they have options.</strong> Most CIOs think they have two choices for database management: hire a full-time DBA (expensive and hard to find) or make do with whoever can &#8220;figure it out&#8221; (risky and unsustainable).</p>



<p>There&#8217;s a third option: fractional DBA services that give you expert oversight without the full-time price tag. </p>



<p>For you, your focus might be different. Maybe it&#8217;s:</p>



<ul class="wp-block-list">
<li>Finally getting your SQL Server environment documented and audit-ready</li>



<li>Building a disaster recovery plan that you&#8217;ve actually tested</li>



<li>Move a little further along the <a href="https://theserogroup.com/data-strategy/sql-server-maturity-curve-how-banks-move-from-reactive-risk-to-strategic-advantage/">SQL Server Maturity Curve</a></li>



<li>Finding a partner who understands banking compliance, not just databases</li>
</ul>



<p>Whatever it is, the key is to actually choose something. Not everything. Something. And move toward it. Make progress.</p>



<h3 class="wp-block-heading" id="h-the-power-of-quiet-reflection">The Power of Quiet Reflection</h3>



<p>Here&#8217;s the thing about those early Saturday morning moments: they&#8217;re rare. And precious. </p>



<p>During the week, we’re in execution mode. We’re responding, reacting, solving, and fixing. That’s necessary work. But it’s not strategic work.</p>



<p>Strategic work requires space. It requires stepping back from the urgent to focus on the important.</p>



<p>So, here&#8217;s my challenge to you as we wind down 2025 and usher in the new year:</p>



<h3 class="wp-block-heading" id="h-block-off-time-just-to-think-then-protect-it">Block Off Time Just to Think, Then Protect It</h3>



<p>Maybe it&#8217;s Saturday mornings before your family wakes up. Maybe it&#8217;s a long walk at lunch. Maybe it&#8217;s 90 minutes with your calendar blocked and your office door closed. </p>



<p>Whatever it is, protect it. The decisions you make during that quiet time about where to focus, what risks to address, and which partnerships to invest in will help shape your entire year.</p>



<h3 class="wp-block-heading" id="h-your-turn">Your Turn</h3>



<p>As you think about the year ahead, I&#8217;d encourage you to ask yourself those three questions:</p>



<ol class="wp-block-list">
<li>What went well this year? Celebrate it. Learn from it.</li>



<li>What did I learn? Write it down. It&#8217;s wisdom you paid for.</li>



<li>What should I focus on next year? Pick one or two things. Not everything.</li>
</ol>



<p>And if one of those focus areas is &#8220;finally get our SQL Server environment to a place where I&#8217;m confident, not just hopeful,&#8221; let&#8217;s talk. That&#8217;s exactly what we help institutions do.</p>



<p>If you&#8217;re a CIO wondering whether your SQL Server environment is as healthy and secure as it should be, I&#8217;d be happy to have a conversation. No sales pitch. Just two people talking candidly about database management. <a href="https://theserogroup.com/contact-us/" target="_blank" rel="noreferrer noopener">Schedule a time here</a>.</p>
<p>The post <a href="https://theserogroup.com/azure/why-quiet-reflection-leads-to-better-it-strategy-decisions/">Why Quiet Reflection Leads to Better IT Strategy Decisions</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7691</post-id>	</item>
		<item>
		<title>Creating a Culture of Observability in SQL Server, Even Without a Full-Time DBA</title>
		<link>https://theserogroup.com/sql-server/creating-a-culture-of-observability-in-sql-server-even-without-a-full-time-dba/</link>
		
		<dc:creator><![CDATA[Joe Webb]]></dc:creator>
		<pubDate>Wed, 04 Jun 2025 12:00:07 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Security]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=7491</guid>

					<description><![CDATA[<p>If you&#8217;re leading an IT team without a dedicated DBA, you&#8217;re not alone. Many small- to mid-sized organizations rely on a sysadmin or developer to “keep SQL Server running.” While that can work for a while, it often leaves teams blindsided when something breaks suddenly—or worse, when something breaks slowly. This is why it&#8217;s important&#8230; <br /> <a class="read-more" href="https://theserogroup.com/sql-server/creating-a-culture-of-observability-in-sql-server-even-without-a-full-time-dba/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/sql-server/creating-a-culture-of-observability-in-sql-server-even-without-a-full-time-dba/">Creating a Culture of Observability in SQL Server, Even Without a Full-Time DBA</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>If you&#8217;re leading an IT team without a dedicated DBA, you&#8217;re not alone. Many small- to mid-sized organizations rely on a sysadmin or developer to “keep SQL Server running.” While that can work for a while, it often leaves teams blindsided when something breaks suddenly—or worse, when something breaks slowly. This is why it&#8217;s important to proactively create a culture of observability.</p>



<p>Observability isn’t just about having monitoring tools. Monitoring tools cannot replace a good DBA. Observability is about building a culture where your team is aware of what’s happening in your SQL Server environment, can spot issues early, and feels confident responding to them.</p>



<p>Here are some things you can do today to start building that culture of observability in your SQL Server environment, even if you don’t have a full-time DBA.</p>



<h3 class="wp-block-heading" id="h-1-know-what-you-re-working-with">1. Know What You&#8217;re Working With</h3>



<p>If you don’t already have one, list all the SQL Servers in your environment. Then, do a quick health check on each one to determine their status. </p>



<p>Start with these four steps:</p>



<ol class="wp-block-list">
<li>Get a list of all your production and lower-level SQL Servers.</li>



<li>Make sure your backups are working.</li>



<li>Check the integrity of your databases.</li>



<li>Determine your SQL Server version and patch levels.</li>
</ol>



<p>For more information, see <a href="https://theserogroup.com/sql-server/working-without-a-sql-server-dba-do-these-10-things-now/" target="_blank" rel="noreferrer noopener">Working Without A SQL Server DBA? Do These 10 Things Now</a>.</p>



<h3 class="wp-block-heading" id="1knowwhatnormallookslike">2. Know What “Normal” Looks Like</h3>



<p>You can’t catch problems if you don’t know what healthy looks like. Start by tracking a few key SQL Server metrics:</p>



<ul class="wp-block-list">
<li>CPU usage&nbsp;</li>



<li>Buffer cache hits and PLE</li>



<li>Disk I/O latency and throughput</li>



<li>Wait stats</li>



<li>Number of concurrent users</li>



<li>Batch Requests/sec</li>



<li>Transactions/sec</li>



<li>SQL Errors</li>
</ul>



<p>Even a simple baseline can help your team recognize when something’s off. Tools like SQL Server Management Studio (SSMS), built-in reports, or lightweight third-party monitoring tools can help you get started. You can query the Dynamic Management Views (DMVs) for a lot of this information.</p>



<h3 class="wp-block-heading" id="2makemonitoringasharedresponsibility">3. Make Monitoring a Shared Responsibility</h3>



<p>If you don’t have a DBA, observability has to be a team sport. Encourage your sysadmin or developer to think beyond “Is the server up?” and ask:</p>



<ul class="wp-block-list">
<li>Are backups running and restorable?</li>



<li>When was the last time an integrity check was run?</li>



<li>Are there long-running queries or blocking issues?</li>



<li>Are we seeing unusual growth in database size?</li>
</ul>



<p>Build a habit of checking these things regularly, not just when something breaks or when users are complaining.</p>



<h3 class="wp-block-heading" id="3keepitsimpleandvisible">4. Keep It Simple (and Visible)</h3>



<p>You don’t have to have a complex monitoring stack to be effective. Start with what you have. Set up email alerts for failed jobs. Schedule maintenance jobs and verify they&#8217;re completed successfully. Run the benchmarking queries from Step 2 and monitor the results over time.</p>



<p>Create a shared dashboard with key metrics. Review it in your weekly team meeting.</p>



<p>The goal isn’t perfection. It’s awareness and visibility. It&#8217;s observability. </p>



<h3 class="wp-block-heading" id="4encouragecuriosity">5. Encourage Curiosity</h3>



<p>When someone on your team asks, “Why did this query suddenly slow down?”, encourage them to dig deeper. Give them the time and space to investigate. (Just make sure they use trusted sources—be careful downloading scripts from the internet!)</p>



<p>Curiosity is the foundation of observability. Make time to dig into odd behavior, even if it’s not urgent. That’s how you build a team that’s proactive, not reactive.</p>



<h2 class="wp-block-heading" id="5knowwhentoaskforhelp">Know When (and Who) to Ask for Help</h2>



<p>If your team doesn’t have the time or expertise to interpret what they’re seeing, important issues may be overlooked. That’s where we come in.</p>



<p>We help IT leaders like you make SQL Server environments more secure, reliable, and observable without the overhead of hiring a full-time DBA. Whether you need help setting up monitoring, tuning performance, or just knowing what to look for, we can help.</p>



<p><a href="https://theserogroup.com/contact-us/" target="_blank" rel="noreferrer noopener">Schedule a discovery call</a>, and let&#8217;s talk.</p>
<p>The post <a href="https://theserogroup.com/sql-server/creating-a-culture-of-observability-in-sql-server-even-without-a-full-time-dba/">Creating a Culture of Observability in SQL Server, Even Without a Full-Time DBA</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7491</post-id>	</item>
		<item>
		<title>The Costs of Undermanaged SQL Servers for Financial Institutions</title>
		<link>https://theserogroup.com/sql-server/the-costs-of-undermanaged-sql-servers-for-financial-institutions/</link>
		
		<dc:creator><![CDATA[Joe Webb]]></dc:creator>
		<pubDate>Wed, 09 Apr 2025 12:00:53 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Public Speaking]]></category>
		<category><![CDATA[Script Library]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Assessment]]></category>
		<category><![CDATA[SQL Audit]]></category>
		<category><![CDATA[SQL Security]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=7299</guid>

					<description><![CDATA[<p>Banks and credit unions rely on SQL Server databases to power transactions, portals, reporting, fraud detection, and core systems. Despite this, many institutions end up undermanaging or even overlooking these critical systems. The result? Performance lags, security vulnerabilities, and unplanned downtime that can cost far more than most institutions realize. If you’re responsible for operational&#8230; <br /> <a class="read-more" href="https://theserogroup.com/sql-server/the-costs-of-undermanaged-sql-servers-for-financial-institutions/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/sql-server/the-costs-of-undermanaged-sql-servers-for-financial-institutions/">The Costs of Undermanaged SQL Servers for Financial Institutions</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Banks and credit unions rely on SQL Server databases to power transactions, portals, reporting, fraud detection, and core systems. Despite this, many institutions end up undermanaging or even overlooking these critical systems. The result? Performance lags, security vulnerabilities, and unplanned downtime that can cost far more than most institutions realize. </p>



<p>If you’re responsible for operational stability, data integrity, or risk, it’s essential to understand the impact of undermanaged SQL Servers. Read on to discover the biggest issues—and how to prevent them <em>before </em>they cause problems. We&#8217;ll also show you how to build a strong business case for proactive SQL Server management.</p>



<h2 class="wp-block-heading" id="h-three-biggest-liabilities-of-undermanaged-sql-servers">Three Biggest Liabilities of Undermanaged SQL Servers</h2>



<h3 class="wp-block-heading" id="h-1-downtime-is-costly-and-more-common-than-you-may-think"><strong>1. Downtime Is Costly—and More Common Than You May Think</strong></h3>



<p>Let’s start with the hard numbers. In the financial services industry, the average cost of IT downtime is estimated at <a href="https://agio.com/cost-of-downtime-for-investment-management-leaders/" target="_blank" rel="noreferrer noopener">$9,000 per minute for larger institutions</a>. While community banks and credit unions may not hit that number, even smaller outages can disrupt transaction processing, customer support, and access to critical data—leading to lost revenue and reputational damage.</p>



<p><a href="https://www.infosecurity-magazine.com/news/destructive-attacks-banks-surge-13/?utm_source=chatgpt.com" target="_blank" rel="noreferrer noopener">Infosecurity Magazine recently reported a study from Contrast Security</a> that indicated that over half (54%) of global financial institutions experienced cyberattacks in the past year where data was destroyed by adversaries. </p>



<p>More tellingly, a <a href="https://datacenter.uptimeinstitute.com/rs/711-RIA-145/images/AnnualOutageAnalysis2023.03092023.pdf" target="_blank" rel="noreferrer noopener">2023 Uptime Institute report</a> found that over one-third of data center outages across all industries stemmed from system and software issues—many of which are database-related. These are not rare events. They’re happening every day in organizations that don’t have a dedicated plan for monitoring and managing their SQL Servers.</p>



<h3 class="wp-block-heading" id="h-2-security-threats-are-rising-and-databases-are-a-target"><strong>2. Security Threats Are Rising—and Databases Are a Target</strong></h3>



<p>As financial institutions increase their digital footprint, SQL Servers become even more attractive to cybercriminals. In 2024, the average cost of a data breach in the financial sector rose to $6.08 million, <a href="https://bankingjournal.aba.com/2024/08/report-average-data-breach-cost-for-financial-sector-tops-6m/" target="_blank" rel="noreferrer noopener">according to industry research reported in the ABA Banking Journal</a>. That’s a 22% premium over the global average, reflecting the high value of financial data and the regulatory scrutiny that follows a breach.</p>



<p>Unpatched SQL Server instances, misconfigured access controls, and lack of encryption are all common vulnerabilities in unmanaged environments. Bad actors know this, and they exploit it.</p>



<p>Without regular audits, patching schedules, and proactive security monitoring, your institution could be one missed update away from its next major incident.</p>



<h3 class="wp-block-heading" id="h-3-performance-issues-impact-productivity-and-customer-experience"><strong>3. Performance Issues Impact Productivity and Customer Experience</strong></h3>



<p>An unmanaged SQL Server environment doesn’t just create security risks; it can slow down your business. Query bottlenecks, deadlocks, resource contention, and stale indexing strategies can cripple performance over time.</p>



<p>For your internal teams, this means longer wait times for reports and slower access to operational systems. For customers, it can mean delays in processing payments, loan applications, or online transactions. </p>



<p>Each delay has the potential to damage your reputation with your customers and to frustrate your team. Aren&#8217;t you tired of hearing, “I’m sorry, my computer is just slow today,” when you’re trying to get something done over the phone?</p>



<h2 class="wp-block-heading" id="h-there-s-real-roi-in-proactive-sql-server-management">There’s Real ROI in Proactive SQL Server Management</h2>



<p>The risks and the costs are clear. But that&#8217;s not the end of the story. </p>



<p>The upside is just as compelling. Here are some key benefits of a properly managed SQL Server estate.</p>



<h3 class="wp-block-heading" id="h-enhanced-performance">Enhanced Performance</h3>



<ul class="wp-block-list">
<li><strong>Optimized Queries:</strong>&nbsp;Properly tuned SQL queries execute faster, leading to quicker application response times and improved user experience.&nbsp;</li>



<li><strong>Efficient Resource Utilization:</strong>&nbsp;Monitoring and managing resources like CPU, memory, and disk I/O prevent bottlenecks and ensure optimal performance.&nbsp;</li>



<li><strong>Database Optimization:</strong>&nbsp;Indexing, partitioning, and other optimization techniques improve data access speed and reduce query execution time.&nbsp;</li>
</ul>



<h3 class="wp-block-heading" id="h-reduced-costs">Reduced Costs:</h3>



<ul class="wp-block-list">
<li><strong>Resource Optimization:</strong>&nbsp;By identifying and addressing performance issues, you can optimize resource utilization and potentially reduce hardware costs.&nbsp;</li>



<li><strong>Lower Downtime:</strong>&nbsp;Proactive maintenance and monitoring minimize downtime, reducing business disruption and associated costs.&nbsp;</li>



<li><strong>Improved Security:</strong>&nbsp;Strong security measures prevent data breaches and compliance issues, which can result in significant financial penalties.&nbsp;</li>
</ul>



<h3 class="wp-block-heading" id="h-improved-data-management">Improved Data Management:</h3>



<ul class="wp-block-list">
<li><strong>Data Integrity:</strong>&nbsp;Proper backup and recovery procedures ensure data integrity and prevent data loss.&nbsp;</li>



<li><strong>Compliance:</strong>&nbsp;Meeting regulatory requirements and industry standards reduces the risk of penalties and legal issues.&nbsp;</li>



<li><strong>Data-Driven Decisions:</strong>&nbsp;Access to accurate and timely data enables better decision-making and improved business outcomes.&nbsp;</li>
</ul>



<h2 class="wp-block-heading" id="h-what-proactive-sql-server-management-looks-like"><strong>What Proactive SQL Server Management Looks Like</strong></h2>



<p>Proactive management isn’t just about reacting to alerts—it’s about preventing problems before they start. This includes:</p>



<ul class="wp-block-list">
<li>Proactive Daily Health Checks </li>



<li>Regularly reviewing SQL Server and Windows log files</li>



<li>Real-time monitoring and alerting</li>



<li>Regular performance tuning and index optimization</li>



<li>Patch management</li>



<li>Vulnerability scanning</li>



<li>Secure access controls and encryption enforcement</li>



<li>Backup validation and disaster recovery planning</li>



<li>Monthly or quarterly health checks and reporting</li>



<li>Annual <a href="https://www.cisecurity.org/" target="_blank" rel="noreferrer noopener">Center for Internet Security (CIS)</a> Benchmark Assessments</li>
</ul>



<p>Whether you manage your servers in-house or partner with a specialized team like The SERO Group, having a defined strategy can reduce your operational risk while maximizing the value of your technology investments.</p>



<h2 class="wp-block-heading" id="h-the-bottom-line-proactive-sql-server-management-is-a-sound-investment"><strong>The Bottom Line: Proactive SQL Server Management is a Sound Investment</strong></h2>



<p>Your SQL Servers are too important to be treated as set-it-and-forget-it infrastructure. As regulatory pressures grow and customer expectations rise, your institution needs systems that are healthy, secure, and reliable.</p>



<p>By investing in professional SQL Server management, financial institutions can reduce downtime, strengthen cybersecurity, and improve performance—while freeing internal teams to focus on their primary duties.</p>



<p>Don’t wait for a breach or a breakdown to take action. Make your SQL Server estate&#8217;s health and resilience a strategic priority. </p>



<p>Want to learn more about how The SERO Group helps financial institutions keep their SQL Servers healthy, secure, and reliable? <a href="https://theserogroup.com/contact-us/" target="_blank" rel="noreferrer noopener">Schedule a no-obligation discovery call</a>. </p>



<p>Learn more about our: </p>



<ul class="wp-block-list">
<li><a href="https://theserogroup.com/sql-server-cis-benchmarks-assessment/">SQL Server CIS® Benchmarks™ Assessment</a></li>



<li><a href="https://theserogroup.com/sql-health-check/">SQL Server Health Check</a></li>
</ul>
<p>The post <a href="https://theserogroup.com/sql-server/the-costs-of-undermanaged-sql-servers-for-financial-institutions/">The Costs of Undermanaged SQL Servers for Financial Institutions</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7299</post-id>	</item>
		<item>
		<title>How to Build SQL Server FCIs in AWS with Multi-Attach EBS Volumes</title>
		<link>https://theserogroup.com/sql-server/how-to-build-sql-server-fcis-in-aws-with-multi-attach-ebs-volumes/</link>
		
		<dc:creator><![CDATA[Luke Campbell]]></dc:creator>
		<pubDate>Wed, 18 Dec 2024 13:00:00 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Clustering]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=6945</guid>

					<description><![CDATA[<p>Need to build a SQL Server FCI in AWS but prefer not to use FSx for Windows File Server? Good news, you have other options. One option that more closely aligns with traditional FCIs that use shared disks is Multi-Attach EBS volumes. Multi-Attach EBS volumes in AWS enable organizations to use Windows Server Failover Clusters&#8230; <br /> <a class="read-more" href="https://theserogroup.com/sql-server/how-to-build-sql-server-fcis-in-aws-with-multi-attach-ebs-volumes/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/sql-server/how-to-build-sql-server-fcis-in-aws-with-multi-attach-ebs-volumes/">How to Build SQL Server FCIs in AWS with Multi-Attach EBS Volumes</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Need to build a SQL Server FCI in AWS but prefer not to use FSx for Windows File Server?  Good news, you have other options.  One option that more closely aligns with traditional FCIs that use shared disks is Multi-Attach EBS volumes.</p>



<p>Multi-Attach EBS volumes in AWS enable organizations to use Windows Server Failover Clusters with shared storage. Attaching a single EBS (Elastic Block Store) to multiple EC2 instances simultaneously makes them ideal for SQL Server FCIs.</p>



<h2 class="wp-block-heading" id="h-what-are-multi-attach-ebs-volumes">What are Multi-Attach EBS Volumes?</h2>



<p>These EBS volumes are single Elastic Block Store volumes that can be attached to multiple EC2 instances.  The feature is available for io1 and io2 Block Express volumes.  However, Windows instances only support io2 Block Express volumes.  Multi-Attach facilitates high availability and seamless failover for SQL Server FCIs (similar to how they operate on-premises).  </p>



<h2 class="wp-block-heading" id="h-prerequisites">Prerequisites</h2>



<p>Before setting up these volumes for SQL Server FCIs, ensure the following prerequisites are met:</p>



<h3 class="wp-block-heading" id="h-1-ec2-instances-in-the-same-availability-zone">1. EC2 Instances in the same Availability Zone</h3>



<p>All EC2 instances that will attach to the EBS volume must reside within the same AZ.  This ensures low latency and high throughput between the instances and the EBS volume.  This is critical for maintaining performance and reliability in a failover scenario.</p>



<h3 class="wp-block-heading" id="h-2-supported-ebs-volume-types">2. Supported EBS Volume Types</h3>



<p>While both io1 and io2 Block Express volumes support the Multi-Attach option, Windows instances only support io2 Block Express volumes.  This limitation is due to the enhanced performance and features that io2 Block Express provides.</p>



<h3 class="wp-block-heading" id="h-3-regional-availability-of-io2-block-express-volumes">3. Regional Availability of io2 Block Express Volumes</h3>



<p>Verify that io2 Block Express Volumes are available in your AWS region.  Not all regions may support this volume type, so review the <strong><a href="https://docs.aws.amazon.com/ebs/latest/userguide/provisioned-iops.html">Amazon EBS Provisioned IOPS SSD volumes</a></strong> user guide to confirm availability.</p>



<h3 class="wp-block-heading" id="h-4-additional-networking-and-vpc-configurations">4. Additional Networking and VPC Configurations</h3>



<p>While this post focuses on EBS Multi-Attach, ensure that your networking and VPC configurations meet the requirements for setting up a Windows Server Failover Cluster.  See this <a href="https://aws.amazon.com/blogs/modernizing-with-aws/how-to-deploy-a-sql-server-failover-cluster-with-amazon-ebs-multi-attach-on-windows-server/#:~:text=In%20this%20blog%20post%2C%20we%E2%80%99ll%20walk%20you%20through,Multi-Attach%20on%20io2%20volumes%20with%20persistent%20reservations%20feature.">link</a> to review the full list of prerequisites for WSFC.</p>



<h2 class="wp-block-heading" id="h-io2-block-express-volumes">io2 Block Express Volumes</h2>



<p>These volumes offer the highest-performance block storage.  Key features include:</p>



<ul class="wp-block-list">
<li><strong>Capacity: </strong>Ranges from 4 GB to 64 TB, accommodating various workloads.</li>



<li><strong>Performance:</strong>
<ul class="wp-block-list">
<li><strong>IOPS: </strong>Up to 256,000 IOPS per volume.</li>



<li><strong>Throughput: </strong>Maximum throughput of 4 GB/s per volume</li>
</ul>
</li>
</ul>



<p>These high-performance metrics make io2 Block Express volumes ideal for demanding SQL Server workloads, especially those requiring rapid data access and high transaction rates.</p>



<h3 class="wp-block-heading" id="h-compatibility">Compatibility</h3>



<p>io2 Block Express volumes are available on all <strong><a href="https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html">Nitro-based EC2</a></strong> instances.  The AWS Nitro system is a collection of hardware and software components designed to provide enhanced security, performance, and flexibility for EC2 instances.  </p>



<h2 class="wp-block-heading" id="h-enabling-multi-attach-for-ebs-volumes">Enabling Multi-Attach for EBS Volumes</h2>



<p>By default, this option is disabled but simple to enable. See this <a href="https://docs.aws.amazon.com/ebs/latest/userguide/working-with-multi-attach.html">link</a> for instructions on using the AWS Console or Command-Line.</p>



<h2 class="wp-block-heading" id="h-want-to-work-with-the-sero-group">Want to work with The SERO Group?</h2>



<p>Want to learn more about how The SERO Group helps organizations take the guesswork out of managing their SQL Servers? <a href="https://theserogroup.com/contact-us/" target="_blank" rel="noreferrer noopener">Schedule a no-obligation discovery call</a>&nbsp;with us to get started.</p>
<p>The post <a href="https://theserogroup.com/sql-server/how-to-build-sql-server-fcis-in-aws-with-multi-attach-ebs-volumes/">How to Build SQL Server FCIs in AWS with Multi-Attach EBS Volumes</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6945</post-id>	</item>
		<item>
		<title>Basic Availability Groups: Affordable High Availability with Key Limitations</title>
		<link>https://theserogroup.com/sql-server/basic-availability-groups-affordable-high-availability-with-key-limitations/</link>
		
		<dc:creator><![CDATA[Luke Campbell]]></dc:creator>
		<pubDate>Thu, 19 Sep 2024 19:00:00 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Public Speaking]]></category>
		<category><![CDATA[Script Library]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[Shared Disks]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Assessment]]></category>
		<category><![CDATA[SQL Audit]]></category>
		<category><![CDATA[SQL Events]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=6532</guid>

					<description><![CDATA[<p>In SQL Server 2022, Basic Availability Groups provide a limited, cost-effective solution for high availability and disaster recovery in the Standard Edition. However, they have several limitations when compared to a standard Availability Group in the Enterprise Edition. Although Basic AGs were introduced before SQL Server 2022, we&#8217;ll focus strictly on the latest version. Let&#8217;s&#8230; <br /> <a class="read-more" href="https://theserogroup.com/sql-server/basic-availability-groups-affordable-high-availability-with-key-limitations/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/sql-server/basic-availability-groups-affordable-high-availability-with-key-limitations/">Basic Availability Groups: Affordable High Availability with Key Limitations</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In SQL Server 2022, Basic Availability Groups provide a limited, cost-effective solution for high availability and disaster recovery in the Standard Edition. However, they have several limitations when compared to a standard Availability Group in the Enterprise Edition.</p>



<p>Although Basic AGs were introduced before SQL Server 2022, we&#8217;ll focus strictly on the latest version.</p>



<p>Let&#8217;s review the requirements and limitations.</p>



<h2 class="wp-block-heading" id="h-requirements-and-limitations">Requirements and Limitations</h2>



<h3 class="wp-block-heading" id="h-sql-server-edition-and-version"><strong>SQL Server Edition and Version</strong>:</h3>



<ul class="wp-block-list">
<li>Standard Edition: Both the primary and secondary replicas must be running SQL Server 2022 Standard Edition. Basic Availability Groups are unavailable in the Express, Web, or Enterprise editions.</li>



<li>Same Version: Ideally, all replicas should be running the same build of SQL Server 2022.</li>
</ul>



<p>Verify the version by running <em>SELECT @@VERSION</em>. In the screenshot below, you can see which update has been applied and the SQL Server version and edition.</p>



<figure class="wp-block-image size-large is-resized"><a href="https://theserogroup.com/wp-content/uploads/2024/09/image.png"><img fetchpriority="high" decoding="async" width="1024" height="157" src="https://theserogroup.com/wp-content/uploads/2024/09/image-1024x157.png" alt="" class="wp-image-6534" style="width:841px;height:auto" srcset="https://theserogroup.com/wp-content/uploads/2024/09/image-1024x157.png 1024w, https://theserogroup.com/wp-content/uploads/2024/09/image-300x46.png 300w, https://theserogroup.com/wp-content/uploads/2024/09/image-768x118.png 768w, https://theserogroup.com/wp-content/uploads/2024/09/image-1536x236.png 1536w, https://theserogroup.com/wp-content/uploads/2024/09/image-2048x315.png 2048w, https://theserogroup.com/wp-content/uploads/2024/09/image-1920x295.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading" id="h-windows-server-failover-clustering-wsfc"><strong>Windows Server Failover Clustering (WSFC):</strong></h3>



<ul class="wp-block-list">
<li>Cluster Configuration: A Windows Server Failover Cluster must be configured. All nodes participating in the Basic Availability Group must be members of the same WSFC.</li>



<li>Operating System: The servers must be running a Windows Server version that supports failover clustering (e.g., Windows Server 2019 or 2022 recommended).</li>



<li>Domain Membership: All nodes must be members of the same Active Directory domain or trusted domains.</li>
</ul>



<p>In our example, we have a two-node WSFC cluster using Windows Server 2022 Standard Edition.</p>



<figure class="wp-block-image size-large"><a href="https://theserogroup.com/wp-content/uploads/2024/09/image-1.png"><img decoding="async" width="1024" height="262" src="https://theserogroup.com/wp-content/uploads/2024/09/image-1-1024x262.png" alt="" class="wp-image-6536" srcset="https://theserogroup.com/wp-content/uploads/2024/09/image-1-1024x262.png 1024w, https://theserogroup.com/wp-content/uploads/2024/09/image-1-300x77.png 300w, https://theserogroup.com/wp-content/uploads/2024/09/image-1-768x197.png 768w, https://theserogroup.com/wp-content/uploads/2024/09/image-1.png 1414w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading" id="h-network-requirements"><strong>Network Requirements:</strong></h3>



<ul class="wp-block-list">
<li>Connectivity: Reliable network connections between the replicas are essential.</li>



<li>Name Resolution: A proper DNS setup for name resolution between nodes is preferred.</li>



<li>Static IPs: It&#8217;s highly recommended all replicas utilize static IP addresses vs. DHCP-assigned IPs.</li>
</ul>



<h3 class="wp-block-heading" id="h-database-requirements"><strong>Database Requirements:</strong></h3>



<ul class="wp-block-list">
<li>Full Recovery Model: The database to be included in the Basic Availability Group must use the Full recovery model.</li>



<li>Single Database Support: Basic Availability Groups support only one user database per group.</li>



<li>Initialization: The database must be initialized on the secondary replica using a full backup and transaction log backups. Automatic seeding can be used as well.</li>
</ul>



<h3 class="wp-block-heading" id="h-replica-limitations"><strong>Replica Limitations:</strong></h3>



<ul class="wp-block-list">
<li>Number of Replicas: Only two replicas are supported. One primary and one secondary.</li>



<li>Secondary Replica Limitations
<ul class="wp-block-list">
<li>Non-Readable: The secondary replica is not accessible for read operations.</li>



<li>No backups: You cannot perform backups on the secondary replica.</li>



<li>Synchronous Commit: To support automatic failover, Availability Mode must be set to synchronous commit. This is also a requirement for standard Availability Groups.</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-large"><a href="https://theserogroup.com/wp-content/uploads/2024/09/image-2.png"><img decoding="async" width="1024" height="958" src="https://theserogroup.com/wp-content/uploads/2024/09/image-2-1024x958.png" alt="" class="wp-image-6537" srcset="https://theserogroup.com/wp-content/uploads/2024/09/image-2-1024x958.png 1024w, https://theserogroup.com/wp-content/uploads/2024/09/image-2-300x281.png 300w, https://theserogroup.com/wp-content/uploads/2024/09/image-2-768x719.png 768w, https://theserogroup.com/wp-content/uploads/2024/09/image-2-1154x1080.png 1154w, https://theserogroup.com/wp-content/uploads/2024/09/image-2.png 1402w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading" id="h-licensing"><strong>Licensing:</strong></h3>



<ul class="wp-block-list">
<li>Proper Licensing: Ensure that all SQL Server instances are properly licensed under Microsoft&#8217;s licensing terms for high-availability setups. See Microsoft&#8217;s licensing documentation for full details (<a href="https://www.microsoft.com/en-us/sql-server/sql-server-2022-pricing?msockid=3982f2b2d9326c420161e11ed8526d16">SQL Server 2022—Pricing | Microsoft</a>).</li>
</ul>



<h3 class="wp-block-heading" id="h-permissions-and-roles"><strong>Permissions and Roles:</strong></h3>



<ul class="wp-block-list">
<li>Service Accounts: To reduce complexity, it&#8217;s recommended to use the same SQL Server service account on both replicas. Consider using group managed service accounts for further simplification.</li>



<li>Firewall Settings: Configure Windows Firewall to allow communication between the replicas on the required ports (default is TCP port 5022).</li>
</ul>



<h3 class="wp-block-heading" id="h-endpoint-configuration"><strong>Endpoint Configuration:</strong></h3>



<ul class="wp-block-list">
<li>Database Mirroring Endpoint: This must be configured on each replica for data synchronization. If using the wizard in SSMS, the endpoint is created and configured.</li>
</ul>



<h3 class="wp-block-heading" id="h-quorum-configuration"><strong>Quorum Configuration:</strong></h3>



<ul class="wp-block-list">
<li>Proper quorum configuration is essential to maintain cluster health and support automatic failover.  This is done within the WSFC.</li>
</ul>



<h2 class="wp-block-heading" id="h-summary-of-limitations">Summary of Limitations</h2>



<ul class="wp-block-list">
<li>Single Database Limitation: Only one database can be included in a Basic Availability Group.</li>



<li>Limited to Two Replicas: Only one primary and one secondary replica are allowed.</li>



<li>No Read-Scale Capabilities: Unlike Availability Groups in Enterprise Edition, Basic Availability Groups do not support readable secondary replicas.</li>



<li>No Backup Offloading: Backups cannot be performed on the secondary replica.</li>
</ul>



<h2 class="wp-block-heading" id="h-conclusion">Conclusion</h2>



<p>Basic Availability Groups can fill the gap if your environment doesn&#8217;t support a WSFC with the shared disk. However, due to their limitation of supporting only one database, ongoing management of multiple Basic AGs may not be ideal. For example, I&#8217;d still use a failover clustered instance if any of the following were true:</p>



<ul class="wp-block-list">
<li>SQL Server Standard Edition is used.</li>



<li>Not spanning multiple data centers.</li>



<li>The environment allows for the use of shared disks between machines.</li>
</ul>



<h2 class="wp-block-heading" id="h-want-to-work-with-the-sero-group">Want to work with The SERO Group?</h2>



<p>Want to learn more about how The SERO Group helps organizations take the guesswork out of managing their SQL Servers? <a href="https://theserogroup.com/contact-us/" target="_blank" rel="noreferrer noopener">Schedule a no-obligation discovery call</a>&nbsp;with us to get started.</p>
<p>The post <a href="https://theserogroup.com/sql-server/basic-availability-groups-affordable-high-availability-with-key-limitations/">Basic Availability Groups: Affordable High Availability with Key Limitations</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6532</post-id>	</item>
		<item>
		<title>Streamline SQL Server Management with Contained Availability Groups</title>
		<link>https://theserogroup.com/sql-server/streamline-failovers-with-contained-availability-groups/</link>
		
		<dc:creator><![CDATA[Luke Campbell]]></dc:creator>
		<pubDate>Wed, 14 Aug 2024 12:00:00 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[Public Speaking]]></category>
		<category><![CDATA[Script Library]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Events]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=6449</guid>

					<description><![CDATA[<p>SQL Server Availability Groups can present challenges after a failover, such as missing logins, outdated passwords, or absent SQL Server Agent jobs. Some clients address these issues by requiring the primary replica to remain on the same instance. If a failover occurs due to an outage or patching, they generally request to revert the AG&#8230; <br /> <a class="read-more" href="https://theserogroup.com/sql-server/streamline-failovers-with-contained-availability-groups/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/sql-server/streamline-failovers-with-contained-availability-groups/">Streamline SQL Server Management with Contained Availability Groups</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>SQL Server Availability Groups can present challenges after a failover, such as missing logins, outdated passwords, or absent SQL Server Agent jobs. Some clients address these issues by requiring the primary replica to remain on the same instance. If a failover occurs due to an outage or patching, they generally request to revert the AG back to the original primary replica, where all the scheduled jobs and logins are located. Microsoft introduced Contained Availability Groups with the release of SQL Server 2022 Enterprise Edition to help alleviate some of these problems.</p>



<h2 class="wp-block-heading" id="h-what-are-contained-availability-groups">What are contained Availability Groups?</h2>



<p>Contained AGs enhance the traditional Availability Groups (AGs) introduced in SQL Server 2012. CAGs include user databases and the associated server objects, such as logins, permissions, and SQL Server Agent jobs. Contained AGs automatically sync these objects across replicas. This saves the DBA from having to manually make these changes.</p>



<h2 class="wp-block-heading" id="h-key-benefits-of-contained-ags">Key benefits of contained AGs</h2>



<p><strong>Ease of Management:</strong> Contained AGs bundle both databases and associated instance-level objects, simplifying management. This especially simplifies managing complex environments in which an application depends on resources outside of the database replica. Before CAGs, the synchronization of these objects required home-grown solutions using T-SQL and/or PowerShell.</p>



<p><strong>Seamless Failover: </strong>With traditional AGs, failover could sometimes result in missing instance-level objects, leading to broken applications. CAGs ensure that all necessary objects are included within the group, providing a seamless failover experience.</p>



<h2 class="wp-block-heading" id="h-getting-started">Getting started</h2>



<p>To get started, you&#8217;ll need:</p>



<ul class="wp-block-list">
<li>A Windows Server Failover Cluster (preferably Windows Server 2022) with at least two nodes.</li>



<li>SQL Server 2022 Enterprise Edition. Developer Edition works for testing purposes.</li>
</ul>



<p>Additionally, the following resources can be used as a guide for building your contained AG:</p>



<ul class="wp-block-list">
<li><a href="https://www.mssqltips.com/sqlservertip/7523/sql-server-contained-availability-groups-configuration/">SQL Server Contained Availability Groups Configuration (mssqltips.com)</a></li>



<li><a href="https://learn.microsoft.com/en-us/sql/database-engine/availability-groups/windows/contained-availability-groups-overview?view=sql-server-ver16">What is a contained availability group? &#8211; SQL Server Always On | Microsoft Learn</a></li>
</ul>



<h2 class="wp-block-heading" id="h-want-to-work-with-the-sero-group">Want to work with The SERO Group?</h2>



<p>Learn how The SERO Group can simplify SQL Server management for your organization. <a href="https://theserogroup.com/contact-us/" target="_blank" rel="noreferrer noopener">Schedule a no-obligation discovery call</a> with us to get started.</p>
<p>The post <a href="https://theserogroup.com/sql-server/streamline-failovers-with-contained-availability-groups/">Streamline SQL Server Management with Contained Availability Groups</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6449</post-id>	</item>
		<item>
		<title>Availability Groups: What&#8217;s Right for Your Business?</title>
		<link>https://theserogroup.com/sql-server/availability-groups-whats-right-for-you/</link>
		
		<dc:creator><![CDATA[Luke Campbell]]></dc:creator>
		<pubDate>Wed, 19 Jun 2024 12:00:00 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[Shared Disks]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Consultant]]></category>
		<category><![CDATA[SQL Security]]></category>
		<category><![CDATA[SQL Server Consultant]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=6008</guid>

					<description><![CDATA[<p>I&#8217;ve had several companies inquire about SQL Server&#8217;s built-in high availability options over the years. This conversation usually indicates a need to ensure that their database systems remain operational and accessible with minimal downtime. But why now? They&#8217;ve been in business for years and are just now interested in HA/DR. What changed? Reasons vary, but&#8230; <br /> <a class="read-more" href="https://theserogroup.com/sql-server/availability-groups-whats-right-for-you/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/sql-server/availability-groups-whats-right-for-you/">Availability Groups: What&#8217;s Right for Your Business?</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>I&#8217;ve had several companies inquire about SQL Server&#8217;s built-in high availability options over the years.  This conversation usually indicates a need to ensure that their database systems remain operational and accessible with minimal downtime.  </p>



<p>But why now? They&#8217;ve been in business for years and are just now interested in HA/DR. What changed?</p>



<p>Reasons vary, but the following are very common:</p>



<ul class="wp-block-list">
<li>A new cyber insurance policy requiring a HA/DR or business continuity plan.</li>



<li>A need for HA/DR capability in order to create or develop a new revenue stream.</li>



<li>General curiosity due to SQL Server marketing materials.</li>



<li>A new client or business group who has asked about HA/DR.</li>



<li>Concerns raised during a recent audit.</li>



<li>Recent outage that impacted revenue.</li>
</ul>



<p>SQL Server has several options to choose from when it comes to HA/DR.  These include:</p>



<ul class="wp-block-list">
<li>Log Shipping: No automatic failover capabilities. Available on SQL Server Standard and Enterprise editions.</li>



<li>Database Mirroring: Deprecated, don&#8217;t use it in new environments.</li>



<li><a href="https://theserogroup.com/sql-server/azure-shared-disks-failover-clustered-instances/">Failover Cluster Instances</a>: Available on SQL Server Standard and Enterprise editions.
<ul class="wp-block-list">
<li><a href="https://theserogroup.com/sql-server/whats-the-difference-in-sql-server-fcis-and-ags/">What&#8217;s the Difference in SQL Server FCIs and AGs?</a></li>
</ul>
</li>



<li>Availability Groups</li>
</ul>



<p>Since you&#8217;re here to learn more about availability groups, I&#8217;ll introduce you to the two main types.</p>



<h2 class="wp-block-heading" id="h-availability-groups">Availability Groups</h2>



<p>Availability Groups were introduced in SQL Server 2012 Enterprise Edition. They provide advanced high availability and disaster recovery capabilities.</p>



<ul class="wp-block-list">
<li><strong>Edition Support: </strong>Available in SQL Server 2012 Enterprise Edition and later. FYI: Official support for SQL Server 2012 ended in 2022.</li>



<li><strong>Number of Replicas: </strong>SQL Server 2022 specs &#8211; One primary and up to 8 secondary replicas (under <a href="https://learn.microsoft.com/en-us/sql/database-engine/availability-groups/windows/availability-modes-always-on-availability-groups?view=sql-server-ver16#SupportedAvModes">asynchronous-commit mode or up to 5 can run under synchronous-commit mode</a>).</li>



<li><strong>Supports readable secondaries: </strong>Yes</li>



<li><strong>Failover: </strong>Supports automatic failover for synchronous-commit replicas and manual failover for asynchronous-commit replicas.</li>



<li><strong>Use Cases: </strong>
<ul class="wp-block-list">
<li>Ideal for mission-critical applications requiring high availability and disaster recovery across multiple databases.  </li>



<li>Suitable for enterprises needing advanced features like read-only secondary replicas for offloading read workloads.</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading" id="h-requirements">Requirements:</h3>



<ul class="wp-block-list">
<li>Same OS version on all nodes.</li>



<li>Proper network infrastructure to support data replication with minimal latency.</li>



<li>Windows Server Failover Clustering (WSFC).  There are some exceptions to this that I&#8217;ll cover in a later post.</li>



<li>SQL Server 2019 Enterprise Edition or later. Available with earlier versions, but those are out of mainstream support. I wouldn&#8217;t want you building a new AG on unsupported versions. In fact, that would almost certainly raise flags in other areas of your cyber insurance policy.</li>
</ul>



<h2 class="wp-block-heading" id="h-basic-availability-groups">Basic Availability Groups</h2>



<p>Up until SQL Server 2016, AGs were only available in Enterprise Edition. However, in 2016, Microsoft introduced us to Basic Availability Groups. Basic AGs provide an introduction to high availability and disaster recovery solutions for a single database.</p>



<ul class="wp-block-list">
<li><strong>Edition Support: </strong>Available in SQL Server 2016 Standard Edition and later.</li>



<li><strong>Number of Replicas: </strong>Supports two replicas (one primary and one secondary).</li>



<li><strong>Supports readable secondaries: </strong>No.  See the limitations <a href="https://learn.microsoft.com/en-us/sql/database-engine/availability-groups/windows/basic-availability-groups-always-on-availability-groups?view=sql-server-ver16#limitations">here</a>.</li>



<li><strong>Failover: </strong>Supports automatic failover, but only in a single-database environment.</li>



<li><strong>Use Cases: </strong>
<ul class="wp-block-list">
<li>Ideal for small businesses or environments where budget constraints prevent the use of Enterprise Edition.  </li>



<li>Suitable for applications that require minimal HA/DR capabilities.  </li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading" id="h-requirements-0">Requirements:</h3>



<ul class="wp-block-list">
<li>Same OS version on both nodes.</li>



<li>SQL Server 2016 Standard Edition or later.</li>



<li>Windows Server Failover Clustering (WSFC)</li>



<li>Proper network infrastructure to support data replication with minimal latency.</li>
</ul>



<h2 class="wp-block-heading" id="h-which-should-you-choose">Which should you choose?</h2>



<p>Getting AGs right takes practice. When done wrong, performance and availability can both suffer. Budgets can be destroyed by licenses. Understanding your options, including their requirements and differences, can help you choose the right solution for your environment. Whether you&#8217;re driven by audits, insurance policies, or those uncomfortable &#8220;could not open a connection to SQL Server&#8221; errors, investing in HA/DR solutions is crucial for maintaining business continuity and minimizing downtime.</p>



<p>So, which would I choose? If I had the option to use shared storage, I&#8217;d opt for building a failover clustered instance instead of using a Basic AG. FCIs support failover of multiple databases and can be used with Standard Edition. However, if shared storage isn&#8217;t an option and you need automatic failover capabilities for a single database or if you&#8217;re working in a hybrid environment (Azure and on-premises), Basic AGs may be a good choice for you.</p>



<p>Have questions about HA/DR? Here are two ways we can help.</p>



<ol class="wp-block-list">
<li><a href="https://theserogroup.com/#contact">Schedule a call with us</a> to connect with our consultants. We&#8217;ve helped numerous clients just like you meet their uptime objectives.</li>



<li>Consider <a href="https://theserogroup.com/seroshield/">SEROShield</a>, our DBA team as a service. Not only will we help build the AG, but we&#8217;ll also support it. It&#8217;ll be like driving around in a new car (you know, the one with the new car smell) that you know is covered by the best possible insurance.</li>
</ol>



<h2 class="wp-block-heading" id="h-next-in-this-series">Next in this series</h2>



<p>There are a few lesser-known availability group types that we didn&#8217;t discuss today but will in upcoming posts: Contained AGs, Distributed AGs, and Domain-independent AGs.</p>



<p><a href="https://www.linkedin.com/company/the-sero-group">Follow us on LinkedIn</a> to get notified when we release new blog posts. </p>
<p>The post <a href="https://theserogroup.com/sql-server/availability-groups-whats-right-for-you/">Availability Groups: What&#8217;s Right for Your Business?</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6008</post-id>	</item>
		<item>
		<title>SQL Server Settings: Memory Configuration</title>
		<link>https://theserogroup.com/sql-server/sql-server-settings-memory-configuration/</link>
		
		<dc:creator><![CDATA[Eric Cobb]]></dc:creator>
		<pubDate>Wed, 29 May 2024 12:00:00 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Public Speaking]]></category>
		<category><![CDATA[Script Library]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[Shared Disks]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Audit]]></category>
		<category><![CDATA[SQL Conference]]></category>
		<category><![CDATA[SQL Events]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=5890</guid>

					<description><![CDATA[<p>SQL Server is designed to efficiently manage memory on its own. It requests memory when it&#8217;s needed and releases memory back to the system when it&#8217;s not. However, the default settings may not be ideal for your situation. An experienced database administrator will usually fine-tune these settings to optimize performance and server stability. Minimum server&#8230; <br /> <a class="read-more" href="https://theserogroup.com/sql-server/sql-server-settings-memory-configuration/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/sql-server/sql-server-settings-memory-configuration/">SQL Server Settings: Memory Configuration</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>SQL Server is designed to efficiently manage memory on its own. It requests memory when it&#8217;s needed and releases memory back to the system when it&#8217;s not. However, the default settings may not be ideal for your situation. An experienced database administrator will usually fine-tune these settings to optimize performance and server stability.</p>



<h2 class="wp-block-heading" id="h-minimum-server-memory">Minimum server memory</h2>



<p>The minimum server memory setting in SQL Server determines the smallest amount of RAM that SQL Server will grab. SQL Server will always have at least this much memory available to use, even when the system is under heavy load. The default setting for minimum server memory is usually very low, and SQL Server dynamically adjusts its memory usage based on its workload.</p>



<h2 class="wp-block-heading" id="h-maximum-server-memory">Maximum server memory</h2>



<p>The maximum server memory setting in SQL Server limits how much of your computer&#8217;s memory SQL Server can access. By default, SQL Server grabs as much memory as possible, which can lead to problems. If SQL Server takes up all the available RAM, it slows down other programs running on the same server (such as SSIS, SSRS, or SSAS), making everything feel sluggish. </p>



<h2 class="wp-block-heading" id="h-configuring-minimum-server-memory">Configuring minimum server memory</h2>



<p>Configuring minimum server memory is usually easy because, in most cases, it&#8217;s best to leave it set to the default. Sometimes people will set the minimum and maximum server memory settings to the same value to &#8220;lock in&#8221; the memory. I&#8217;ve seen this in virtualized environments as an attempt to prevent the hypervisor from &#8220;ballooning&#8221; and taking away the resources that are supposed to be allocated to SQL Server. The risk with this type of configuration is that during a restart, SQL Server will not come online until it has claimed all of the RAM listed in the minimum server memory setting.</p>



<p>You can configure your server&#8217;s minimum server memory setting in SQL Server Management Studio. Find the server properties section, then look for the minimum server memory option.</p>



<p>You can also make this change by running the following script:</p>



<pre class="wp-block-code has-medium-font-size"><code>sp_configure 'min server memory', &lt;desired memory amount (mb)&gt;;
GO</code></pre>



<h2 class="wp-block-heading" id="h-configuring-maximum-server-memory">Configuring maximum server memory</h2>



<p>The default maximum server memory<strong> </strong>setting can sometimes cause performance issues. By limiting the RAM SQL Server uses, you can ensure there&#8217;s enough memory for the operating system and other applications to run smoothly.</p>



<p>Honing in on the exact number can be tricky, as it depends greatly on the load your SQL Server is under, as well as any other applications that may be running on it. However, configuring the maximum server memory appropriately ensures SQL Server has enough memory to perform efficiently without starving the operating system or other applications of the resources they need. This balance helps maintain system stability and performance.</p>



<p>For example, if you have SSAS installed on the SQL Server, by default it will claim 20% of the RAM on the server, leaving only 80% available for SQL. I&#8217;ve seen scenarios where SQL Server crashed with an &#8220;insufficient system memory&#8221; error every time it tried to go above 80% RAM usage because SSAS refused to release its 20%.</p>



<p>To configure maximum server memory, start by following the same steps as you did above. You can configure your server&#8217;s minimum server memory setting in SQL Server Management Studio. Find the server properties section, then look for the maximum server memory option.</p>



<p>You can also make this change by running the following script:</p>



<pre class="wp-block-code has-medium-font-size"><code>sp_configure 'max server memory', &lt;desired memory amount (mb)&gt;;
GO</code></pre>



<h2 class="wp-block-heading" id="h-final-thoughts-and-next-steps">Final thoughts and next steps</h2>



<p>Although SQL Server will manage its memory dynamically right out of the box, its default settings may not suit every scenario. Fine-tuning minimum and maximum memory settings means efficient server performance without depriving the operating system and other applications of resources. Careful memory configuration can help you achieve an optimized and balanced server environment.</p>



<h3 class="wp-block-heading" id="h-further-reading">Further reading</h3>



<ul class="wp-block-list">
<li><a href="https://www.brentozar.com/archive/2018/11/how-much-memory-is-normal-for-sql-servers/">How Much Memory is “Normal” for SQL Servers? &#8211; Brent Ozar</a></li>



<li><a href="https://learn.microsoft.com/en-us/sql/relational-databases/memory-management-architecture-guide?view=sql-server-ver16">Memory management architecture guide &#8211; Microsoft Learn</a></li>
</ul>



<h3 class="wp-block-heading" id="h-previously-in-this-series">Previously in this series</h3>



<ul class="wp-block-list">
<li><a href="https://theserogroup.com/sql-server/sql-server-settings-maxdop/">SQL Server Settings: MAXDOP</a></li>



<li><a href="https://theserogroup.com/sql-server/sql-server-settings-optimize-for-ad-hoc-workloads/">SQL Server Settings: Optimize For Ad-hoc Workloads</a></li>
</ul>



<h3 class="wp-block-heading" id="h-work-with-us">Work with us</h3>



<p>Want help optimizing your SQL Servers? <a href="https://theserogroup.com/#testimonials">Schedule a free call with us</a> to learn more and get started!</p>
<p>The post <a href="https://theserogroup.com/sql-server/sql-server-settings-memory-configuration/">SQL Server Settings: Memory Configuration</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5890</post-id>	</item>
		<item>
		<title>The Risks of Mixing SQL Server Native Backups with Snapshot Technologies</title>
		<link>https://theserogroup.com/sql-server/the-risks-of-mixing-sql-server-native-backups-with-snapshot-technologies/</link>
		
		<dc:creator><![CDATA[Luke Campbell]]></dc:creator>
		<pubDate>Fri, 08 Mar 2024 16:43:31 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Script Library]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Assessment]]></category>
		<category><![CDATA[SQL Audit]]></category>
		<category><![CDATA[SQL Consultant]]></category>
		<category><![CDATA[SQL Server Consultant]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<category><![CDATA[The Sero Group]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=5774</guid>

					<description><![CDATA[<p>As a DBA, one of the most critical aspects of managing SQL Server is ensuring the integrity and reliability of database backups. SQL Server&#8217;s native backup functionalities offer robust tools for securing your data, particularly for databases utilizing the full recovery model. However, mixing SQL Server native backups with disk or VM snapshots can lead&#8230; <br /> <a class="read-more" href="https://theserogroup.com/sql-server/the-risks-of-mixing-sql-server-native-backups-with-snapshot-technologies/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/sql-server/the-risks-of-mixing-sql-server-native-backups-with-snapshot-technologies/">The Risks of Mixing SQL Server Native Backups with Snapshot Technologies</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>As a DBA, one of the most critical aspects of managing SQL Server is ensuring the integrity and reliability of database backups.  SQL Server&#8217;s native backup functionalities offer robust tools for securing your data, particularly for databases utilizing the <a href="https://theserogroup.com/sql-server/sql-server-recovery-models/">full recovery model</a>. However, mixing SQL Server native backups with disk or VM snapshots can lead to issues while restoring. It can be like trying to mix oil and water.</p>



<p>In this post, we&#8217;ll review why mixing these two backup types can pose risks and how to mitigate these challenges.  Here&#8217;s what we&#8217;ll cover:</p>



<ul class="wp-block-list">
<li>Understanding SQL Server Native Backups &#8211; Full, Differential, Log</li>



<li>Snapshot Backups and SQL Writer</li>



<li>Impact of snapshot backups on native backups</li>



<li>Conclusion</li>
</ul>



<h1 class="wp-block-heading" id="h-understanding-sql-server-native-backups">Understanding SQL Server Native Backups</h1>



<p>We generally recommend using a combination of native SQL Server backups.  This can vary a bit depending on a client&#8217;s RPO and RTO requirements.  Let&#8217;s start with the full backup as it serves as the foundation for any backup strategy, establishing a baseline state of the database.</p>



<h2 class="wp-block-heading" id="h-full-backup">Full Backup</h2>



<p>A full database backup creates a complete copy of the entire database at a specific point in time.  This type of backup captures the state of the database, including all the data files (mdf and ndf), log files (ldf), and part of the transaction log necessary to ensure the database&#8217;s consistency.  The main purpose of a full database backup is to provide a starting point for database recovery, allowing the restoration of the database to its state at the time of the backup.</p>



<h3 class="wp-block-heading" id="h-how-it-works">How it Works</h3>



<p>When a full database backup is initiated, SQL Server begins by writing a portion of the transaction log to ensure that the backup reflects a consistent state of the database.  This means that the backup will include all committed transactions up to the point at which the backup was taken.  Uncommitted transactions are not included in the backup, but the data necessary to roll back these transactions is and ensures the database can be restored to a consistent state.  </p>



<p>Full backups are straightforward to manage.  They do not require additional log or differential backups to restore the database to the specific point in time.  However, they can be large and time-consuming.  Depending on the database size and available storage, full backups might not be feasible to perform very frequently.  This can influence the recovery point object.</p>



<p>We recommend a full backup at least once per week.  Next, we move on to nightly differential backups.</p>



<h2 class="wp-block-heading" id="h-differential-backup">Differential Backup</h2>



<p>Differential backups only include the data that has changed since the last full backup.  Instead of backing up the entire database every time, a differential backup captures only the modifications, making it a faster and more storage-efficient way to maintain up-to-date backup copies of your data.</p>



<h3 class="wp-block-heading" id="h-how-it-works-0">How it Works</h3>



<p>The starting point for differential backups is the last full backup.  This full backup serves as the baseline from which all changes are tracked.  Tracking is done by marking extents in the database as changed whenever data is modified.  Differential backup operations rely on a bitmap page that contains a bit for every extent.  Each extent updated since the last full backup is set to 1 in the bitmap.</p>



<p>Subsequent differential backups will also contain all changes since the last full backup, not since the previous differential backup.  </p>



<p><strong>This is extremely important when considering a mix of SQL Server native backups and VM or disk based snapshots.  Snapshots, using volume shadow copy services and the SQL writer are full backups and will reset the starting point for differentials which occur after them (unless specified to use the COPY ONLY option).  We&#8217;ll see this scenario later in the demo.</strong></p>



<p>The main advantage of differential backups is efficiency.  They are typically much quicker to complete than full backups because they involve less data.  They also require less storage space.  However, they do add to the complexity of database restores.  You first restore the most recent full backup without recovery and then restore the latest differential.  Or the differential that occurred closest to the point in time you need to recover to.  You do not need to apply each differential backup sequentially.  </p>



<p>Let&#8217;s look at log backups next.  A good starting point, again dependent on your RPO, is to perform a log backup every 15 minutes.</p>



<h2 class="wp-block-heading" id="h-log-backup">Log Backup</h2>



<p>To perform a log backup, the database must be using the full or bulk-logged recovery model.  These backups allow for point-in-time recovery of the database, providing a high level of data protection by ensuring that all transactions are recoverable.  They capture all transaction log records since the last log backup.  The transaction log is a serial record of all changes made to the database, including both data modifications, and enables rollbacks of those modifications if transactions are not completed successfully.</p>



<h3 class="wp-block-heading" id="h-how-it-works-1">How it Works</h3>



<p>SQL Server continuously records all database transactions in the transaction log file.  This log includes every insert, update, delete, and schema change operation.  Regular log backups are essential for truncating the transaction log file. Truncation does not reduce the file size but marks the space as reusable for new transactions.  Without log backups, the transaction log can grow indefinitely, consuming disk space and potentially impacting database availability and performance.  The database must be in full recovery or bulk-logged recovery.  Full being the most prominent.  </p>



<p>To restore you&#8217;ll begin by restoring the last full backup (without recovery), the last differential (without recovery) if part of your backup strategy, and then all log backups up to a specific point in time.  This is a sequential process requiring all log backups to be applied in order.  If one is missing then the restore will fail and you&#8217;ll be limited to the point in time just before the break.  </p>



<p><strong>It&#8217;s important to note some 3rd party VM snapshot solutions include an option to truncate the log after taking a snapshot backup.  They do this by initiating a &#8220;<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">BACKUP LOG DatabaseName TO DISK = &#8216;NUL&#8217;</mark>&#8221; command.  This will break your transaction log backup sequence and impact your RPO.</strong> </p>



<h2 class="wp-block-heading" id="h-snapshot-backups-and-the-sql-writer-service">Snapshot Backups and the SQL Writer Service</h2>



<p>Snapshot backups, using volume shadow copy service and SQL writer, are extremely fast.  VSS is a Windows-based technology that allows backup applications to safely back up locked and open files.  It&#8217;s particularly useful for creating snapshots of databases and other applications that continuously run and handle data.  </p>



<p>VSS operates at the file system level and can create a snapshot &#8211; a read-only, point-in-time copy of data in seconds.  This snapshot technology ensures that files are in a consistent state when backed up.</p>



<p>SQL Server VSS Writer is a Windows service that uses the VSS framework to facilitate creating backups and restores for SQL Server databases.  When a VSS-based backup is initiated, the SQL Server VSS Writer ensures that database files are in a transactionally consistent state, making them suitable for backup purposes.  The writer is aware of SQL Server&#8217;s data files and log files and can freeze and thaw database operations intelligently to ensure data consistency without shutting down the database.  You&#8217;ll see these operations reported in the SQL Server error log as &#8220;I/O is frozen&#8230;&#8221; events.  Log backups are not supported (see <a href="https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/sql-server-vss-writer-backup-guide?view=sql-server-ver16#what-is-not-supported" target="_blank" rel="noreferrer noopener">here</a> for additional details).  </p>



<h3 class="wp-block-heading" id="h-how-they-work-together">How They Work Together</h3>



<ol class="wp-block-list">
<li>When a snapshot backup is requested, the backup application communicates with the VSS to initiate the backup process.  <strong>Snapshots that do not use the COPY ONLY option will reset the starting point for your native differentials.</strong></li>



<li>VSS communicates with the SQL Server VSS Writer to prepare the databases for a consistent snapshot.  This involves ensuring that all transactions are complete and that the databases are in a stable state.  I/O is paused.</li>



<li>Once the databases are prepared, VSS instructs the storage system to create a snapshot.  This process is usually quick and efficient.  This does not involve copying data but rather capturing the state of the data at a specific point in time.</li>



<li>After the snapshot is taken, the SQL Server VSS Writer allows SQL Server to resume its normal operations, minimizing downtime and impact on the system.  However, this can vary if there&#8217;s a large number of databases.</li>



<li>The snapshot can then be used to create a backup copy of the database files without affecting the running database(s).  </li>
</ol>



<h2 class="wp-block-heading" id="h-impact-of-snapshot-backups-on-native-backups">Impact of snapshot backups on native backups</h2>



<p>I&#8217;ve mentioned the impact snapshot backups can have on native SQL Server backups a few times.  Especially when using a mix of full, differential, and log backups as recovery relies on a carefully orchestrated sequence.  Let&#8217;s see this in practice.  I&#8217;m going to use a tool built into Windows, called <strong>DISKSHADOW</strong>, which will mimic a backup application to create a VSS snapshot.  Here&#8217;s the breakdown (<strong>please don&#8217;t do this in production</strong>).</p>



<p><strong>Test Environment:</strong></p>



<figure class="wp-block-table"><table><tbody><tr><td>OS Version</td><td>SQL Server Edition and Version</td><td>Test database name</td></tr><tr><td>Windows Server 2022</td><td>SQL Server 2022 Developer Edition</td><td>BackupDemo</td></tr></tbody></table></figure>



<p><strong>The demo database is using the full recovery model.  </strong></p>



<p><strong>Step 1: </strong>Create a native full backup of BackupDemo. </p>



<p><strong>Step 2:</strong> Create a native differential backup of BackupDemo.</p>



<p><strong>Step 3: </strong>Create a snapshot backup using DISKSHADOW.</p>



<p><strong>Step 4: </strong>Open notepad and add the following.  In this demo the BackupDemo database files reside on F and G.<strong> </strong> Save the file as snapshot.txt in the C:\backup folder.</p>



<pre class="wp-block-code"><code><code>#Diskshadow script file
writer verify "SqlServerWriter"
set metadata C:\Backup\diskshadow_c_f_g.cab
begin backup
add volume F: alias SQLVMDATA1
add volume G: alias SQLVMLOG
create
end backup
#End of script</code></code></pre>



<p><strong>Step 5: </strong>Open a command prompt as an administrator.</p>



<p><strong>Step 6: </strong>Run the following.</p>



<pre class="wp-block-code"><code>cd C:\Backup
diskshadow -s C:\Backup\snapshot.txt
</code></pre>



<p><strong>Step 7: </strong>Once complete, run a second differential backup. <strong> </strong></p>



<p><strong>Step 8: </strong>Attempt a database restore using the native full backup and the second differential.  </p>



<pre class="wp-block-code"><code>RESTORE DATABASE BackupDemo
FROM DISK = 'G:\BACKUP\SQL1\BackupDemo\FULL\SQL1_BackupDemo_FULL_20240306_104745.bak'
WITH NORECOVERY, REPLACE, STATS = 10

RESTORE DATABASE BackupDemo
FROM DISK = 'G:\BACKUP\SQL1\BackupDemo\DIFF\SQL1_BackupDemo_DIFF_20240306_114303.bak'
WITH RECOVERY, STATS = 10</code></pre>



<p><strong>The error below will be encountered due to the snapshot backup occurring between the native full backup and the last differential.</strong></p>



<pre class="wp-block-code"><code>Msg 3136, Level 16, State 1, Line 44
This differential backup cannot be restored because the database has not been restored to the correct earlier state.

Msg 3013, Level 16, State 1, Line 44
RESTORE DATABASE is terminating abnormally.</code></pre>



<h2 class="wp-block-heading" id="h-conclusion">Conclusion</h2>



<p>Mixing SQL Server native backups and snapshot backups in an environment isn&#8217;t ideal due to the complexities it introduces.  </p>



<p>If your organization is using VM or disk snapshots be sure those can meet recovery point objectives.  Document and test the restore process using the backup application.  </p>



<p>If both types of backups are required, use the COPY ONLY option for all snapshot-based backups and make sure the backup application is not set to truncate transaction logs.   </p>



<h3 class="wp-block-heading" id="h-want-to-know-more">Want to know more?</h3>



<p>Here are some additional posts that may be helpful. </p>



<ul class="wp-block-list">
<li><a href="https://theserogroup.com/dba/how-to-align-your-sql-server-to-your-rpo-and-rto-goals/">How to Align Your SQL Server to Your RPO and RTO Goals</a></li>



<li><a href="https://theserogroup.com/sql-server/sql-server-recovery-models/">What is a SQL Server Recovery Model?</a></li>



<li><a href="https://theserogroup.com/sql-server/using-vm-snapshots-to-backup-sql-server/">Using VM Snapshots to Backup SQL Server?</a></li>



<li><a href="https://theserogroup.com/data-security/where-to-start-with-disaster-recovery-in-sql-server/">Where to Start with Disaster Recovery in SQL Server</a></li>
</ul>



<p>If you’re concerned about your backup strategy, or more to the point, your ability to restore,&nbsp;<a href="https://theserogroup.com/#contact">contact us</a>. We’re happy to help.</p>
<p>The post <a href="https://theserogroup.com/sql-server/the-risks-of-mixing-sql-server-native-backups-with-snapshot-technologies/">The Risks of Mixing SQL Server Native Backups with Snapshot Technologies</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5774</post-id>	</item>
		<item>
		<title>A Severe Error Occurred! 5 Ways to Detect Database Corruption Early</title>
		<link>https://theserogroup.com/dba/a-severe-error-occurred-5-ways-to-detect-database-corruption-early/</link>
		
		<dc:creator><![CDATA[Luke Campbell]]></dc:creator>
		<pubDate>Wed, 23 Aug 2023 13:54:08 +0000</pubDate>
				<category><![CDATA[DBA]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Assessment]]></category>
		<category><![CDATA[SQL Consultant]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Consultant]]></category>
		<category><![CDATA[The Sero Group]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=5003</guid>

					<description><![CDATA[<p>No one likes to think about how to detect database corruption. But, Imagine this: you&#8217;re arriving at your job expecting an ordinary day. You begin receiving calls that the main application is returning a weird error when submitting or updating data; A severe error occurred on the current command.&#160; The results, if any, should be&#8230; <br /> <a class="read-more" href="https://theserogroup.com/dba/a-severe-error-occurred-5-ways-to-detect-database-corruption-early/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/dba/a-severe-error-occurred-5-ways-to-detect-database-corruption-early/">A Severe Error Occurred! 5 Ways to Detect Database Corruption Early</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>No one likes to think about how to detect database corruption. But, Imagine this: you&#8217;re arriving at your job expecting an ordinary day.  You begin receiving calls that the main application is returning a weird error when submitting or updating data;</p>



<p><em><strong><mark style="background-color:#ffffff" class="has-inline-color has-vivid-red-color">A severe error occurred on the current command.&nbsp; The results, if any, should be discarded.</mark></strong></em></p>



<p>You give it a try and receive the same error, then proceed to call the support desk, and the conversation may go something like this.</p>



<p><em>You: &#8220;Hey, I&#8217;ve been hearing reports about some issues with the application&#8217;s database. Do you have any insights on what might be happening?&#8221;</em></p>



<p><em>Support: &#8220;Sure, the server is online and accessible; all the monitoring dashboards are showing green indicators.&#8221;</em></p>



<p><em><em>You</em>: &#8220;Great, thanks for checking that. What about the database itself? Is it online and accessible for direct querying outside of the application?&#8221;</em></p>



<p><em>Support: &#8220;Absolutely, I&#8217;ve verified that as well. I actually used SQL Server Management Studio to run a few test queries directly on the database. The data is coming back without any errors.&#8221;</em></p>



<p><em><em>You</em>: &#8220;Hmm, that&#8217;s really puzzling. If the server and database seem to be in good shape, then why are users encountering problems? Can you do a specific test for me? Try performing an update on the dbo.Sales table, focusing on the row that&#8217;s causing issues in the application.&#8221;</em></p>



<p><em>Support: &#8220;Sure, I&#8217;ll give it a shot right now&#8230; Oh, that&#8217;s strange. I just attempted the update, and I&#8217;m getting the same error that users are reporting.&#8221;</em></p>



<p>It&#8217;s at this point you realize the database may be corrupted, and you&#8217;re beginning to experience abdominal pain (database corruption has a funny way of doing that).  Now what?</p>



<h2 class="wp-block-heading" id="h-5-ways-to-detect-database-corruption-early">5 Ways to Detect Database Corruption Early</h2>



<p>You&#8217;ll likely encounter this situation if you use databases long enough. Corruption is going to happen. The key is to detect database corruption early and to know how best to recover from it.  For some great insights on dealing with database corruption, see Paul Randal&#8217;s <a href="https://www.sqlskills.com/blogs/paul/sqlskills-sql101-dealing-with-sql-server-corruption/" target="_blank" rel="noreferrer noopener">https://www.sqlskills.com/blogs/paul/sqlskills-sql101-dealing-with-sql-server-corruption/</a>. I can&#8217;t recommend his post enough. It&#8217;s great. </p>



<p>Let&#8217;s look at 5 ways to detect database corruption early.</p>



<ol class="wp-block-list">
<li>Backups (with checksum) </li>



<li>Integrity Checks</li>



<li>PAGE_VERIFY database option</li>



<li>Test restores</li>



<li>SQL Server Agent alerts</li>
</ol>



<h2 class="wp-block-heading" id="h-1-backups-with-checksum">1. Backups (with checksum)</h2>



<p>Backups are extremely important in most production environments. Having backups in place and regularly testing restores ensures you can recover from corruption, if needed. Make sure the process meets your RTO / RPO requirements (see <a href="https://theserogroup.com/events/webinar-virtual-machine-backups-rto-and-rpo-considerations-for-you-sql-server/" target="_blank" rel="noreferrer noopener">here</a> for more details on RTO / RPO and setting SQL Server backups).  </p>



<p>Save the backups on a different server via UNC path and possibly in the cloud as a secondary location. Azure Blob Storage is one possible solution. </p>



<h2 class="wp-block-heading" id="h-2-integrity-checks">2. Integrity Checks</h2>



<p>Another key method to detect database corruption early is to run database integrity checks often.  </p>



<p><a href="https://learn.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver16" target="_blank" rel="noreferrer noopener">DBCC CHECKDB</a> checks the logical and physical integrity of all the objects within the specified database.  It performs the following operations; DBCC CHECKALLOC, DBCC CHECKTABLE, DBCC CHECKCATALOG, validates the contents of every indexed view, validates link-level consistency between table metadata and file system directories and files when storing varbinary(max) data in the file system using FILESTREAM, and validates the Service Broker data in the database.</p>



<p>We recommend using Ola Hallengren&#8217;s maintenance solution to perform integrity checks.  These scripts are freely available and are very well documented.  If you don&#8217;t already have a maintenance solution, grab  Ola&#8217;s scripts <a href="https://ola.hallengren.com/sql-server-integrity-check.html" target="_blank" rel="noreferrer noopener">here</a>.</p>



<p>Don&#8217;t have enough time to run DBCC CHECKDB due to database size or limited resources?  Brent Ozar has a few methods that can be used to help speed things up.  See <a href="https://www.brentozar.com/archive/2020/08/3-ways-to-run-dbcc-checkdb-faster/">here</a> for details. </p>



<p>It&#8217;s extremely important to ensure you&#8217;re running integrity checks on important databases.  It&#8217;s better to find corruption early vs waiting months or even years before knowing and being unable to recover when needed.</p>



<h2 class="wp-block-heading" id="h-3-page-verify-database-option">3. PAGE_VERIFY database option </h2>



<p>The third way to detect database corruption early is to enable PAGE_VERIFY for all databases that you care about. There are three PAGE_VERIFY database options:</p>



<ul class="wp-block-list">
<li><strong>NONE</strong> &#8211; Database page writes won&#8217;t generate a CHECKSUM or TORN_PAGE_DETECTION value.  SQL Server will not verify a checksum or torn page during a read even if a CHECKSUM or TORN_PAGE_DETECTION value is present in the page header.</li>



<li><strong>TORN_PAGE_DETECTION</strong> &#8211; SQL Server saves a specific 2-bit pattern for each 512-byte sector in the 8-kilobyte (KB) database page and stored in the database page header when the page is written to disk.  When the page is read from the disk, the torn bits stored in the page header are compared to the actual page sector information.  Unmatched values indicate that only part of the page was written to disk, and error message 824 is reported to the SQL Server error log and Windows event log.</li>



<li><strong>CHECKSUM</strong> &#8211; SQL Server calculates a checksum over the contents of the whole page and stores the value in the page when written to disk.  When the page is read from disk, the checksum is recomputed and compared to the checksum value stored in the page header.  If the values don&#8217;t match, error message 824 is reported to the SQL Server error log and Windows event log.  A checksum failure indicates an I/O path problem and requires further investigation.</li>
</ul>



<p>SQL Server 2000 used a PAGE_VERIFY default setting of TORN_PAGE_DETECTION for all databases.  If you&#8217;ve migrated databases over the years and are now running on a more recent version of SQL Server, check this setting.  Restoring from an older version will not automatically set PAGE_VERIFY to the new default of CHECKSUM.</p>



<p>Verify that all databases are using the CHECKSUM page_verify option.  You can use the t-sql statement below to do a quick check.  Any that return a page_verify_option of NONE or TORN_PAGE_DETECTION should be evaluated.</p>



<pre class="wp-block-code has-white-background-color has-background"><code>USE MASTER
GO
select &#91;name], page_verify_option_desc from sys.databases</code></pre>



<h2 class="wp-block-heading" id="h-4-test-restores">4. Test restores </h2>



<p>I&#8217;d recommend a regularly scheduled restore for your most critical databases.  Having backups are great, but only if they can be used to recover a database when the need arises.  I&#8217;d restore the databases and then run DBCC CHECKDB to ensure no corruption is encountered.  Once every 90 days, or more frequently if needed, is where we generally start.</p>



<p>One solution you can use to test backups is the <a href="https://docs.dbatools.io/Test-DbaLastBackup" target="_blank" rel="noreferrer noopener">Test-DBALastBackup</a> commandlet found in the dbatools module. </p>



<h2 class="wp-block-heading" id="h-5-sql-server-agent-alerts-for-i-o-errors">5. SQL Server Agent alerts for I/O errors</h2>



<p>SQL Server includes built-in monitoring capabilities.  However, you&#8217;ll need to configure the agent alerts, operators, and notifications manually.  During our <a href="https://theserogroup.com/sql-health-check/" target="_blank" rel="noreferrer noopener">SQL Server health check</a>, we&#8217;ll check for <a href="https://learn.microsoft.com/en-us/sql/relational-databases/errors-events/database-engine-events-and-errors-0-to-999?view=sql-server-ver16" target="_blank" rel="noreferrer noopener">common alerts</a> that should be enabled.  Those include alerts for 823, 824, and 825 errors which could serve as early warning indicators of catastrophic disk I/O errors:</p>



<ul class="wp-block-list">
<li><strong>Error 823</strong> &#8211; SQL Server uses Windows APIs to perform file I/O operations.  After performing these I/O operations, SQL Server checks for any error conditions associated with these API calls.  If the API calls fail with an Operating System error, then SQL Server reports Error 823.  These errors usually indicate a problem with the underlying storage system or hardware or a driver that is in the path of the I/O request.  See more on this error <a href="https://learn.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-823-database-engine-error?view=sql-server-ver16" target="_blank" rel="noreferrer noopener">here</a>.</li>



<li><strong>Error 824</strong> &#8211; SQL Server encounters this error message when a logical consistency check fails after reading or writing a database page.  The error indicates that Windows reports that the page is successfully read from disk, but SQL Server has discovered something wrong with the page.  It&#8217;s similar to 823, except Windows didn&#8217;t detect the error.  There could be a problem with the I/O subsystem such as failing disk drives, firmware problems, faulty device drivers, and so on.  See more on this error <a href="https://learn.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-824-database-engine-error?view=sql-server-ver16" target="_blank" rel="noreferrer noopener">here</a>.</li>



<li><strong>Error 825</strong> &#8211; This message indicates that the read operation had to be reissued at least one time, and indicates a major problem with disk hardware.  This message does not currently indicate a SQL Server problem, but the disk problem could cause data loss or database corruption if not resolved.  See more on this error <a href="https://learn.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-825-database-engine-error?view=sql-server-ver16" target="_blank" rel="noreferrer noopener">here</a>.</li>
</ul>



<h2 class="wp-block-heading" id="h-worried-about-database-corruption">Worried about database corruption?</h2>



<p>Looking for more information about detecting database corruption and what to do about it? Read Paul&#8217;s post mentioned earlier. He provides an overview and steps on how you may potentially be able to recover.  Our hope is that you never find yourself in a situation where you can&#8217;t recover.</p>



<p>Worried that your database is corrupt? Let&#8217;s set up a <a href="https://theserogroup.com/sql-health-check/" target="_blank" rel="noreferrer noopener">SQL Server health check</a>.  </p>



<p> If you&#8217;ve already detected database corruption, give us a <a href="https://theserogroup.com/#contact" target="_blank" rel="noreferrer noopener">call</a>. We can help.</p>
<p>The post <a href="https://theserogroup.com/dba/a-severe-error-occurred-5-ways-to-detect-database-corruption-early/">A Severe Error Occurred! 5 Ways to Detect Database Corruption Early</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5003</post-id>	</item>
	</channel>
</rss>
