{"id":30016,"date":"2017-04-04T08:30:25","date_gmt":"2017-04-04T15:30:25","guid":{"rendered":"https:\/\/virtual-dba.com\/?p=30016"},"modified":"2021-02-10T18:11:18","modified_gmt":"2021-02-11T01:11:18","slug":"changing-storage-in-an-always-on-environment","status":"publish","type":"post","link":"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/","title":{"rendered":"Changing Storage in an Always On Environment"},"content":{"rendered":"<p><span style=\"font-weight: 400; color: #000000;\">I was recently given a task to move a few multi-terabyte databases inside of an availability group from SAN A to SAN B within a 10-minute window. The good news was there was plenty of time to plan and prepare. For the purpose of this example, I will be using a very small database and just moving from the C: drive to a D: drive; but functionally and, in principle, it is the same. As you can see below the files for the database 12AG are located on the C: drive.<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #000000;\">We will accomplish the move using log shipping. This approach allows us to stage the entire database on the new storage and keep it updated until we reach our maintenance window. &nbsp;While I am not going to go into detail on how to setup log shipping, I will say it needs to be configured on the primary replica. In this example, I configured log shipping to ship from the primary replica to the primary replica to a database with a different name. See below:<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-30019 size-full\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-1.jpeg\" alt=\"database-12AG-c-drive\" width=\"558\" height=\"244\" srcset=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-1.jpeg 558w, https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-1-300x131.jpeg 300w\" sizes=\"(max-width: 558px) 100vw, 558px\" \/><\/span><\/p>\n<h2><span style=\"color: #000000;\">Steps to Take<\/span><\/h2>\n<p><span style=\"font-weight: 400; color: #000000;\">Once you have log shipping setup and the log shipped database is current, you are ready to begin your maintenance window. The following steps will allow you to change storage and keep you AG in sync with minimal downtime.<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #000000;\">1. Disable the log shipping backup jobs.<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #000000;\">We do this to ensure we know exactly where we are in the backup chain. Further, we will take two final log backups which will need to be manually restored, and it will be much easier if we don\u2019t have to worry about additional log files from the log shipping routines.<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #000000;\">2. Manually run the copy and restore jo<span style=\"font-weight: 400;\">b to ensure all of the logs are processed to the temporary LS database (DBName -12AG).<\/span><\/span><\/p>\n<p><span style=\"font-weight: 400; color: #000000;\">Run the copy and restore jobs to ensure that we have completed the log shipping aspect of the move. We will clean up the log shipping artifacts later, as we don\u2019t want to take steps that can be done outside of the window until we have completed the move.<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #000000;\">3.&nbsp;<span style=\"font-weight: 400;\">Connect to the primary replica, verify that all of the secondary nodes are synchronized and remove the database from the availability group.<\/span><\/span><\/p>\n<p style=\"padding-left: 30px;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-30020\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-2.jpeg\" alt=\"remove-database-availability-group\" width=\"482\" height=\"389\" srcset=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-2.jpeg 482w, https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-2-300x242.jpeg 300w\" sizes=\"(max-width: 482px) 100vw, 482px\" \/><\/p>\n<p><span style=\"font-weight: 400; color: #000000;\">This step will cause all of the secondary nodes to revert back to a restoring state\u2014and become unreadable. If you have routing configured, it will no longer send read-only requests to the secondary replicas. At this time, your application will not longer be able to connect.<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #000000;\">4. Create&nbsp;<span style=\"font-weight: 400;\">a manual transaction log backup of the source database &#8211; (DBName &#8211; 12AG on the primary Replica)<\/span><\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #000000;\">a. Select the <strong>Backup the&nbsp;tai<\/strong><b>l of the log and leave the database in the restoring state<\/b> to ensure no additional transactions are allowed<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #000000;\">b. Be sure to note the location and name of this out of band log backup as it will need to manually restored to the temp LS database (DBName &#8211; 12AG) as well as the database on all replicas in the AG<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #000000;\">This step sets the database on the primary replica to a restoring state. This is important because not everyone has the ability to fully stop their application. By doing this, it will ensure that all transactions are captured and prevent any additional transactions from being written. &nbsp;<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #000000;\">Depending on your environment and how busy your database is, you may run into an issue where exclusive access cannot be attained, and are therefore unable to perform this action. Because of this possibility, I recommend scripting the log backup with the tail of the log. This will enable you to script putting the database into single user mode and executing the log backup from the same window. The script can be generated from the clicking script on the backup window, but do not set to single user and then try to do the backup via the GUI. You risk the connection being grabbed by another process\u2014and then you\u2019ll be scrambling.<\/span><\/p>\n<p style=\"padding-left: 90px;\"><span style=\"background-color: #d0d0ce;\"><span style=\"color: #000000;\"><span style=\"color: #0000ff;\"><span style=\"font-weight: 400;\">USE<\/span> <span style=\"font-weight: 400;\">master<\/span><\/span><span style=\"font-weight: 400;\">;<\/span><br \/>\n<\/span> <span style=\"font-weight: 400; color: #000000;\">GO<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"color: #0000ff;\"><span style=\"font-weight: 400;\">ALTER<\/span> <span style=\"font-weight: 400;\">DATABASE<\/span><\/span><span style=\"font-weight: 400; color: #000000;\"> 12AG<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400; color: #0000ff;\">SET<\/span><span style=\"font-weight: 400; color: #000000;\"> SINGLE_USER<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"color: #0000ff;\"><span style=\"font-weight: 400;\">WITH<\/span> <span style=\"font-weight: 400;\">ROLLBACK<\/span> <span style=\"font-weight: 400;\">IMMEDIATE<\/span><\/span><span style=\"font-weight: 400;\">;<\/span><\/span><\/p>\n<p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">*SQL Authority does a good job of explaining the &#8216;with rollback immediate&#8217; option if you&#8217;re not familiar with it <\/span><a style=\"color: #000000;\" href=\"https:\/\/blog.sqlauthority.com\/2010\/03\/17\/sql-server-difference-between-rollback-immediate-and-with-no_wait-during-alter-database\/\"><span style=\"font-weight: 400;\">here<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-30021\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-3.jpeg\" alt=\"backup-database\" width=\"634\" height=\"460\" srcset=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-3.jpeg 634w, https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-3-300x218.jpeg 300w\" sizes=\"(max-width: 634px) 100vw, 634px\" \/><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"font-weight: 400; color: #000000;\">5. Restore the transaction log you just took (of DBName &#8211; 12AG) to the primary Replica\u2019s log shipped database (DBName -12AGTemp) using the \u2018with recovery\u2019 option.<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #000000;\">6.&nbsp;<span style=\"font-weight: 400;\">Delete the original database on the primary replica (DBName &#8211; 12AG)<\/span><\/span><\/p>\n<p style=\"padding-left: 90px;\"><span style=\"background-color: #d0d0ce;\"><span style=\"font-weight: 400; color: #0000ff;\">DROP DATABASE 12AG<\/span><\/span><\/p>\n<p><span style=\"font-weight: 400; color: #000000;\">While this step sounds scary, it is necessary. When you set up the log shipped database, you\u2019re required to give it a different name than the original database. After you drop the original database, we will rename this database the original name.<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #000000;\">7. Set the log shipped database to Multi-User<\/span><\/p>\n<p><span style=\"color: #000000;\">We set the database to Multi-User before renaming because, once the&nbsp;<span style=\"font-weight: 400;\">database is renamed, read\/write connections will be accepted from the application on the primary replica. If we rename prior to setting to multi-user, we risk losing the connection since the database was set to single user.<\/span><\/span><\/p>\n<p style=\"padding-left: 90px;\"><span style=\"background-color: #d0d0ce;\"><span style=\"color: #000000;\"><span style=\"color: #0000ff;\"><span style=\"font-weight: 400;\">USE<\/span> <span style=\"font-weight: 400;\">master<\/span><\/span><span style=\"font-weight: 400;\">;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\">GO<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"color: #0000ff;\"><span style=\"font-weight: 400;\">ALTER<\/span> <span style=\"font-weight: 400;\">DATABASE<\/span><\/span><span style=\"font-weight: 400;\"> 12AGtemp<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400; color: #0000ff;\">SET<\/span><span style=\"font-weight: 400;\"> MULTI_USER<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"color: #0000ff;\"><span style=\"font-weight: 400;\">WITH<\/span> <span style=\"font-weight: 400;\">ROLLBACK<\/span> <span style=\"font-weight: 400;\">IMMEDIATE<\/span><\/span><span style=\"font-weight: 400;\">;<\/span><\/span><\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #000000;\">8. Rename the log shipped database to the original database name.<\/span><\/p>\n<p style=\"padding-left: 90px;\"><span style=\"color: #000000;\"><span style=\"background-color: #d0d0ce;\"><span style=\"color: #0000ff;\"><span style=\"font-weight: 400;\">USE<\/span> <span style=\"font-weight: 400;\">master<\/span><\/span><span style=\"font-weight: 400;\">;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\">GO<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"color: #0000ff;\"><span style=\"font-weight: 400;\">ALTER<\/span> <span style=\"font-weight: 400;\">DATABASE<\/span><\/span><span style=\"font-weight: 400;\"> 12AGtemp<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\"><span style=\"color: #0000ff;\">Modify Name<\/span> = <\/span><span style=\"font-weight: 400;\">[12AG];<\/span><\/span><\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #000000;\">9. Take a 2nd transaction log backup of the newly renamed database on the primary replica<\/span><\/p>\n<p><span style=\"color: #000000;\">We have t<span style=\"font-weight: 400;\">o take a 2nd transaction log backup because the first transaction log backup has the read-only flag set. This will keep us from being able to add the database back to the availability group on the secondary replicas.<\/span><\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #000000;\">10. Restore both of the transaction logs to all secondary replicas using&nbsp;the <strong>No Recovery<\/strong> option<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #000000;\">If you recover the database on the secondary replicas, you will have to reinitialize the database on that replica. Since we are trying to do this with as little downtime as possible given our requirements, the importance of using the no recovery option on the secondary replicas is significant.<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #000000;\">11. On the primary replica, join the database back to the availability group using the <strong>Join Only<\/strong> option.<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #000000;\">12.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-30022\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-4.jpeg\" alt=\"add-database\" width=\"375\" height=\"275\" srcset=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-4.jpeg 375w, https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-4-300x220.jpeg 300w\" sizes=\"(max-width: 375px) 100vw, 375px\" \/><\/span><\/p>\n<p style=\"padding-left: 30px;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-30023\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-5.jpeg\" alt=\"add-database-availability-group\" width=\"526\" height=\"474\" srcset=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-5.jpeg 526w, https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-5-300x270.jpeg 300w\" sizes=\"(max-width: 526px) 100vw, 526px\" \/><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #000000;\">13. Verify synchronization and connectivity.<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #000000;\">You can see from the dashboard all of our replicas are functioning as expected and available for either read\/write or read connections, as defined in the availability group. The 3rd node is an asynchronous replica. Its state is synchronizing and could allow for data loss in the event of a manual failover, but still accepts new transactions.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-30024\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-6.jpeg\" alt=\"replica-dashboard\" width=\"641\" height=\"320\" srcset=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-6.jpeg 641w, https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-6-300x150.jpeg 300w\" sizes=\"(max-width: 641px) 100vw, 641px\" \/><\/p>\n<p><span style=\"color: #000000;\">We can also verify our files are now in the new location.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-30025\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-7.jpeg\" alt=\"files-in-new-location\" width=\"418\" height=\"266\" srcset=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-7.jpeg 418w, https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-7-300x191.jpeg 300w\" sizes=\"(max-width: 418px) 100vw, 418px\" \/><\/p>\n<p><span style=\"color: #000000;\">At this point, your application should be fully up and running. Read-only requests will route to the appropriate replica (if you have that configured) and you can end your maintenance window.<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #000000;\">14. Clean up log shipping artifacts<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #000000;\">Since log shipping is based on database name, the database will still be configured for log shipping. All we need to do is disable the database for log shipping, and SQL Server will clean up all of the artifacts\u2014including the jobs.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-30026\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-8.jpeg\" alt=\"enable-as-primary-database-in-log-shipping-configuration\" width=\"442\" height=\"403\" srcset=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-8.jpeg 442w, https:\/\/virtual-dba.com\/wp-content\/uploads\/Todd-Harness-8-300x274.jpeg 300w\" sizes=\"(max-width: 442px) 100vw, 442px\" \/><\/p>\n<p><span style=\"font-weight: 400; color: #000000;\">As you can see, we are able to move locations with minimal downtime by using this approach. &nbsp;We could further reduce the downtime by scripting the log backups and restores in advance on all replicas, as well as the adding the database back into the availability group. By scripting each step, you will be able to move the storage as fast as a log backup and restore will take (with only a few additional seconds) to remove and join the database to the availability group. As with any process, you should test this and be very comfortable with each step prior to running in a production environment.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I was recently given a task to move a few multi-terabyte databases inside of an availability group from SAN A to SAN B within a 10-minute window. The good news was there was plenty of time to plan and prepare. For the purpose of this example, I will be using a very small database and [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":30256,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","content-type":"","footnotes":""},"categories":[4166,55],"tags":[1957,1843,1842,60],"class_list":["post-30016","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-sql-server","tag-always-on","tag-availability-group","tag-log-shipping","tag-sql-server"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.1 (Yoast SEO v27.1.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Changing Storage in an Always On Environment in SQL Server<\/title>\n<meta name=\"description\" content=\"Moving large databases inside an availability group using the &quot;log shipping&quot; method. Learn how this can be done in SQL Server.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Changing Storage in an Always On Environment\" \/>\n<meta property=\"og:description\" content=\"Moving large databases inside an availability group using the &quot;log shipping&quot; method. Learn how this can be done in SQL Server.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/\" \/>\n<meta property=\"og:site_name\" content=\"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts\" \/>\n<meta property=\"article:published_time\" content=\"2017-04-04T15:30:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-11T01:11:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/virtual-dba.com\/media\/changing-storage-always-on-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"546\" \/>\n\t<meta property=\"og:image:height\" content=\"287\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"XTIVIA\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@virtual_dba\" \/>\n<meta name=\"twitter:site\" content=\"@virtual_dba\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"XTIVIA\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/\"},\"author\":{\"name\":\"XTIVIA\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/person\/2d86f74bed0c3f1b49100f7fdf7d78d1\"},\"headline\":\"Changing Storage in an Always On Environment\",\"datePublished\":\"2017-04-04T15:30:25+00:00\",\"dateModified\":\"2021-02-11T01:11:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/\"},\"wordCount\":1275,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\/\/virtual-dba.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/changing-storage-always-on-1.jpg\",\"keywords\":[\"always on\",\"availability group\",\"log shipping\",\"sql server\"],\"articleSection\":[\"Blog\",\"SQL Server\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/\",\"url\":\"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/\",\"name\":\"Changing Storage in an Always On Environment in SQL Server\",\"isPartOf\":{\"@id\":\"https:\/\/virtual-dba.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/changing-storage-always-on-1.jpg\",\"datePublished\":\"2017-04-04T15:30:25+00:00\",\"dateModified\":\"2021-02-11T01:11:18+00:00\",\"description\":\"Moving large databases inside an availability group using the \\\"log shipping\\\" method. Learn how this can be done in SQL Server.\",\"breadcrumb\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#primaryimage\",\"url\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/changing-storage-always-on-1.jpg\",\"contentUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/changing-storage-always-on-1.jpg\",\"width\":546,\"height\":287,\"caption\":\"changing-storage-always-on-environment\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/virtual-dba.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Changing Storage in an Always On Environment\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/virtual-dba.com\/#website\",\"url\":\"https:\/\/virtual-dba.com\/\",\"name\":\"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts\",\"description\":\"Remote Database Administration\",\"publisher\":{\"@id\":\"https:\/\/virtual-dba.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/virtual-dba.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/virtual-dba.com\/#organization\",\"name\":\"Virtual-DBA: Remote DBA | Remote Database Administration\",\"alternateName\":\"Virtual-DBA powered by XTIVIA\",\"url\":\"https:\/\/virtual-dba.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg\",\"contentUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg\",\"width\":557,\"height\":291,\"caption\":\"Virtual-DBA: Remote DBA | Remote Database Administration\"},\"image\":{\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/virtual_dba\",\"https:\/\/www.linkedin.com\/showcase\/36220649\/\",\"https:\/\/www.youtube.com\/channel\/UCx3AIeUQ2ziTLKZSJDZ-SEg\"],\"description\":\"Eliminate database downtime and spiraling costs with XTIVIA\u2019s Virtual-DBA. In today\u2019s always-on business world, gaps in 24x7 on-call DBA support, neglected maintenance and security, or a stretched team struggling with overwhelming workloads can lead to costly disruptions and threaten business continuity. XTIVIA\u2019s Virtual-DBA provides the immediate, expert database administration you need, exactly when you need it, ensuring optimal performance, ironclad security, and significant cost savings without the burden of expanding your in-house team. The goal of Virtual-DBA is to provide a cost-effective solution for organizations seeking to optimize the security, management, maintenance, availability, and performance of their critical business systems, whether self-managed or cloud-managed (e.g., AWS RDS, Azure SQL Database). We accomplish this through a comprehensive remote DBA service offering designed specifically to meet the Oracle\u00ae, DB2\u00ae, Informix\u00ae, MySQL\u2122, PostgreSQL\u00ae, MongoDB\u00ae, MariaDB, and Microsoft SQL Server\u00ae, CockroachDB, Databricks, AWS, and Azure needs of our clients.\",\"email\":\"info@xtivia.com\",\"telephone\":\"8886853101\",\"legalName\":\"XTIVIA, Inc\",\"foundingDate\":\"1992-05-01\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"201\",\"maxValue\":\"500\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/person\/2d86f74bed0c3f1b49100f7fdf7d78d1\",\"name\":\"XTIVIA\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0d3648a00e319a37cf8d6d19f762acfbbb4fd0320fd8a6d6b1e64f44a2a6f259?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0d3648a00e319a37cf8d6d19f762acfbbb4fd0320fd8a6d6b1e64f44a2a6f259?s=96&d=mm&r=g\",\"caption\":\"XTIVIA\"},\"url\":\"https:\/\/virtual-dba.com\/author\/xtivia\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Changing Storage in an Always On Environment in SQL Server","description":"Moving large databases inside an availability group using the \"log shipping\" method. Learn how this can be done in SQL Server.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/","og_locale":"en_US","og_type":"article","og_title":"Changing Storage in an Always On Environment","og_description":"Moving large databases inside an availability group using the \"log shipping\" method. Learn how this can be done in SQL Server.","og_url":"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/","og_site_name":"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts","article_published_time":"2017-04-04T15:30:25+00:00","article_modified_time":"2021-02-11T01:11:18+00:00","og_image":[{"width":546,"height":287,"url":"https:\/\/virtual-dba.com\/media\/changing-storage-always-on-1.jpg","type":"image\/jpeg"}],"author":"XTIVIA","twitter_card":"summary_large_image","twitter_creator":"@virtual_dba","twitter_site":"@virtual_dba","twitter_misc":{"Written by":"XTIVIA","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#article","isPartOf":{"@id":"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/"},"author":{"name":"XTIVIA","@id":"https:\/\/virtual-dba.com\/#\/schema\/person\/2d86f74bed0c3f1b49100f7fdf7d78d1"},"headline":"Changing Storage in an Always On Environment","datePublished":"2017-04-04T15:30:25+00:00","dateModified":"2021-02-11T01:11:18+00:00","mainEntityOfPage":{"@id":"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/"},"wordCount":1275,"commentCount":3,"publisher":{"@id":"https:\/\/virtual-dba.com\/#organization"},"image":{"@id":"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#primaryimage"},"thumbnailUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/changing-storage-always-on-1.jpg","keywords":["always on","availability group","log shipping","sql server"],"articleSection":["Blog","SQL Server"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/","url":"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/","name":"Changing Storage in an Always On Environment in SQL Server","isPartOf":{"@id":"https:\/\/virtual-dba.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#primaryimage"},"image":{"@id":"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#primaryimage"},"thumbnailUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/changing-storage-always-on-1.jpg","datePublished":"2017-04-04T15:30:25+00:00","dateModified":"2021-02-11T01:11:18+00:00","description":"Moving large databases inside an availability group using the \"log shipping\" method. Learn how this can be done in SQL Server.","breadcrumb":{"@id":"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#primaryimage","url":"https:\/\/virtual-dba.com\/wp-content\/uploads\/changing-storage-always-on-1.jpg","contentUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/changing-storage-always-on-1.jpg","width":546,"height":287,"caption":"changing-storage-always-on-environment"},{"@type":"BreadcrumbList","@id":"https:\/\/virtual-dba.com\/blog\/changing-storage-in-an-always-on-environment\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/virtual-dba.com\/"},{"@type":"ListItem","position":2,"name":"Changing Storage in an Always On Environment"}]},{"@type":"WebSite","@id":"https:\/\/virtual-dba.com\/#website","url":"https:\/\/virtual-dba.com\/","name":"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts","description":"Remote Database Administration","publisher":{"@id":"https:\/\/virtual-dba.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/virtual-dba.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/virtual-dba.com\/#organization","name":"Virtual-DBA: Remote DBA | Remote Database Administration","alternateName":"Virtual-DBA powered by XTIVIA","url":"https:\/\/virtual-dba.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/","url":"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg","contentUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg","width":557,"height":291,"caption":"Virtual-DBA: Remote DBA | Remote Database Administration"},"image":{"@id":"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/virtual_dba","https:\/\/www.linkedin.com\/showcase\/36220649\/","https:\/\/www.youtube.com\/channel\/UCx3AIeUQ2ziTLKZSJDZ-SEg"],"description":"Eliminate database downtime and spiraling costs with XTIVIA\u2019s Virtual-DBA. In today\u2019s always-on business world, gaps in 24x7 on-call DBA support, neglected maintenance and security, or a stretched team struggling with overwhelming workloads can lead to costly disruptions and threaten business continuity. XTIVIA\u2019s Virtual-DBA provides the immediate, expert database administration you need, exactly when you need it, ensuring optimal performance, ironclad security, and significant cost savings without the burden of expanding your in-house team. The goal of Virtual-DBA is to provide a cost-effective solution for organizations seeking to optimize the security, management, maintenance, availability, and performance of their critical business systems, whether self-managed or cloud-managed (e.g., AWS RDS, Azure SQL Database). We accomplish this through a comprehensive remote DBA service offering designed specifically to meet the Oracle\u00ae, DB2\u00ae, Informix\u00ae, MySQL\u2122, PostgreSQL\u00ae, MongoDB\u00ae, MariaDB, and Microsoft SQL Server\u00ae, CockroachDB, Databricks, AWS, and Azure needs of our clients.","email":"info@xtivia.com","telephone":"8886853101","legalName":"XTIVIA, Inc","foundingDate":"1992-05-01","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"201","maxValue":"500"}},{"@type":"Person","@id":"https:\/\/virtual-dba.com\/#\/schema\/person\/2d86f74bed0c3f1b49100f7fdf7d78d1","name":"XTIVIA","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtual-dba.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0d3648a00e319a37cf8d6d19f762acfbbb4fd0320fd8a6d6b1e64f44a2a6f259?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0d3648a00e319a37cf8d6d19f762acfbbb4fd0320fd8a6d6b1e64f44a2a6f259?s=96&d=mm&r=g","caption":"XTIVIA"},"url":"https:\/\/virtual-dba.com\/author\/xtivia\/"}]}},"_links":{"self":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/posts\/30016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/comments?post=30016"}],"version-history":[{"count":0,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/posts\/30016\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/media\/30256"}],"wp:attachment":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/media?parent=30016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/categories?post=30016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/tags?post=30016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}