国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

Sql Server2005實現遠程備份數據庫

2024-08-31 00:53:11
字體:
來源:轉載
供稿:網友
相信大家都在當心數據庫的丟失,這也是每個開發者頭痛的一件事件,因為正在運行的服務器及數據庫也在這臺服務器上。如果服務器崩潰,那么所有的數據都不存在了,就算是你在你的機子上做了備份,那也是沒有用的,為什么會這樣說主要是因為本機是向互聯網公開的,所以出事故的概率就比較高。最終我們可以利用局域網解決這樣的問題。就拿兩臺機子做例子,A機是服務器,B機是要把A服務器上的數據庫備份到B機上,前提是B機必須要有數據庫,以Sql Server2005為例。
首先A機必須具備數據庫,程序,IIS,B機必須具備數據庫,服務程序。前提是B機必須知道A機的機器密碼。
其次代碼操作如下 這只是存儲過程

  1  IF   NOT   EXISTS  ( SELECT   *   FROM  sys.objects  WHERE   object_id   =   OBJECT_ID (N ' [dbo].[BackSqlorFile] ' )  AND  type  in  (N ' P ' , N ' PC ' ))
  2  BEGIN
  3  EXEC  dbo.sp_executesql  @statement   =  N '
  4  
  5  
  6  CREATE PRoc [dbo].[BackSqlorFile]
  7  @Serverip varchar(50),--數據庫服務器IP
  8  @ServerName varchar(50),--數據庫計算機用戶
  9  @ServerPwd   varchar(50),--數據庫計算機用戶密碼
10  @ServerIISIp varchar(50),--IIs服務器Ip
11  @ServerIIsName varchar(50),--IIs服務器名稱
12  @ServerIIsPwd  varchar(50),--IIs服務器密碼
13  @SqlShareFile    varchar(50),--遠程sql共享文件
14  @IIsShareFile   varchar(50),--遠程IIS共享文件
15  @MoveIIsPath   varchar(50),--d:/back
16  @MoveSqlPath   varchar(50),--d:/sql
17  @DataName      varchar(50),--數據庫名稱
18  @SqlloginName varchar(50),--遠程數據庫登陸名稱
19  @SqlLoginPwd  varchar(50)--遠程數據庫登陸密碼
20  as
21  begin
22  /*=====================================================================*/
23  --Create data 2007-05-21
24  --Modify data 2007-05-21
25  --Autor:sp
26  --Method:數據庫遠程備份、虛擬主機遠程備份、IIS遠程備份
27  /*====================================================================*/
28  declare @iisname varchar(1000)--備份IIS的名稱
29  declare @IISversion varchar(1000)--IIS版本號
30  declare @MovePath varchar(1000)--COPY文件的路勁
31  declare @IIsBack varchar(1000)--IIS備份命令
32  declare @IIsBackmd varchar(1000)--IIS備份為后綴的MD文件
33  declare @IIsBacksc varchar(1000)--IIS備份為后綴的SC文件
34  declare @SqlName varchar(1000)--備份數據庫名稱
35  declare @SqlPath varchar(1000)--備份數據庫文件路金
36  declare @IISyshe varchar(1000)--IIS網羅映射
37  declare @Sqlyshe varchar(1000)--sql網絡映射
38  declare @sqlback varchar(1000)---數據庫備份命令
39  declare @url varchar(1000)-- 數據庫遠程備份存放的路徑
40  declare @osql varchar(1000)--數據庫備份DOS操作命令
41  begin
42    --命名規則’文件名+月+日+年‘
43     set @SqlName=@DataName+replace(convert(varchar(50),getdate(),110), '' - '' , '''' )+ '' .bak ''
44     set @url= '' E:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/Backup/ '' +@SqlName
45     set @sqlback= '' backup database  '' +@DataName + ''  to disk= '''''' +@url+ ''''''  with init ''
46     set @iisname= '' IIs '' +replace(convert(varchar(50),getdate(),110), '' - '' , '''' )
47     set @osql= '' osql -S '' +@ServerIp+ ''  -U '' +@SqlloginName+ ''   -P '' +@SqlLoginPwd+ ''   -dmaster -q" '' +@sqlback+ '' " ''
48     set @IISversion= '' 123 '' --//replace(convert(varchar(50),getdate(),120), '' : '' , '' -)
49     set @IISBack= '' iisback /Backup /s  '' +@ServerIISIp+ ''  /u  '' +@ServerIIsName+ ''  /p  '' +@ServerIIsPwd+ ''  /b  '' +@iisname+ ''  /v  '' +@IISversion+ '''' --遠程備份IIS文件路勁
50     --其中 /S 代表遠程計算機名稱或者IP /U 代表用戶 /p 代表密碼 /b 代表備份名稱 /V 代表你所備份的版本號 /e 代表對備份文件進行加密
51     set @IIsBackmd= '' copy y:/ '' +@iisname+ '' .MD '' +@IISversion+ ''   '' +@MoveIIsPath+ ''''
52     set @IIsBacksc= '' copy y:/ '' +@iisname+ '' .SC '' +@IISversion+ ''   '' +@MoveIIsPath+ ''''
53     set @Sqlpath= '' copy q:/ '' +@SqlName+ ''   '' +@MoveSqlPath+ ''''
54     set @IISyshe= '' net use y: // '' +@ServerIISIp+ '' / '' +@IIsShareFile+ ''  " '' +@ServerIIsPwd+ '' " /user: '' +@ServerIISIp+ '' / '' +@ServerIIsName+ ''''
55     set @Sqlyshe= '' net use q: // '' +@ServerIp+ '' / '' +@SqlShareFile+ ''  " '' +@ServerPwd+ '' " /user: '' +@ServerIp+ '' / '' +@ServerName+ ''''
56     exec master..xp_cmdshell @IISBack--遠程備份
57     exec master..xp_cmdshell @IISyshe --//建立網落映射IIS ''
58     exec master..xp_cmdshell @IIsBackmd
59     exec master..xp_cmdshell @IIsBacksc
60     exec master..xp_cmdshell  '' net use y: /delete '' --刪除映射
61     exec master..xp_cmdshell @osql--遠程備份數據庫
62     exec master..xp_cmdshell @Sqlyshe--//建立網落映射數據庫 ''
63     exec master..xp_cmdshell @Sqlpath
64     exec master..xp_cmdshell  '' net use q: /delete '' --刪除映射   
65  END
66  end
67  '  
68  END
69  IF   NOT   EXISTS  ( SELECT   *   FROM  sys.objects  WHERE   object_id   =   OBJECT_ID (N ' [dbo].[Creat_Job] ' )  AND  type  in  (N ' P ' , N ' PC ' ))
70  BEGIN
71  EXEC  dbo.sp_executesql  @statement   =  N '
72  create proc [dbo].[Creat_Job]
73  @prorcname varchar(1000), --要調用定時調用的存儲過程名,如果不在當前庫中,則用:庫名..所有者名..存儲過程名
74  @job_date datetime --存儲過程的執行時間(包括時間信息)
75  as
76  declare @dbname sysname,@jobname sysname,@date int,@time int
77  select @jobname= '' 作業_ '' +cast(newid() as varchar(36))
78   ,@date=convert(varchar,@job_date,112)
79   ,@time=replace(convert(varchar,@job_date,108), '' : '' , '''' )
80  
81  if exists(select * from msdb..sysjobs where name=@jobname)
82   exec msdb..sp_delete_job @job_name=@jobname
83  
84  --創建作業
85  exec msdb..sp_add_job @job_name=@jobname,@delete_level=0
86  
87  --創建作業步驟
88  declare @sql varchar(1000)
89  select @sql= '' exec  '' +@prorcname
90   ,@dbname=db_name()
91  
92  exec msdb..sp_add_jobstep @job_name=@jobname,
93   @step_name =  '' 執行步驟 '' ,
94   @subsystem =  '' TSQL '' ,
95   @database_name=@dbname,
96   @command = @sql,
97   @retry_attempts = 5,   --重試次數
98   @retry_interval = 5    --重試間隔
99   
100  --創建調度
101  EXEC msdb..sp_add_jobschedule @job_name = @jobname,
102   @name =  '' 時間安排 '' ,
103   @enabled = 1,
104   @freq_type = 4, --代表每天都執行
105   @active_start_date = @date,
106   @active_start_time = @time,
107   @freq_interval =1--至少一次
108  -- 添加目標服務器
109  EXEC msdb.dbo.sp_add_jobserver
110   @job_name = @jobname ,
111   @server_name = N '' (local) ''  
112  '  
113  END
114  


同時也備份IIS,并且通過網絡映射,這樣的結果是在A機上也有備份的文件,在B機上也有相同的備份文件。在此也利用了作業的操作。
注意:Sql Server2005默認的情況下是沒有打開xp_cmdshell這個是系統存儲過程,
所以我們必須打開它 EXEC sp_configure 'show advanced options', 1,然后在運行RECONFIGURE 再一次運行EXEC sp_configure 'xp_cmdshell', 1,最后RECONFIGURE。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中阳县| 乳山市| 北安市| 宁津县| 大田县| 汉沽区| 会宁县| 阿拉善盟| 城固县| 酒泉市| 收藏| 和田市| 班玛县| 武强县| 福建省| 文成县| 信宜市| 嘉义市| 威远县| 阿合奇县| 加查县| 澜沧| 颍上县| 沧州市| 马龙县| 普兰店市| 台中县| 和平区| 四子王旗| 开远市| 沙湾县| 无棣县| 迁安市| 武宣县| 姚安县| 长泰县| 治县。| 喀喇沁旗| 邢台市| 陆川县| 建水县|