<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'Productivity' and 'backup'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=Productivity,backup&amp;orTags=0</link><description>Search results matching tags 'Productivity' and 'backup'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>March Update to Rules-Driven Maintenance</title><link>http://sqlblog.com/blogs/merrill_aldrich/archive/2013/03/11/march-update-to-rules-driven-maintenance.aspx</link><pubDate>Tue, 12 Mar 2013 02:56:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:48191</guid><dc:creator>merrillaldrich</dc:creator><description>&lt;p&gt;This month I have a minor update to the Rules-Driven Maintenance code I originally &lt;a href="http://sqlblog.com/blogs/merrill_aldrich/archive/2012/08/01/rules-driven-maintenance.aspx"&gt;posted&lt;/a&gt; back in August 2012. This update has just two enhancements, but they are nice ones, I think:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Much improved handling for instances that use database snapshots.&lt;/li&gt;    &lt;li&gt;Ability to do intra-day differential backups purely by setting maintenance times and limits in the policy table.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The code posted here is cumulative, and replaces entirely the original code, but please refer back to &lt;a href="http://sqlblog.com/blogs/merrill_aldrich/archive/2012/08/01/rules-driven-maintenance.aspx"&gt;that original blog post&lt;/a&gt; for description, instructions and details. This update can be installed right over an existing deployment, or be installed all by itself as a complete solution but – as always – please test and be cautious.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;</description></item><item><title>Update to Rules-Driven Maintenance</title><link>http://sqlblog.com/blogs/merrill_aldrich/archive/2013/01/16/update-to-rules-driven-maintenance.aspx</link><pubDate>Wed, 16 Jan 2013 18:34:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:47183</guid><dc:creator>merrillaldrich</dc:creator><description>&lt;p&gt;Back in August I &lt;a href="http://sqlblog.com/blogs/merrill_aldrich/archive/2012/08/01/rules-driven-maintenance.aspx"&gt;posted&lt;/a&gt; a first version of a rules-driven solution for backups, index and statistics maintenance and integrity checks. The system in general has been working well, and has saved my team a huge amount of time and effort. We are coming to the anniversary of its use in production soon.&lt;/p&gt;  &lt;p&gt;Today I offer an update that contains a few enhancements, performance improvements and a bug fix.&lt;/p&gt;  &lt;p&gt;To recap, this is a system or framework to manage many small databases across many instances on many servers in a policy-based/automated way. The details about how to deploy and how to use the system are in the &lt;a href="http://sqlblog.com/blogs/merrill_aldrich/archive/2012/08/01/rules-driven-maintenance.aspx"&gt;original post&lt;/a&gt;, but at a high level:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;First deploy the code across a collection of servers using the included PowerShell script &lt;b&gt;DeployMaintenance.ps1&lt;/b&gt;. That will create an administrative database on every instance (or use one that you provide) and populate it with the required tables, procedures, etc. The deployment script will also make a handful of SQL Agent jobs that handle all the maintenance on all the databases.&lt;/li&gt;    &lt;li&gt;Visit the instances. If there is maintenance already in place, disable or remove it so as not to perform this work twice. If necessary, change or override the default preferences for this solution in the admin database for each type of maintenance. This includes the time of maintenance windows, whether to use features like differential backups or Litespeed, whether there are databases that should be treated as exceptions, with different settings, etc.&lt;/li&gt;    &lt;li&gt;Enable the new policy jobs in SQL Agent. &lt;/li&gt;    &lt;li&gt;Monitor to make sure things are running smoothly.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The theory behind this project is to save work configuring servers (efficiency), to ensure that the maintenance is in fact deployed and working for ALL databases in the environment (quality), to ensure that it works in a truly consistent way everywhere (consistency), and to make it so that the servers don’t have to be touched by a DBA when changes happen, such as adding or dropping databases (resiliency).&lt;/p&gt;  &lt;h4&gt;Changes&lt;/h4&gt;  &lt;p&gt;The updates in this 1.1 version include&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Better reporting of errors. The jobs now write log files to the default error log location for SQL Server.&lt;/li&gt;    &lt;li&gt;Better recovery from errors. The jobs in some cases continue on error – for example, one failed backup will not stop the backup job and leave other databases without backups.&lt;/li&gt;    &lt;li&gt;Performance enhancements for examining backup history and system counters (mainly % log used).&lt;/li&gt;    &lt;li&gt;One bug fix for the log backup logic on a server that uses both log shipping and Litespeed.&lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Disclaimers&lt;/h4&gt;  &lt;p&gt;The code for the system is posted here, and you are welcome to download it and try it out. Please note that this is not a commercial solution, and that while you may test or deploy this, you do so at your sole risk. Edits to the code almost certainly will be required for your environment. Please read, understand and test the code thoroughly before you even &lt;i&gt;imagine&lt;/i&gt; using this in production. I do not want to cause you or your employer any pain. License for using this solution is GPL 3.0: &lt;a href="http://opensource.org/licenses/GPL-3.0"&gt;http://opensource.org/licenses/GPL-3.0&lt;/a&gt;. You may use and modify this code, but not sell it.&lt;/p&gt;  &lt;p&gt;This has been run on SQL Server versions from 2005 to 2008 R2. It probably works on 2012, but I have not tested it thoroughly.&lt;/p&gt;  &lt;p&gt;I run only case-insensitive collation; if you are on a case-sensitive system, then you have my sympathy, and you might have to edit a few things to make this work.&lt;/p&gt;  &lt;p&gt;There is coverage for Quest Litespeed backups in the solution; other third-party backup products could be incorporated easily, but have not been. It should be possible to follow the pattern used to handle Litespeed and extend it to any other third-party stored procedures.&lt;/p&gt;  &lt;p&gt;If you haven’t done index maintenance for a while, and you flip this solution on &lt;b&gt;you might blow up your transaction log&lt;/b&gt;. Be sure that you have plenty of log space and plenty of log backup space, and watch the process the first few runs. This is especially true if the combination of &lt;b&gt;Standard Edition of SQL Server&lt;/b&gt; and the preference for &lt;b&gt;Online&lt;/b&gt; index maintenance applies in your environment, because the maintenance process will perform index maintenance using reorganize (defrag), which produces a lot of log.&lt;/p&gt;  &lt;p&gt;Lastly, this is &lt;b&gt;a solution for the type of environment that has many small databases&lt;/b&gt;, not the type with a few big, performance intensive databases. Databases that are large and require detailed attention may not be suitable for a one-size-fits-all solution like this.&lt;/p&gt;</description></item><item><title>Must-Have Resources - SQL Server Backup &amp;amp; Recovery</title><link>http://sqlblog.com/blogs/kevin_kline/archive/2011/12/08/Must_2D00_Have-Resources-_2D00_-SQL-Server-Backup-_2600_-Recovery.aspx</link><pubDate>Thu, 08 Dec 2011 20:36:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:40232</guid><dc:creator>KKline</dc:creator><description>One of the things that drives me crazy as I'm getting older is that my brain is losing the capacity to differentiate &lt;em&gt;version numbers&lt;/em&gt;.  As I speak travel around speaking with customers and at conferences, I find my self saying things like "I can't recall if this problem was fixed in SQL Server 2000 or 2005. But you don't have to worry about that any more."  Or things like "That feature was added in SQL Server 2008 R2, eh, or was that version 6.5.  DOH!" followed by a loud slapping sound as I whap my palm into my forehead.

The Internet doesn't forget either.  Recommendations that were once helpful, if not outright essential, now are neutral or even downright &lt;em&gt;bad. &lt;/em&gt;So now, whenever I put together new presentations, I always spend a lot of time in research, reassessing my knowledge on the topic.  (That doesn't mean that I'll extemporaneously &lt;em&gt;say&lt;/em&gt; it wrong, because I speak in an off-the-cuff and rapid style. But at least my notes are usually correct).

&amp;nbsp;
&lt;h2&gt;Case In Point&lt;/h2&gt;
Take backup and recovery (B&amp;amp;R), for example.  I've been writing about and performing B&amp;amp;R for years.  I'm even part of the team that builds the most popular B&amp;amp;R tool in the SQL Server space.  It's an extremely important part of what I do.  And yet, even &lt;em&gt;after &lt;/em&gt;spending a couple days re-researching topics (yet again), I still manage to get a few of the more specific details wrong because of changes over the years in the feature set.  How so?

During an Expert's Perspective webcast last week (and available on-demand) covering the top backup and recovery mistakes on Microsoft SQL Server, I mis-explained the details concerning how SQL Server performs a differential backup.  A very clever SC on our team who was also attending the webcast pointed out to me after the session that I'd described differentials working at an 8k page-level when, in fact, they work at the extend-level (that's a block of eight 8k pages). &lt;strong&gt;&lt;em&gt;#FACEPALM!&lt;/em&gt;&lt;/strong&gt;

When describing the differential backup I said that a bit was flipped on each page header and SQL Server would only back up those pages. Instead, whenever a page is changed a bit is recorded on the differential change map (1bit per extent), the backup process then queries these map pages and backs up those extents that have been marked as changed.
&lt;ul&gt;
	&lt;li&gt;Watch the on-demand video of &lt;a title="Quest Software webcast on Performance Tuning SQL Server for Backups and Restores" href="http://www.quest.com/webcast-ondemand/pain-of-the-week-performance-tuning-for-backups-and-restores813358.aspx" target="_blank"&gt;Performance Tuning SQL Server for Backups and Restores&lt;/a&gt;, with me, Iain Kick, and Brent Ozar (&lt;a title="Brent Ozar SQL Server certified master" href="http://www.brentozar.com/" target="_blank"&gt;blog &lt;/a&gt;| &lt;a title="Brent Ozar's Twitter Feed" href="http://twitter.com/brento" target="_blank"&gt;twitter&lt;/a&gt;). Free, but registration required.&lt;/li&gt;
	&lt;li&gt;Watch the on-demand video of &lt;a title="Quest Software webcast Incredibly Painful SQL Server Backup and Recovery" href="http://www.quest.com/webcast-ondemand/-experts-perspective-webcast-five-incredibly-painful-sql-server-backup816067.aspx" target="_blank"&gt;Ten Incredibly Painful SQL Server Backup and Recovery Mistakes&lt;/a&gt;, with me and David Gugick.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align:center;"&gt;&lt;a href="http://www.quest.com/webcast-ondemand/-experts-perspective-webcast-five-incredibly-painful-sql-server-backup816067.aspx"&gt;&lt;img class="aligncenter size-medium wp-image-1846" title="EP, backup mistakes" alt="" src="http://kevinekline.com/wp-content/uploads/2011/12/EP-backup-mistakes-300x179.jpg" width="497" height="294"&gt;&lt;/a&gt;&lt;/p&gt;
&amp;nbsp;
&lt;h2&gt;The Research Reveals&lt;/h2&gt;
The cool revelation here is not that I can admit my mistakes.  The take-away from this blog post are all the great articles I read writing my latest slide deck.  These blogs and articles were so good that I needed to spread the word.  Add these to your &lt;span style="text-decoration:underline;"&gt;must read&lt;/span&gt; list:
&lt;h3&gt;Virtual Log Files must be tamed!&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a title="SQL Server VLF Behavior Benchmarked" href="http://sqlblog.com/blogs/linchi_shea/archive/2009/02/09/performance-impact-a-large-number-of-virtual-log-files-part-i.aspx" target="_blank"&gt;Performance impact: a large number of virtual log files Part I&lt;/a&gt; and &lt;a title="SQL Server VLF Behavior Benchmarked" href="http://sqlblog.com/blogs/linchi_shea/archive/2009/02/12/performance-impact-a-large-number-of-virtual-log-files-part-ii.aspx" target="_blank"&gt;Part II&lt;/a&gt; by one of my favorite not-so-prolific bloggers, Linchi Shea (&lt;a title="Linchi Shea's Blog" href="http://sqlblog.com/blogs/linchi_shea/default.aspx" target="_blank"&gt;blog&lt;/a&gt;). The thing I love about Linchi's content is its rich benchmarking information.  Few SQL Server experts out there routinely test the behavior and performance of specific SQL Server features like Linchi does.&lt;/li&gt;
	&lt;li&gt;&lt;a title="SQL Server Slow recovery times and slow performance due to Virtual Log Files" href="http://blogs.msdn.com/b/grahamk/archive/2008/05/16/slow-recovery-times-and-slow-performance-due-to-large-numbers-of-virtual-log-files.aspx" target="_blank"&gt;Slow recovery times and slow performance due to large numbers of Virtual Log Files&lt;/a&gt;, by Graham Kent (&lt;a title="Graham Kent's Blog" href="http://blogs.msdn.com/grahamk" target="_blank"&gt;blog&lt;/a&gt;) of Microsoft Sweden, shows that VLFs impact not only the processing time of transactions but also B&amp;amp;R processes.&lt;/li&gt;
	&lt;li&gt;&lt;a title="Lots of SQL Server VLFs are Bad!" href="http://sqlblogcasts.com/blogs/tonyrogerson/archive/2007/07/25/sql-2000-yes-lots-of-vlf-s-are-bad-improve-the-performance-of-your-triggers-and-log-backups-on-2000.aspx" target="_blank"&gt;Lots of VLFs are Bad&lt;/a&gt;, by Tony Rogerson (&lt;a title="Tony Rogerson's Blog" href="http://sqlblogcasts.com/blogs/tonyrogerson/default.aspx" target="_blank"&gt;blog&lt;/a&gt; | &lt;a title="Tony Rogerson's Twitter Feed" href="http://twitter.com/tonyrogerson" target="_blank"&gt;twitter&lt;/a&gt;), was the article that first got me interested in this behavior.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Backup and Recovery Myth Busting&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a title="SQL Server Pro Magazine's Michael K. Campbell" href="http://www.sqlmag.com/content2/topic/breaking-backup-chain-redux-eating-crow-141459/catpath/sql-server-2008-r2/seriespath/practical-sql-server-45#commentsAnchor" target="_blank"&gt;Breaking the Backup Chain - Redux (Or 'Eating Crow')&lt;/a&gt;, by Michael K. Campbell (&lt;a title="The Practical SQL Server Blog" href="http://www.sqlmag.com/blogcontent/seriespath/practical-sql-server-45" target="_blank"&gt;blog&lt;/a&gt;), shows that out-of-band database backups break differentials not transaction log backups.&lt;/li&gt;
	&lt;li&gt;&lt;a title="Paul Randal's Blog" href="http://sqlskills.com/BLOGS/PAUL/post/BACKUP-WITH-COPY_ONLY-how-to-avoid-breaking-the-backup-chain.aspx" target="_blank"&gt;Backup with COPY_ONLY, How to Avoid Breaking the Backup Chain&lt;/a&gt;, by the eminent Paul Randal (&lt;a title="Paul Randal's SQL Server Blog" href="http://sqlskills.com/BLOGS/PAUL/" target="_blank"&gt;blog&lt;/a&gt; | &lt;a title="Paul Randal's Twitter Feed" href="https://twitter.com/#!/PaulRandal" target="_blank"&gt;twitter&lt;/a&gt;), uses clear writing and first-class demos to illustrate the principle of breaking backup chains in Microsoft SQL Server.  Other great blogs of a related nature from Paul include:&lt;/li&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a title="Paul Randal's 'Debunking a Couple Myths Around SQL Server Full Backup'" href="http://sqlskills.com/BLOGS/PAUL/post/Debunking-a-couple-of-myths-around-full-database-backups.aspx" target="_blank"&gt;Debunking a Couple Myths around Full Backup&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a title="Paul Randal's 'The Importance of Validating SQL Server Backups'" href="http://sqlskills.com/BLOGS/PAUL/post/Importance-of-validating-backups.aspx" target="_blank"&gt;The Importance of Validating Backups&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a title="Paul Randal's '30 Backup Myths'" href="http://sqlskills.com/BLOGS/PAUL/post/A-SQL-Server-DBA-myth-a-day-(3030)-backup-myths.aspx" target="_blank"&gt;30 Backup Myths&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h3&gt;Other Good Sources&lt;/h3&gt;
And just in case you need a refreshing in the basics of SQL Server backup and recovery, check these out:
&lt;ul&gt;
	&lt;li&gt;&lt;a title="Brent Ozar's Backup Best Practices" href="http://www.brentozar.com/sql/backup-best-practices" target="_blank"&gt;Backup best practices from Brent Ozar &lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a title="MSDN's 'SQL Server Backup 101'" href="http://msdn.microsoft.com/en-us/library/ms190374.aspx" target="_blank"&gt;Backup 101 - recovery models and transaction log management&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>