--備份環境:把本地數據庫服務器的數據庫(TEST)備份到(192.168.1.145)的C$下 --首先,做一個與客戶端的映射 exec master..xp_cmdshell 'net use z: "http://192.168.1.145/c$" "密碼" "/user:192.168.1.145/administrator"' /*--說明: z:是映射網絡路徑對應本機的盤符,與下面的備份對應 //192.168.1.145/c$是要映射的網絡路徑 192.168.1.145/administrator 192.168.1.145是遠程的計算機名,administrator是登陸的用戶名 密碼 上面指定的administrator用戶的密碼 --*/ --其次,進行數據庫備份 backup database TEST to disk='z:/Test.bak' --最后.備份完成后刪除映射 exec master..xp_cmdshell 'net use z: /delete' 將以上放到sqlserver的job 就可以達到自動備份效果了 進一步可以把備份名字自動生成 exec master..xp_cmdshell 'net use z: "http://192.168.1.145/d$/dbback" "123456" "/user:192.168.1.145/administrator"' declare @a char(80) select @a ='z:/' + replace(replace(convert(varchar(19),getDate(),120),' ','-'),':','-') + '-service_korea.bak' backup database pubs to disk= @a exec master..xp_cmdshell 'net use z: /delete' ---------------------------------- 有A數據庫服務器,B本機; 我現在想通過在B機器上通過代碼調用SQL來執行A數據庫的備份到B機器上 調用的SQL語句為:Backup Database MYDATABASE To Disk='D:/test.bak',這樣備份的目錄是數據庫服務器A的D盤下; 怎么才能備份到A的D盤下呢? 請各位給予建議,謝謝! ---------------------------------------------------------------------------------------------------- 要用遠程數據庫可以備份本地。 本地數據庫也可以備份到遠程。 --備份環境:把數據庫服務器(192.168.1.8)的數據庫(TEST)備份到(192.168.1.145)的C$下 --首先,做一個與客戶端的映射 exec master..xp_cmdshell 'net use z: //192.168.1.145/c$ "密碼" /user:192.168.1.145/administrator' /*--說明: z: 是映射網絡路徑對應本機的盤符,與下面的備份對應 //192.168.1.145/c$ 是要映射的網絡路徑 192.168.1.145/administrator 192.168.1.145是遠程的計算機名,administrator是登陸的用戶名 密碼 上面指定的administrator用戶的密碼 --*/ --其次,進行數據庫備份 backup database TEST to disk='z:/Test.bak' --最后.備份完成后刪除映射 exec master..xp_cmdshell 'net use z: /delete' --來自網絡 --以下代碼放在作業里做調度,自動備份、自動刪除4天前備份 --創建映射 exec master..xp_cmdshell 'net use w: /DatabaseBackup$ "password"/user:Roy',NO_OUTPUT go -----2000用游標: declare @s nvarchar(200),@del nvarchar(200) select @s='',@del='' declare datebak cursor for select [bak]='backup database '+quotename(Name)+' to disk =''w:'+Name+'_'+convert(varchar(8),getdate(),112)+'.bak'' with init', [del]='exec master..xp_cmdshell '' del w:'+Name+'_'+convert(varchar(8),getdate()-4,112)+'.bak'', no_output' from master..sysdatabases where dbid>4 --不備份系統數據庫 open datebak fetch next from datebak into @s,@del while @@fetch_status=0 begin exec (@del) exec(@s) fetch next from datebak into @s,@del end close datebak deallocate datebak go --刪除映射 exec master..xp_cmdshell 'net use w: /delete' go --用JOB. --SQL SERVER2000為例 企業管理器—>數據庫服務器—>管理目錄—>SQL SERVER代理—>作業—>右鍵 選—>新建 常規選項頁—>輸入作業名稱—>選中所有者。 步驟選項頁—>新建—>輸入步驟名—>類型 TSQL腳本—>選擇需要執行的數據庫—>在命令框里輸入你的SQL 腳本: 如:update tb set 狀態= ... where 日期........... 你可以點左下角的【分析】按鈕,分析一下語法,分析無誤,按確定。 調度選項頁—>新建調度—>輸入調度名稱—>調度類型 你可以選擇也可以點右下角的【更改】按鈕進行更改,確定。 任務欄 SQL SERVER服務器的小圖標 雙擊 服務 選中 SQL SERVER AGENT,點【開始/繼續】,選中當啟動OS時,自動啟動服務,就可以了。 到你定的那個時間點,SQL SERVER會自動去執行你的腳本的。 如果需要生成腳本的話,企業管理器—>數據庫服務器—>管理目錄—>SQL SERVER代理—>作業—>右鍵你剛完成的作業—>所有任務 —>生成SQL腳本,即可生成你需要的腳本。 ------------------------------- 另一種方法:http://topic.csdn.net/u/20100514/21/0cf9904e-4c61-4364-a216-5186f1bd2070.html?65209 -- 創建鏈接服務器 exec sp_addlinkedserver 'link_server_name','','SQLOLEDB','server_name'; exec sp_addlinkedsrvlogin 'link_server_name','false','sa','sa','password'; exec sp_serveroption 'link_server_name','rpc out','true'; -- 備份 dbname 數據庫 exec('backup database dbname to disk=''c:/dbname.bak'';') at link_server_name; -- 刪除鏈接服務器 exec sp_droplinkedsrvlogin 'link_server_name','sa'; exec sp_dropserver 'Macedonia';
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
