當前位置:
>
如何將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儘管使用windows身份驗證(-e開關)和windows帳戶作為通過windows資源管理器訪問和複製檔案到共享的能力執行sql備份命令,仍會出現此錯誤。無法開啟備份裝置\ 192.168.16.55backupdatabasesmydb.bak。 作業系統錯誤5(訪問被拒絕。)。
訊息3013,級別16,狀態1,伺服器jf,第1行
backup database異常終止。
此操作失敗的原因是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...