如何將SQL資料庫備份到網路共享

2021-08-18 13:17:30 字數 3206 閱讀 9588

當前位置:

>

如何將sql資料庫備份到網路共享

定期備份sql資料庫是必須的。 我們已經覆蓋的方式就可以輕鬆備份您的所有sql server資料庫到本地硬碟中,但這並不能防止驅動器和/或系統故障。 作為針對此類災難的額外保護層,您可以在網路共享上覆制或直接建立備份。

完成此任務的首選和最直接的方法是簡單地建立資料庫的本地備份,然後將相應的備份檔案複製到網路共享。您可以通過建立如下所示的批處理指令碼來完成此操作:

set localfolder = c:program files microsoft sql servermssql.1mssqlbackup 

sqlcmd -e -q「備份資料庫mydb到磁碟=%localfolder%mydb.bak」 

xcopy「%localfolder%mydb.bak」「\ 192.168.16.55backupdatabases」/ z / v 

del「%localfolder%mydb.bak」

此指令碼執行以下操作(逐行):

將變數設定為本地sql備份目錄。

建立mydb的sql備份(使用windows身份驗證)到本地sql備份目錄。

將本地備份檔案複製到網路共享。

刪除本地備份檔案。

同樣,這是首選方法,因為它的工作原理和備份失敗的可能性是最小的,因為備份是在本地磁碟上建立。 但是,如果沒有足夠的磁碟空間來儲存備份檔案的本地副本,則此操作將失敗。 在這種情況下,您需要新增額外的磁碟空間或直接備份到網路共享。

通常,當您嘗試使用以下命令直接建立備份到網路共享時:

sqlcmd -e -q「備份資料庫mydb到磁碟=\ 192.168.16.55backupdatabasesmydb.bak」

你很可能會得到乙個錯誤的行:

訊息3201,級別16,狀態1,伺服器jf,行1 

無法開啟備份裝置\ 192.168.16.55backupdatabasesmydb.bak。 作業系統錯誤5(訪問被拒絕。)。 

訊息3013,級別16,狀態1,伺服器jf,第1行 

backup database異常終止。

儘管使用windows身份驗證(-e開關)和windows帳戶作為通過windows資源管理器訪問和複製檔案到共享的能力執行sql備份命令,仍會出現此錯誤。

此操作失敗的原因是sql命令在sql server服務執行的帳戶的邊界內執行。 當您在計算機上檢視服務列表時,很可能您將看到執行為(登入為)列的sql server服務本地系統或網路服務,它們是沒有網路訪問許可權的系統帳戶。

在我們的系統上,網路共享命令的備份失敗,因為我們有sql server服務作為本地系統執行,再也無法獲得任何網路資源。

為了允許sql直接備份到網路共享,我們必須將sql server服務作為可訪問網路資源的本地帳戶執行。

編輯sql server服務的屬性,並在「登入」選項卡上將服務配置為作為具有網路訪問許可權的備用帳戶執行。

單擊「確定」後,您將收到一條提示,指示在重新啟動服務之後,設定才會生效。

重新啟動服務。

服務列表現在應顯示sql server服務正在作為您配置的帳戶執行。

現在當您執行命令直接備份到網路共享:

sqlcmd -e -q「備份資料庫mydb到磁碟=\ 192.168.16.55backupdatabasesmydb.bak」

您應該會看到乙個成功訊息:

處理資料庫mydb的152頁,檔案1上的檔案mydb。 

為資料庫mydb處理2頁,檔案1上的檔案mydb_log。 

backup database在0.503秒(2.493 mb /秒)中成功處理了154頁。

使用備份檔案現在在網路共享目錄:

網路共享注意事項

請務必注意,備份命令希望能夠直接連線到網路共享,而不會提示您輸入憑據。 您配置要執行的sql server服務的帳戶必須與網路共享具有可信連線,其中相應的憑據允許訪問,否則可能會發生以下錯誤:

訊息3201,級別16,狀態1,伺服器jf,行1 

無法開啟備份裝置\ 192.168.16.55backupdatabasesmydb.bak。 作業系統錯誤1326(登入失敗:未知使用者名稱或密碼錯誤。)。 

訊息3013,級別16,狀態1,伺服器jf,第1行 

backup database異常終止。

此錯誤表示網路共享不接受帳戶的使用者名稱和密碼,並且命令失敗。

另乙個要記住的問題是備份直接執行到網路資源,因此網路連線中的任何打嗝可能會導致您的備份失敗。 因此,您只應該備份到穩定的網路位置(即可能不是vpn)。

安全隱患

如前所述,使用在本地備份然後複製到網路共享的方法是首選,因為它允許您將sql服務作為僅具有本地系統訪問許可權的帳戶執行。

通過將服務作為備用帳戶執行,您開啟了潛在的安全問題的大門。 例如,惡意sql指令碼可以在備用帳戶下執行並攻擊網路資源。 此外,對相應帳戶(密碼更改/到期或帳戶的刪除/禁用)的任何更改將導致sql server服務無法啟動。

如果您使用備用帳戶執行sql server例項,請務必記住這些要點。 如果採取適當的預防措施,則這些不顯示阻止程式,則應考慮新增額外的硬碟驅動器空間,然後實施本地備份和複製,以便可以使用本地帳戶執行sql服務。

如何將Excel資料批量匯入SQL資料庫

private void button1 click object sender,eventargs e public void transferdata string excelfile,string sheetname,string connectionstring sheetname myco...

將資料庫備份到AZURE blob storage

1建立乙個storage account 1 點選browse storage accounts 2 填寫storage account,請記住這個名字,之後建立credential需要用到。3 點選create。一般等待一段時間就好了 2 建立container 2 在blob service頁面...

如何將資料庫水平切分

在大中型專案中,在資料庫設計的時候,考慮到資料庫最大承受資料量,通常會把資料庫或者資料表水平切分,以降低單個庫,單個表的壓力。這裡介紹兩個專案中常用的資料表切分方法。當然這些方法都是在程式中 使用一定的技巧來路由到具體的表的。首先我們要確認根據什麼來水平切分?在我們的系統 sns 中,使用者的uid...