sqlserver存儲過程備份
1.在要備份的數據上建立以下存儲過程:
CREATE PROCEDURE [dbo].[過程名] AS
declare
@filename nvarchar(100),--文件名
@NowDay int --設置時間
set @filename='F:\JXXdata'+cast(Day(GetDate()) as varchar(2))+'.dat' --文件路徑及文件名
Set @NowDay=Day(GetDate())
if (@NowDay>=20) or (@NowDay<=10) --這個月的20到下個月的10要備份
begin
print @filename BACKUP DATABASE [資料庫名()你也可以設參數] TO DISK = @filename WITH INIT , NOUNLOAD , NAME = N'XX數據備份', NOSKIP , STATS = 10, NOFORMAT
end
存儲過程要調試好無誤
2、進入企業管理器中->管理->sql server代理->作業,新建作業,作業名稱隨便取,例如:data備份,所有者選擇sa,當然你也可以選擇其他用戶,前提是該用戶有執行作業的許可權;
3.在步驟中取名-選中要備份的資料庫 --在命令中輸入 exec('過程名')
4.在調度中選反復出現--更改--選每天--時間自己輸入
5.測試完後-最後導入腳本 進入伺服器
6.把SQlServer服務管理器 啟用SqlServer Agent服務
p.s.一定要啟動agent服務,否則調度不會執行,你可以同樣利用調度實現某些表的自動更新。
B. 如何實現將一台sql server 2000資料庫的數據定時自動備份到另一台伺服器上(只要備份數據就可以)
通過企業管理器設置資料庫的定期自動備份計劃。
1、打開企業管理器,雙擊打開你的伺服器
2、然後點上面菜單中的工具-->選擇資料庫維護計劃器
3、下一悉者步選擇要進行自動備份的數據-->下一步更新數據優化信息,這里一般不用做選擇-->下一步檢查數據完整性,也一般不選擇
4、下一步指定資料庫維護計劃,默認的是1周備份一次,點返核擊更改選擇備份的日期及時間點確定,
5、下一步指定備份的磁碟目錄,選擇指定目錄,然後選擇刪除早於多少天前的備份,選擇一個星期刪除一次備份,具體備份看你的要求,備份文件擴展名默認的是BAK
6、下一步指定事務日誌備份計劃,看你的需要做選擇-->下一步要生成的報表,一般不做選擇-->下一步維護計劃歷史記錄,最好用默認的選項-->下一步完成
7、完成後系統很可能會提示Sql Server Agent服務未啟動,先點確定完成計劃設定,然後找到桌面最右邊狀態欄中的SQL圖標,雙擊點開,在服務中選擇Sql Server Agent,然後點擊運行箭頭,選上下方的當啟動OS時自動啟動服務
8、設置啟動sql server Agent:
運行Services.msc,設置sqlserverAgent為自動啟動。
啟用SQLserver Agent是必要的,而且也可以通過它來添加作業或者SQL語句來執行備份。然後再通過相應的批處理來刪漏陸掘除多餘的備份,保留幾天的備份。相關資料請另行查閱!
C. sqlserver腳本備份固定多個資料庫
1.用SqlServer的維護計劃
在這里我就不大液給截圖演示了,這個比較簡單,無非就是通過sqlserver自己的滾灶物維護計劃拖拽出2個一個『備份資料庫'任務和一個『清除維護'任務。
需要注意的點:
1)有備份任務里邊選擇備份的庫盡量選『所有用戶資料庫'這項,以免選擇了特定資料庫備份以後某天添加了新資料庫卻忘了勾選導致丟備份。辯仔
2)選項驗證備份集完整性和壓縮備份盡量都選上。
3)備份的路徑盡量別選磁碟根目錄。
2.通過腳本+作業的方式備份資料庫(非xp_cmdshell)。如果是多個庫的話自己寫個游標用動態sql的方式即可實現多庫備份,我這里就提供個思路偷懶就不整理了。
復制代碼 代碼如下:
DECLARE @filename VARCHAR(500)
DECLARE @date DATETIME
DECLARE @OLD_DATE DATETIME
SET @date=GETDATE()
SET @OLD_DATE=GETDATE()-5 --超過5天的備份即將被刪除
SET @FILENAME = 'E:\存放位置\資料庫名稱-'+CAST(DATEPART(YYYY,@DATE) AS VARCHAR(10))+'-'+CAST(DATEPART(MM,@DATE) AS VARCHAR(10))+'-'+CAST(DATEPART(DD,@DATE) AS VARCHAR(10))+'.BAK'
BACKUP DATABASE [資料庫名稱] TO DISK = @filename WITH COMPRESSION
EXECUTE master.dbo.xp_delete_file 0,N'E:\存放位置',N'bak',@OLD_DATE,1
GO
3.通過腳本+作業的方式備份資料庫(用xp_cmdshell),如果你覺得你們伺服器的網路、代碼、以及防火牆足夠安全可以開啟xp_cmdshell的方式來備份。
如果資料庫沒開啟xp_cmdshell的功能需要用以下腳本開通此功能,開通以後記得關閉sp_configure。
復制代碼 代碼如下:
USE Master
GO
EXEC sp_configure 'show advanced options', 1;
D. sqlserver怎麼把伺服器上的資料庫備份到本地,不是區域網的伺服器
No1:先在行程電腦上備份:
backup database 資料庫名 to disk='文件路徑'
然後把備件的文件復制到自己電腦上:
restore database 資料庫名 from disk='文件路徑'
No2:
備份遠程SQLSERVER資料庫到本地
1 知道遠程MSSQL IP 用戶名 密碼
2 在本地MSSQL企業管器里新注冊 遠程資料庫
3 選中所有遠程資料庫的用戶表,右鍵 所有任務 生成SQL腳本 並在選項里選中 編寫主鍵 外鍵 ......
4 在本地新建一資料庫,在新建資料庫中執行新生成的SQL腳本,注意腳本中的所屬用戶 一般全部替換為[dbo] 然後全部執行。
5 然後在新建資料庫中點 右鍵 所有任務 導入數據,先填源資料庫,也就是遠程資料庫,後填目的資料庫,也就是新資料庫 最後確定。這樣就可以把遠程的資料庫備份到本地
No3:伺服器上的SQLSERVER2000資料庫導到本地
一,備份SQLSERVER2000,生成.bak文件,壓縮成包,下載到本地,解壓,還原資料庫,
二,本sql客戶端遠程鏈接伺服器,備份,或導出到本地資料庫(這個看你網速了),同時要開放伺服器1433埠,很不安全
三,分離資料庫,考下_dat和log,,考下這兩個文件,伺服器上再附加,本地用這兩個文件附加