Sql-Server

在不影響應用程序的情況下釋放 SQL 上的磁碟空間

  • September 26, 2021

我們有 1 TB 磁碟幾乎已滿(85%)。我們將通過以下方法在不影響應用程序可用性的情況下釋放磁碟空間。請建議這種方法看起來不錯還是有其他更好的方法?

  1. 創建具有新容量的新驅動器(H)
  2. 創建新的 APP_DB_NEW 數據庫
  3. 在 APP_DB_NEW 數據庫中創建表、儲存過程、索引等
  4. 授予對 APP_DB_NEW 數據庫的所有必需訪問權限,類似於 APP_DB 數據庫
  5. 停止 IIS
  6. 將 APP_DB 重命名為 APP_DB_ARCHIVE,然後將 APP_DB_NEW 重命名為 APP_DB
  7. 啟動 IIS

在 #6 應用程序將開始將數據寫入新的空白數據庫。也知道#6 需要多少時間才能完成。每個月大約有 200 GB 的數據被添加到數據庫中。

我們也在尋找避免步驟 #5 的建議

只需將另一個數據文件添加到新驅動器上數據庫的主文件組。SQL Server 會將大部分新數據寫入該文件,直到兩個文件變得同樣滿為止。

幾乎沒有停機時間的一種選擇:

  • 使用 Windows 動態磁碟鏡像驅動器,其中第二個驅動器大於原始驅動器
  • 等待完全同步
  • 分離原件,並刪除其標記的捲Missing
  • 擴大音量以填滿整個驅動器
  • 理想情況下,用與其他新驅動器大小相同的新驅動器替換原驅動器

引用自:https://dba.stackexchange.com/questions/300160