如何從 MS SQL Server 儲存不需要的數據

如何從 MS SQL Server 儲存不需要的數據

我被要求截斷 MS SQL Server 2008 中的一個大表。它永遠不需要改變,只需查看。

問題是,由於我日常不需要這些數據,我該如何處理它來保護和備份它?

請記住,我可能需要每兩年訪問一次,如果恢復過程需要幾個小時,這對我們來說很好。

整個表大約有 300 萬行,我需要將其截斷為大約 100 萬行。

答案1

您打算如何存取表格資料?

如果您使用的是稍微靈活的東西(您自己的程式碼或簡單的 SQl 查詢),那麼一個簡單的方法是將所需的表複製到另一個資料庫並將其與伺服器分離。然後,截斷表(或刪除不需要的行,儘管您可能需要檢查執行此操作時的 T-Log 大小)。

當您需要時,您始終可以以唯讀模式從儲存空間重新安裝相關資料庫。如果您需要同時對多個備份執行查詢,您可以建立一個重新分組所有資料的視圖。

如果您使用的軟體不允許您自訂該表的存取方式,您仍然可以將該表單獨複製到另一個資料庫,但恢復該備份可能會出現問題,因為您需要合併現有上下文(另一個表指出)使用舊數據。另外,資料結構可能已經改變,使其幾乎無法恢復。

因此,在這種情況下,我建議您只需備份整個資料庫並將其儲存(最好與存取它的軟體版本一起儲存)。

答案2

300 萬行並不是很多,特別是對 sql server 來說。此外,您不能截斷表並保留行。截斷完全清空。

即使您有時間,刪除也很慢。

我會右鍵單擊您的表,編寫腳本,建立新表。將其重新命名為 Table_Backup11232011,請確保也重新命名您的主鍵...

insert into Table_Backup11232011 select * from oldtable

truncate table oldtable

現在,您有了備份和新的表。 300 萬行可能只花費幾百兆字節,這不算什麼。

答案3

歸檔/可存取性:這是一個想法... 1) 執行資料刪除2) 將tyhat 表放入自己的SQL 檔案組3) 將檔案燒錄到只讀設備(空間允許) 4) 使用ALTER TABLE 重新定義whaere該檔案是並將其定義為只讀 5) 派對上,Garth!

現在,資料已從您的硬碟中刪除,無法更改,但在需要時仍然可用。

相關內容