簡體   English   中英

ADO和Microsoft SQL數據庫備份和歸檔

[英]ADO and Microsoft SQL database backup and archival

我正在研究工具的重新設計/升級。 數據庫通信使用C ++(非托管ADO),並連接到SQL Server 2005。

我對歸檔和備份/還原技術有一些疑問。

  1. 通常,存檔不同於備份/還原。 有人可以提供任何鏈接向我解釋。目前,該解決方案使用bcp工具進行存檔。我在代碼中看到了對表名的大量依賴。 在選擇設計時我必須考慮什么(考慮到我必須在單擊按鈕時占用備份/存檔,最大數據庫大小為100mb)

  2. 將整個通信移至.net會有幫助嗎? 考慮使用許多ORM工具。 所有的業務邏輯和UI都在C#中

  3. 驗證檔案數據的最佳方法是什么?

PS:問題可能太高了,但是我沒有任何適當的鏈接來理解這一點。 如果有人可以回答,那將非常有幫助。 我可以提供更多細節!

提前致謝!

100 MB時,我想您可能不應該在歸檔上花費太多時間,而應使用傳統的備份策略。 數據庫的大小是如此之小,以至於歸檔將是一項非常復雜的操作,幾乎沒有收益,因為歸檔過程通常僅在大型數據庫中才有意義。

一般來說,數據庫備份是一種在發生災難(意外數據刪除,服務器崩潰等)的情況下提供可恢復性的方法。 歸檔主要是指您對數據進行分區。

歸檔的一個可能目標是保持特定數據可用於查詢,但不能更改它。 當處理大量數據庫時,這是提高性能的絕佳方法,因為只讀數據的索引比“熱”數據要密集得多。 它還允許您將只讀數據移至針對READ操作進行了優化的隔離RAID分區,而不必為典型的RDBMS IO煩惱。 另外,通過從常規數據庫中刪除非活動數據意味着表中包含的數據大小將減小,這將提高整個系統的性能。

歸檔通常是出於法律原因進行的。 有問題的數據可能不再對業務很重要,但是IRS或銀行業規則要求它必須在一定時間內可用。

使用SQL Server,您可以使用分區策略來歸檔數據。 通常,這涉及確定將分割數據所依據的標准。 日期的一個例子就是日期(即,超過3年的數據將被移至數據庫的存檔部分)。 在大型系統的情況下,根據地理標准(即一台服務器上的美洲,另一台服務器上的歐洲)拆分數據也很有意義。

要回答您的問題:

1)參見上面的說明2)確實取決於升級的目標。 將其移至.NET即可對代碼進行管理,但這對企業有多重要? 3)如果您決定進行分區,則要驗證其是否有效,可以包括在原始數據庫上查詢包含將用於分區的閾值前后的值的數據,然后拆分數據,然后重新發出查詢然后驗證它仍然返回相同的記錄集。 如果將系統配置為使用自動滑動窗口 ,則還可以密切注意系統以確保將數據自動移動到歸檔分區。

同樣,如果100MB不是一個錯字,我認為您的數據庫太小,無法真正從歸檔中受益。 如果您的目標是加快速度,請將系統放在能夠將整個數據庫加載到RAM或使用SSD驅動器的服務器上。

如果出於法律或行政原因需要建立數據檔案,請查看水平表分區。 這是一個非常簡單的過程,大部分由SQL Server自動處理。

希望這可以幫助你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM