本文介紹了備份資料庫到本地的方法,期間的部分內容來自於網際網路。如有侵權,請告知本人。
工具/原料
宿主機系統:win10_64bit,sqlserver2005客戶端
虛擬機器:vmware workstation12 pro,作業系統為xp,資料庫系統為sqlserver2005
方法/步驟
開啟 Microsoft sql server management Studio,連線資料庫。
在宿主機新建共享檔案,用來儲存備份的資料庫檔案。本次實驗選擇C:\databasebak資料夾。
輸入以下程式碼
USE masterEXEC sp_configure 'show advanced options', 1RECONFIGURE WITH OVERRIDEEXEC sp_configure 'xp_cmdshell', 1RECONFIGURE WITH OVERRIDEEXEC sp_configure 'show advanced options', 0RECONFIGURE WITH OVERRIDE
--2、使用變數進行備份declare @db sysnamedeclare @dbpath varchar(120)set @db='工資管理'--檔名根據資料庫名稱+日期YYYYMMDD+副檔名set @dbpath='C:\'[email protected]+convert(varchar(10),getdate(),112)+'.bak'--3、在sql中建個對映exec master..xp_cmdshell 'net use Y: \\本機ip\databasebak "本機登陸密碼" /user:本機ip\本機登陸使用者名稱'/* 說明: Y:是對映網路路徑對應本機的碟符 請修改【本機ip】為實際ip databasebak是我本機共享的資料夾 【本機登陸使用者名稱】是登陸的使用者名稱 "本機登陸密碼" 是【本機登陸使用者名稱】使用者的密碼,注意引號是英文半形*/--4、備份(@db是要備份的資料庫名稱)Backup Database @db To [email protected]、COPYdeclare @copypath varchar(200)set @copypath = 'copy '[email protected]+' Y:'select @copypathexec master..xp_cmdshell @copypath --6、刪除(這句可以去掉)declare @deletepath varchar(200)set @deletepath = 'del '[email protected] @deletepathexec master..xp_cmdshell @deletepath --7、完成後刪除對映exec master..xp_cmdshell 'net use Y: /delete'
--8、關閉xp_cmdshellUSE master EXEC sp_configure 'show advanced options', 1 RECONFIGURE WITH OVERRIDE EXEC sp_configure 'xp_cmdshell', 0 RECONFIGURE WITH OVERRIDE EXEC sp_configure 'show advanced options', 0RECONFIGURE WITH OVERRIDE
執行之後會在C:\databasebak資料夾中找到備份的資料庫。
在執行 EXEC sp_configure 'xp_cmdshell', 1報錯,需要手動開啟xp_cmdshell,步驟為:
1.遠端登陸資料庫所在的伺服器。
2.開啟【外圍應用配置器】,按照以下圖示進行操作。
注意事項
在執行 EXEC sp_configure 'xp_cmdshell', 1報錯,有可能是當前使用者無法執行這個系統儲存過程,遠端登陸這個資料庫,然後手動開啟這個選項。記得再關閉這個選項。
由於net use這個是個引起過很大的漏洞,請謹慎操作。