2012-01-27 59 views
1

我有兩個數據庫,一個在遠程服務器上,另一個在本地。 (SQL Server 2008)SQL Server數據庫遠程傳輸 - 最佳方法

本地服務器上的數據庫具有整個結構設置但沒有數據。我想從遠程服務器複製數據到我的服務器,我想知道在哪做的最好方法。

我遇到的主要問題是我必須訪問遠程數據庫的用戶權限有限。我無法讀取存儲過程,用戶定義的函數,所以當我使用導入/導出嚮導時,我沒有得到模式等。因此,常規轉儲/恢復不適用於我,因爲它恢復沒有主鍵/外鍵和存儲過程。

我想做到這一點,

INSERT INTO localtable SELECT * FROM remotedb.table 

我有,因爲IDENTITY領域的問題,我必須明確命名所有列。另外,我不確定SQL Server Management Studio是否允許您使用兩個不同的數據庫,遠程和本地數據庫,所以我一直在尋找任何建議。

我也嘗試過應用程序,如SQL FTP和備份,它失敗了,因爲它耗盡內存(我有16GB的內存在機器上,數據庫是4GB)。我也可以使用SQL Server導入/導出嚮導,但是我沒有得到模式信息。我也試過了Red Gate的SQL Compare,它遇到了權限問題。不幸的是,我沒有時間請求並獲得新用戶的訪問權限,所以我希望有人有創意。

+1

我想如果紅門不能做到這一點,那麼你很可能會陷入困境,因爲RG非常容易。您可以考慮以下事項 - 進行備份,並使用RG從備份讀取數據的功能。 – Hogan 2012-01-27 20:51:25

+1

如果您無權訪問元數據,則設置鏈接服務器並寫出插入查詢是唯一選項。 – JNK 2012-01-27 20:59:01

+0

所以我現在在做什麼, – Skylude 2012-01-27 23:35:32

回答

1
  1. 爲此,您絕對可以使用SQL Server備份。它不會耗盡內存。如果確實如此,請告訴我們該消息(因爲您可能誤解了它)。這是最快和最完整的解決方案。
  2. 您可以告訴導出嚮導也腳本架構。它隱藏在「高級」某處(可怕的用戶界面)。但腳本將會非常大,我知道無法執行它。
  3. 您可以刪除目標數據庫中除PK之外的所有模式對象。然後,您可以使用遠程查詢來複制所有數據。如果您事先刪除了外鍵和標識列,您將不會遇到任何問題。完成後,您可以重新創建所有這些對象。如果您對所有這些事務使用事務處理可能是最好的,因爲這樣您可以從某個時間點獲得一致的源數據。
+0

就像比較 - 我每天備份我的主要個人數據庫(大約800GB,半滿),服務器只有16GB內存。 – TomTom 2012-01-27 21:57:52

+0

是的。備份不佔用大量內存。 – usr 2012-01-27 22:00:13

+0

我沒有與我的用戶BACKUP_DATABASE權限:D – Skylude 2012-01-27 23:35:01

相關問題