2009-03-03 46 views
0

我們的客戶使用SQLServer/Oracle數據庫。多年來,我們向他們發送了許多更新腳本,他們必須手動運行。大多數情況下,一切都很順利,但是每一個腳本都沒有完全運行,或者有一些錯誤(在升級時未檢測到)。此外,無論出於何種原因,有時甚至「智能用戶」都會將索引/表添加到這些數據庫本身中。之後,這些違規行爲會導致問題。如何根據我的數據庫模式驗證客戶端數據庫?

現在我的任務是找出一種方法來根據我們自己的數據庫模式(表,數據類型,索引,視圖等)驗證/驗證我們的客戶數據庫。輸出應該是某種差異文件,指示缺少的內容/數據庫中不應該包含的內容。我可以在應用程序內部以代碼(C++)的方式執行此操作,或者我可以爲此創建一個外部工具。

現在在我開始編碼之前,我想問問是否已經有一個工具可以產生必要的結果,或者至少可以幫助我從主數據庫生成一個體面的xml文件(Oracle和SQLServer )?還是有一個圖書館可以幫助我編寫我自己的工具?

回答

3

我以前使用過這種技術,它不需要購買任何工具。

企業管理器具有「創建腳本」功能。在參考數據庫和比較數據庫上執行此操作。選擇適當的選項爲您關心的對象生成腳本。接下來,只需比較兩個生成的文件與您最喜愛的差異工具。

您可以使用可讓您導出DDL腳本的Oracle工具執行類似的過程。

0

我們使用Redgate SQL Compare進行此操作,多年來一直爲我們服務。

我們還使用Redgate SQL數據比較來比較查找表的內容。

+0

我有一個快速瀏覽... - 問題1:我需要我可以發送給客戶端的東西,因爲不是所有的人都會將他們的數據庫發送給我們。 - 問題2:我們的一些客戶使用Oracle – ToastedSoul 2009-03-03 14:21:23

+0

啊,oracle位是個問題。但是對於問題1,你可以讓他們給你發一個乾淨的數據庫還原或像丹尼爾在下面說的那樣,讓他們導出所有模式腳本並在本地運行。 – 2009-03-03 14:26:25

0

在redgate的人有一個偉大的工具,稱爲SQL Compare

0

如果你使用Windoze,我已經使用了多年的高級查詢工具,並且可以證明,對於金錢來說,它比其他任何東西都重要。特別是,它會在數據庫之間生成差異報告。它是ODBC/VB6,可以針對數十個數據庫運行。一探究竟。 (不,我不屬於QueryTool,也不擁有它的任何部分,只是一個快樂的客戶端。)

1

有使用紅門工具三個選項:

  1. 讓你的客戶端運行比較。 您需要說服您的 客戶端購買SQL的許可證 比較並向他們發送數據庫的模式 快照。
  2. 使用紅色編寫您自己的應用程序 Gate的SQL比較SDK(售價$ 595 for 10個發行版),可在客戶端站點運行 。
  3. 請求您的客戶端向您發送模式快照,並使用您自己的 副本SQL Compare自行運行比較。Red Gate 提供一個名爲SQL Snapper的免費模式快照工具 ,該工具將創建 快照,然後客戶可以通過電子郵件將其發送給您 。由於這不包括任何數據,這可能是您的客戶願意考慮的事情。

SQL Snapper工具和SQL比較SDK示例代碼可以從我們的labs.red-gate.com網站下載。

Oracle兼容性現在以Early Access Build的形式提供。如果您有興趣或想嘗試使用工具visit the product page。您可以免費使用此工具,直到完整版本的工具。

大衛阿特金森,產品經理,紅門軟件。