iT邦幫忙

0

SQL Server無法備份至其他主機的共享資料夾

linyt 2009-04-01 11:07:0221535 瀏覽

各位大大:
在使用MS SQL SERVER 2K進行資料備份, 想要使用"資料庫維護計劃"的方式定期備份mdf檔, 方法是由A主機(MS SQL)備份到B主機(網路磁碟機)的某資料夾, 小弟有在A主機內設定網路磁碟機(S槽)為路徑, 但都備份失敗, 出現以下錯誤:
[Microsoft SQL-DMO (ODBC SQL狀態: 42000)] 錯誤 3201: [Microsoft][ODBC SQL Server Driver][SQL Server]無法開啟備份裝置 'S:\backup'。裝置錯誤或裝置離線。請查看 SQL Server 錯誤記錄以取得更多細節。
[Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE 異常中止中。

不知道各位大大有無遇到這樣的問題以及解釋的方式~~甘恩!!

34
oxox
iT邦新手 1 級 ‧ 2009-04-01 11:15:19
最佳解答

我有遇到類似的狀況,後來我是備份到自己本機的HDD&透過另外的BAT檔將檔案COPY到另外一台2電腦(排程)
似乎SQL2k無法連接到非本機的HDD ,但好像iSCSI等技術的可以

linyt iT邦研究生 1 級 ‧ 2009-04-01 11:26:21 檢舉

請問oxox大大:
您有做版本控管的方式嗎? 因為我只想保留10天以內的檔案即可(因為空間也不是很大), 即10個版本. 還是說您是要人工刪檔的方式處理.

oxox iT邦新手 1 級 ‧ 2009-04-01 14:25:18 檢舉

我的應用:
A主機&B主機,差異一天 --> 備用&分析資料使用,避免大量查詢 (full backup)
歷史資料:透過 磁帶備份多日&有備份計畫&知道怎麼復原

備份資料可用BAT檔來改名&判斷是否要刪除他,不需要人工耶...(這需要您研究BAT的寫法了)
DB備份出來可以用 WINRAR等軟體壓縮,雖然耗時但空間可以節省(一樣可透過BAT檔協助)

26
smalllun
iT邦研究生 5 級 ‧ 2009-04-02 23:38:52

基本上微軟的sql不能備份到非本機的裝置。
為了達到異地備份,我這裡經驗是採用ms sql的維護計畫

這樣ms sql每天在晚上兩點就會備份,備份檔名依照「資料庫名稱_db_年月日時.bak」
鎂因為有勾選指定移除檔案的時限,所以只會保留一星期的份。(如圖)

之後在搭配cwRsync(windows版本),寫批次檔內容

<pre class="c" name="code">REM ***************由以下開始執行****************
REM *****同步異地備份資料庫*****
rsync -arvlHpogDtS --delete /cygdrive/d/DB_BackUP/db_data/ /cygdrive/z/db_data/
REM
REM **********************執行結尾*****************

其中的「粗體的z」/cygdrive**/z/**db_data/,就是網路磁碟機。
在搭配windows的排程功能,就可以達到定時異地備份了

執行身份一定要設定

cwRsync這個軟體功能非常強大,
可以window to liunx 或windwos to windows 或linux to linux,
在這網址有介紹http://pulipuli.blogspot.com/2008/08/windowssshcwrsync-server.html
似乎是官網http://www.itefix.no/i2/node/10650
安裝後,也有說明文件有很多寫批次檔方法來作到異地備份

gkkangel iT邦好手 1 級 ‧ 2009-04-04 16:01:35 檢舉

超詳細!
受教了..

linyt iT邦研究生 1 級 ‧ 2009-04-07 14:12:06 檢舉

smalllun大大:
請問是不是資料夾的命名, 中間不能有空白(例如D:\DB_Data\MS SQL 其中的MS SQL)這樣會造成備份失敗.

smalllun iT邦研究生 5 級 ‧ 2009-04-11 21:51:10 檢舉

嗯嗯~建議不要有空白。
且資料夾也不要取中文字....

20
jerryhung
iT邦新手 4 級 ‧ 2009-04-05 00:38:52

Yes, you CAN back up to a UNC path on the network in SQL (I'm a SQL DBA)

You just have to put in the UNC path in the Location field. This worked for SQL 2000/2005/2008 for me
In Maint Plan you put in "\\FileServer\BackupFolder\DBName\"

or in T-SQL script
BACKUP DATABASE [db] TO DISK = '\\FileServer\BackupFolder\DBName\DB.bak'
WITH INIT, STATS

Don't use the Mapped Drive letter (like S in your case)
Another way is to use the "Backup Device" (add the UNC as backup device, then BACKUP DATABASE [db] TO DEVICE = 'DeviceName')

smalllun iT邦研究生 5 級 ‧ 2009-04-05 02:08:32 檢舉

補充一下jerryhung所回答的。
在微軟說法:SQL Server 2000 Books 線指出 「 資料庫維護計劃精靈 」 只支援備份到本機磁碟上。 備份到網路資源在某些情況下可以完成。
請參考下列網址:
http://support.microsoft.com/kb/555128/zh-tw

smalllun iT邦研究生 5 級 ‧ 2009-04-05 02:09:44 檢舉

SQL 2005似乎就沒有這限制了
請參考下列網址:
http://msdn.microsoft.com/zh-tw/library/ms179313(SQL.90).aspx

我要發表回答

立即登入回答