天天看點

sql 備份到網路上的芳鄰上

  1 EXEC sp_configure 'show advanced options', 1    

  2 

  3  

  4 

  5 GO   

  6 

  7  

  8 

  9 RECONFIGURE  WITH OVERRIDE   

 10 

 11  

 12 

 13 GO 

 14 

 15  

 16 

 17 --以下寫入作業

 18 

 19  

 20 

 21 EXEC sp_configure'xp_cmdshell', 1     

 22 

 23 GO   

 24 

 25 RECONFIGURE      

 26 

 27 GO 

 28 

 29  

 30 

 31 declare @sql varchar(4000) 

 32 

 33 declare @backupfile varchar(2000)

 34 

 35 declare @retaindays int

 36 

 37 declare @now datetime

 38 

 39 declare @deletefiles varchar(2000)

 40 

 41 declare @cmd varchar(2000)

 42 

 43 declare @i int

 44 

 45  

 46 

 47  

 48 

 49 declare @User varchar(2000)

 50 

 51 declare @Pwd varchar(2000)

 52 

 53 declare @Store varchar(2000)

 54 

 55 declare @IPPart varchar(2000)

 56 

 57 declare @IP varchar(2000)

 58 

 59  

 60 

 61  

 62 

 63 set @Store='EF_DATA'      --資料庫名

 64 

 65 set @User ='administrator'    --使用者名(異地伺服器)-----要管理者權限

 66 

 67 set @Pwd ='abcd159357'      --密碼(異地伺服器)-------密碼不要有符号

 68 

 69 set @IPPart='資料交換'        --路徑(異地伺服器的共享目錄,此目錄要有有上面使用者的通路讀寫權限)

 70 

 71 set @IP='192.168.1.7' 

 72 

 73 set @retaindays=6         --要保留備份的天數

 74 

 75  

 76 

 77  

 78 

 79 --建立映射

 80 

 81 set @cmd='net use x: \\'+ @IP +'\'+ @IPPart + ' '+ @Pwd +' /user:'+ @IP +'\'+ @User

 82 

 83 exec master..xp_cmdshell @cmd

 84 

 85  

 86 

 87  

 88 

 89 --删除以前的備份

 90 

 91 set @now=getdate()

 92 

 93 set @i=0

 94 

 95 while (@i < 30)

 96 

 97 begin

 98 

 99     set @deletefiles = 'x:\*' +convert(varchar(8),dateadd(dd,-@retaindays-@i,@now),112)+'*.*'

100 

101     set @cmd='del ' + @deletefiles

102 

103     exec master..xp_cmdshell @cmd

104 

105     set @i = @i +1

106 

107 end

108 

109  

110 

111 --開始備份

112 

113 set @backupfile='x:\'+ @Store + '_db_'+

114 

115     replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.BAK'

116 

117 set @sql='backup database ' + @Store + ' to disk='''+@backupfile+''' with retaindays='+convert(varchar(10),@retaindays)

118 

119 --print @sql

120 

121 exec (@sql)

122 

123  

124 

125 set @backupfile='x:\'+ @Store +'_tlog_'+

126 

127     replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.TRN'

128 

129 set @sql='backup LOG ' + @Store + ' TO DISK='''+@backupfile+''' with retaindays='+convert(varchar(10),@retaindays)

130 

131 --print @sql

132 

133 exec (@sql)

134 

135  

136 

137  

138 

139 --删除映射

140 

141 exec master..xp_cmdshell'net use x: /delete'

142 

143  

144 

145 --關閉允許執行xp_cmdshell

146 

147 EXEC sp_configure'xp_cmdshell', 0    

148 

149 GO     

150 

151 RECONFIGURE WITH OVERRIDE    

152 

153 GO