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

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

Sql Server2005實(shí)現(xiàn)遠(yuǎn)程備份數(shù)據(jù)庫

2019-11-03 08:35:36
字體:
供稿:網(wǎng)友
相信大家都在當(dāng)心數(shù)據(jù)庫的丟失,這也是每個(gè)開發(fā)者頭痛的一件事件,因?yàn)檎谶\(yùn)行的服務(wù)器及數(shù)據(jù)庫也在這臺(tái)服務(wù)器上。如果服務(wù)器崩潰,那么所有的數(shù)據(jù)都不存在了,就算是你在你的機(jī)子上做了備份,那也是沒有用的,為什么會(huì)這樣說主要是因?yàn)楸緳C(jī)是向互聯(lián)網(wǎng)公開的,所以出事故的概率就比較高。最終我們可以利用局域網(wǎng)解決這樣的問題。就拿兩臺(tái)機(jī)子做例子,A機(jī)是服務(wù)器,B機(jī)是要把A服務(wù)器上的數(shù)據(jù)庫備份到B機(jī)上,前提是B機(jī)必須要有數(shù)據(jù)庫,以Sql Server2005為例。
首先A機(jī)必須具備數(shù)據(jù)庫,程序,IIS,B機(jī)必須具備數(shù)據(jù)庫,服務(wù)程序。前提是B機(jī)必須知道A機(jī)的機(jī)器密碼。
其次代碼操作如下 這只是存儲(chǔ)過程

  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),--數(shù)據(jù)庫服務(wù)器IP
  8  @ServerName varchar(50),--數(shù)據(jù)庫計(jì)算機(jī)用戶
  9  @ServerPwd   varchar(50),--數(shù)據(jù)庫計(jì)算機(jī)用戶密碼
10  @ServerIISIp varchar(50),--IIs服務(wù)器Ip
11  @ServerIIsName varchar(50),--IIs服務(wù)器名稱
12  @ServerIIsPwd  varchar(50),--IIs服務(wù)器密碼
13  @SqlShareFile    varchar(50),--遠(yuǎn)程sql共享文件
14  @IIsShareFile   varchar(50),--遠(yuǎn)程IIS共享文件
15  @MoveIIsPath   varchar(50),--d:/back
16  @MoveSqlPath   varchar(50),--d:/sql
17  @DataName      varchar(50),--數(shù)據(jù)庫名稱
18  @SqlloginName varchar(50),--遠(yuǎn)程數(shù)據(jù)庫登陸名稱
19  @SqlLoginPwd  varchar(50)--遠(yuǎn)程數(shù)據(jù)庫登陸密碼
20  as
21  begin
22  /*=====================================================================*/
23  --Create data 2007-05-21
24  --Modify data 2007-05-21
25  --Autor:sp
26  --Method:數(shù)據(jù)庫遠(yuǎn)程備份、虛擬主機(jī)遠(yuǎn)程備份、IIS遠(yuǎn)程備份
27  /*====================================================================*/
28  declare @iisname varchar(1000)--備份IIS的名稱
29  declare @IISversion varchar(1000)--IIS版本號(hào)
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)--備份數(shù)據(jù)庫名稱
35  declare @SqlPath varchar(1000)--備份數(shù)據(jù)庫文件路金
36  declare @IISyshe varchar(1000)--IIS網(wǎng)羅映射
37  declare @Sqlyshe varchar(1000)--sql網(wǎng)絡(luò)映射
38  declare @sqlback varchar(1000)---數(shù)據(jù)庫備份命令
39  declare @url varchar(1000)-- 數(shù)據(jù)庫遠(yuǎn)程備份存放的路徑
40  declare @osql varchar(1000)--數(shù)據(jù)庫備份DOS操作命令
41  begin
42    --命名規(guī)則’文件名+月+日+年‘
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+ '''' --遠(yuǎn)程備份IIS文件路勁
50     --其中 /S 代表遠(yuǎn)程計(jì)算機(jī)名稱或者IP /U 代表用戶 /p 代表密碼 /b 代表備份名稱 /V 代表你所備份的版本號(hào) /e 代表對(duì)備份文件進(jìn)行加密
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--遠(yuǎn)程備份
57     exec master..xp_cmdshell @IISyshe --//建立網(wǎng)落映射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--遠(yuǎn)程備份數(shù)據(jù)庫
62     exec master..xp_cmdshell @Sqlyshe--//建立網(wǎng)落映射數(shù)據(jù)庫 ''
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), --要調(diào)用定時(shí)調(diào)用的存儲(chǔ)過程名,如果不在當(dāng)前庫中,則用:庫名..所有者名..存儲(chǔ)過程名
74  @job_date datetime --存儲(chǔ)過程的執(zhí)行時(shí)間(包括時(shí)間信息)
75  as
76  declare @dbname sysname,@jobname sysname,@date int,@time int
77  select @jobname= '' 作業(yè)_ '' +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  --創(chuàng)建作業(yè)
85  exec msdb..sp_add_job @job_name=@jobname,@delete_level=0
86  
87  --創(chuàng)建作業(yè)步驟
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 =  '' 執(zhí)行步驟 '' ,
94   @subsystem =  '' TSQL '' ,
95   @database_name=@dbname,
96   @command = @sql,
97   @retry_attempts = 5,   --重試次數(shù)
98   @retry_interval = 5    --重試間隔
99   
100  --創(chuàng)建調(diào)度
101  EXEC msdb..sp_add_jobschedule @job_name = @jobname,
102   @name =  '' 時(shí)間安排 '' ,
103   @enabled = 1,
104   @freq_type = 4, --代表每天都執(zhí)行
105   @active_start_date = @date,
106   @active_start_time = @time,
107   @freq_interval =1--至少一次
108  -- 添加目標(biāo)服務(wù)器
109  EXEC msdb.dbo.sp_add_jobserver
110   @job_name = @jobname ,
111   @server_name = N '' (local) ''  
112  '  
113  END
114  


同時(shí)也備份IIS,并且通過網(wǎng)絡(luò)映射,這樣的結(jié)果是在A機(jī)上也有備份的文件,在B機(jī)上也有相同的備份文件。在此也利用了作業(yè)的操作。
注意:Sql Server2005默認(rèn)的情況下是沒有打開xp_cmdshell這個(gè)是系統(tǒng)存儲(chǔ)過程,
所以我們必須打開它 EXEC sp_configure 'show advanced options', 1,然后在運(yùn)行RECONFIGURE 再一次運(yùn)行EXEC sp_configure 'xp_cmdshell', 1,最后RECONFIGURE。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 嘉兴市| 太谷县| 麻城市| 新晃| 武义县| 巴东县| 巧家县| 绩溪县| 江川县| 新密市| 崇左市| 汕尾市| 武冈市| 怀宁县| 金溪县| 沙田区| 荃湾区| 台中市| 五常市| 花垣县| 都兰县| 额尔古纳市| 菏泽市| 凤庆县| 班玛县| 民勤县| 西宁市| 平阳县| 宽城| 晋州市| 长春市| 昭苏县| 临武县| 乐清市| 五峰| 邯郸市| 大连市| 陇川县| 罗甸县| 柞水县| 威远县|