{"id":1558,"date":"2018-02-24T14:01:41","date_gmt":"2018-02-24T14:01:41","guid":{"rendered":"http:\/\/www.theSQLReport.com\/?p=1558"},"modified":"2018-06-23T14:32:41","modified_gmt":"2018-06-23T14:32:41","slug":"problem-patching-a-sql-server-cluster","status":"publish","type":"post","link":"http:\/\/www.theSQLReport.com\/?p=1558","title":{"rendered":"Problem Patching a SQL Server Cluster"},"content":{"rendered":"<h3><strong>Problem:<\/strong><\/h3>\n<p>I was working with a SQL Server 2014 two node cluster in our test environment.\u00a0 After the cluster had been setup, I was asked to change the drive letters of the disks used by the database role in the cluster.\u00a0 I was unaware the issues that this would cause patching.<\/p>\n<p>Following the standard patching procedure, move all resources to the second node while patching the first node.\u00a0 After successfully patching the first node, I attempted to move the resources from the second node back to the first node, and failed with the following warnings and errors in the FailoverClustering log in the Event Viewer:<\/p>\n<h6>Warning &#8211;<br \/>\n[RES] SQL Server &lt;SQL Server (&#8230;)&gt;: [sqsrvres] Worker Thread (&#8230;): ReAclDirectory : Failed to apply security to &#8230;\\MSSQL\\Data (&#8230;).<\/h6>\n<h6>Warning &#8211;<br \/>\n[RES] SQL Server &lt;SQL Server (&#8230;)&gt;: [sqsrvres] Worker Thread (&#8230;): ReAclDirectory : Failed to apply security to &#8230;\\MSSQL\\Log (&#8230;)<\/h6>\n<h6>Warning &#8211;<br \/>\n[RES] SQL Server &lt;SQL Server (&#8230;)&gt;: [sqsrvres] Worker Thread (&#8230;): ReAclDirectory : Failed to apply security to &#8230;\\MSSQL\\Backup (&#8230;)<\/h6>\n<h6>Warning &#8211;<br \/>\n[RES] SQL Server &lt;SQL Server (&#8230;)&gt;: [sqsrvres] Worker Thread (&#8230;): DoREPLSharedDataUpgrade : Failed to create working directory.<\/h6>\n<h6>Error &#8211;<br \/>\n[RES] SQL Server &lt;SQL Server (&#8230;)&gt;: [sqsrvres] SQL Cluster shared data upgrade failed with error 0 (worker retval = 3). Please contact customer support<\/h6>\n<h3><strong>Resolution:<\/strong><\/h3>\n<p>First Thank You to Pinal Dave for publishing:<\/p>\n<h5 class=\"w-blog-post-title entry-title\"><a href=\"https:\/\/blog.sqlauthority.com\/2016\/12\/16\/sql-server-unable-bring-resource-online-error-doreplshareddataupgrade-failed-create-working-directory\/\" target=\"_blank\">SQL SERVER \u2013 Unable to bring resource online \u2013 Error DoREPLSharedDataUpgrade : Failed to create working directory<\/a><\/h5>\n<p>Because SQL Server would not start up on the first node of the cluster, I had to patch the second node with SQL Server shutdown, which was a total outage of SQL Server.<\/p>\n<ol>\n<li>On the second node of the cluster, I shutdown SQL Server and the SQL Agent, but brought all the disks for that role back to an on-line status.<\/li>\n<li>Following Pinal Dave&#8217;s post listed above, I searched and changed every registry entries found with the old drive letters with in the folder:\n<ul>\n<li>HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER\\<\/li>\n<\/ul>\n<\/li>\n<li>For the directories listed in the errors above (DATA, LOG, BACKUP, and repldata), I change the security on the folder to &#8220;Full Access&#8221; for the Everyone group.\u00a0 However I believe this was my own internal security issue related to my user account attempting to apply the patch.<\/li>\n<li>Then I applied the SQL Server patch successfully.<\/li>\n<li>For the directories that I granted Everyone group &#8220;Full Access&#8221; in step 3, I removed the Everyone group from those four folders.<\/li>\n<li>Then I brought the SQL Server role online &amp; verified the updated patch (SELECT @@VERSION).<\/li>\n<li>Then I moved the SQL Server role over to the first node &amp; again verified the patch.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Problem: I was working with a SQL Server 2014 two node cluster in our test environment.\u00a0 After the cluster had been setup, I was asked to change the drive letters &hellip; <a class=\"readmore\" href=\"http:\/\/www.theSQLReport.com\/?p=1558\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":1566,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,10],"tags":[],"class_list":["post-1558","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sql-server","category-windows"],"_links":{"self":[{"href":"http:\/\/www.theSQLReport.com\/index.php?rest_route=\/wp\/v2\/posts\/1558"}],"collection":[{"href":"http:\/\/www.theSQLReport.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.theSQLReport.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.theSQLReport.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.theSQLReport.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1558"}],"version-history":[{"count":11,"href":"http:\/\/www.theSQLReport.com\/index.php?rest_route=\/wp\/v2\/posts\/1558\/revisions"}],"predecessor-version":[{"id":1571,"href":"http:\/\/www.theSQLReport.com\/index.php?rest_route=\/wp\/v2\/posts\/1558\/revisions\/1571"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.theSQLReport.com\/index.php?rest_route=\/wp\/v2\/media\/1566"}],"wp:attachment":[{"href":"http:\/\/www.theSQLReport.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.theSQLReport.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1558"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.theSQLReport.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}