利用SQL Server Management Studio(SSMS)複製資料庫 標簽(空格分隔): SQLServer 前言 今天由於客戶購買的軟體版本確認了,而之前進行開發的本地資料庫版本較低,打算複製一份開發資料庫,升級為客戶軟體版本的資料庫再進行後續開發。以前做這種事情一般都是在不同的數據 ...
利用SQL Server Management Studio(SSMS)複製資料庫
標簽(空格分隔): SQLServer
前言
今天由於客戶購買的軟體版本確認了,而之前進行開發的本地資料庫版本較低,打算複製一份開發資料庫,升級為客戶軟體版本的資料庫再進行後續開發。以前做這種事情一般都是在不同的資料庫實例上進行,一直都是使用備份——恢復的方法,今天這次是在同一個實例上,我就在想強大的SSMS有沒有嚮導式的複製資料庫方法呢?
看似美好的開始
找到複製資料庫的過程很簡單,在SSMS上右擊資料庫就能在任務里找到複製資料庫的選項,點開進入了非常友好的圖形化操作界面。
依次選擇源資料庫伺服器與目標資料庫伺服器,和SSMS的任務差不多,看來跨伺服器複製資料庫也並不複雜,點擊下一步,提示
行,那就去SQL Server配置管理器(SQL Server Configuration Manager)打開SQL Server代理(也可以在系統服務中打開)。打開之後可以正常進入下一步了,註意有警告,由於是警告且是開發環境,先試試忽略警告看能不能行。
選擇目標資料庫的名稱與實體位置,然後接下來就是一路下一步(中間可以選擇輸出到Windows日誌,我試過不選的時候可以在SQL Server日誌看到結果,選了之後就只能在Windows日誌中看了)
果不其然的失敗,並無波折的成功
果不其然,失敗了,回去看忽略的警告
“若要使用分離和附加方法,運行SQL Server代理作業時所使用的Integration Services代理賬戶必須可以訪問源伺服器和目標伺服器的文件系統”
OK,觀察一下SQL Server代理的用戶(在SQL Server配置管理器可以看到,同樣可以在系統服務中查到)是NT SERVICE\SQLSERVERAGENT。
在SSMS的安全性——用戶名中可以找到該用戶,點開用戶屬性,發現只有sysadmin和public角色,沒有diskadmin角色
本來勾上diskadmin角色,應該就可以了,但是由於我對SQL Server代理瞭解不深,既然安裝預設沒有選那就保持原樣吧,而資料庫複製也不常用,我把Server代理的用戶暫時改成本地用戶重新執行複製。
OK,複製成功。重新再把SQL Server代理的用戶改回NT SERVICE\SQLSERVERAGENT。