• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

SQLServer 批量备份与还原

mysql 搞代码 4年前 (2022-01-09) 25次浏览 已收录 0个评论

备份与还原是数据库避不开的主题,而作为DBA,经常会面临将一台机器上的所有数据库重新构建到一台新机器上的要求; 在现在都讲究自动化管理的时代,传统的界面操作备份还原的做法不仅浪费时间和精力,而且还很容易出错,并且这次完成后, 下次再有这样的要求

备份与还原是数据库避不开的主题,而作为DBA,经常会面临将一台机器上的所有数据库重新构建到一台新机器上的要求;

在现在都讲究自动化管理的时代,传统的界面操作备份还原的做法不仅浪费时间和精力,而且还很容易出错,并且这次完成后,

下次再有这样的要求,必须又重头开始(估计做5次就能做得人狂吐);于是,我们需要一套应对这种频繁操作、耗时、耗精力

的通用处理方法,所以以下批处理脚本就诞生了。

脚本主要的功能:

1. 备份一个服务器上的所有数据库(当然你也可以选择),备份文件按数据库名+日期生成,以.bak 结尾;

2. 将所有的备份文件还原到一台新机器上;

3. 验证磁盘和路径的正确性;

说明:

脚本合适 SQLServer 2005 & 2008 版本;

批量备份数据库:

<span>--</span><span>---------------------------批量备份数据-------------------------------------------</span><span><br /></span><span>Use</span><span> master<br /></span><span>GO</span><span><br /></span><span>/*</span><span>=================Usp_BackUp_DataBase========================<br />  =====BackUp Sigle DataBase                            ======<br />  =====Ken.Guo                                          ======<br />  =====2010.9.10                                         ======<br />  =====Version: 2005 & 2008 SQL Server                  ======<br />  =====EXEC Usp_BackUp_DataBase 'MyDB','D:\BackUp'      ======<br />  ============================================================<br /></span><span>*/</span><span><br /></span><span>CREATE</span><span>PROC</span><span>[</span><span>dbo</span><span>]</span><span>.</span><span>[</span><span>Usp_BackUp_DataBase</span><span>]</span><span>@DatabaseName</span><span>nvarchar</span><span>(</span><span>200</span><span>),</span><span>@Path</span><span>nvarchar</span><span>(</span><span>200</span><span>)   <br /></span><span>AS</span><span>  <br />  </span><span>BEGIN</span><span> <br />  </span><span>DECLARE</span><span>@fn</span><span>varchar</span><span>(</span><span>200</span><span>)<br />           ,</span><span>@sql</span><span>varchar</span><span>(</span><span>1000</span><span>)   <br />  </span><span>SET</span><span>@fn</span><span>=</span><span>@Path</span><span>+</span><span>(</span><span>case</span><span>when</span><span>right</span><span>(</span><span>@Path</span><span>,</span><span>1</span><span>)   </span><span></span><span>'</span><span>\</span><span>'</span><span>then</span><span>'</span><span>\</span><span>'</span><span>else</span><span>''</span><span>end</span><span>)   <br />  </span><span>+</span><span>@DatabaseName</span><span>+</span><span>'</span><span>_</span><span>'</span><span>   <br />  </span><span>+</span><span>convert</span><span>(</span><span>char</span><span>(</span><span>8</span><span>),</span><span>getdate</span><span>(),</span><span>112</span><span>)</span><span>+</span><span>'</span><span>_</span><span>'<div>本文来源gaodai.ma#com搞#代!码网_</div></span><span>   <br /> </span><span>+</span><span>replace</span><span>(</span><span>convert</span><span>(</span><span>char</span><span>(</span><span>8</span><span>),</span><span>getdate</span><span>(),</span><span>108</span><span>),</span><span>'</span><span>:</span><span>'</span><span>,</span><span>''</span><span>)   <br />  </span><span>+</span><span>'</span><span>.bak</span><span>'</span><span>   <br />  </span><span>set</span><span>@sql</span><span>=</span><span>'</span><span>backup   database   </span><span>'</span><span>+</span><span>@DatabaseName</span><span>+</span><span>'</span><span>   to   disk   =   N</span><span>'''</span><span>+</span><span>@fn</span><span>+</span><span>''''</span><span>   <br />  </span><span>--</span><span>SELECT @sql </span><span><br /></span><span>EXEC</span><span>(</span><span>@sql</span><span>)  <br />  </span><span>END</span><span><br /><br /></span><span>GO</span><span><br /><br /></span><span>Use</span><span> master<br /></span><span>GO</span><span><br /></span><span>/*</span><span>=============BackUp Mutile DataBase=========================</span><span>*/</span><span><br /></span><span>DECLARE</span><span>@dbname</span><span>nvarchar</span><span>(</span><span>200</span><span>)<br />       ,</span><span>@backup_path</span><span>nvarchar</span><span>(</span><span>200</span><span>)<br /></span><span>SET</span><span>@backup_path</span><span>=</span><span>'</span><span>D:\BackUp\</span><span>'</span><span><br /></span><span>DECLARE</span><span> db_info </span><span>CURSOR</span><span> <br />    LOCAL <br />    STATIC <br />    READ_ONLY <br />    FORWARD_ONLY <br /></span><span>FOR</span><span>--</span><span>根据查询,添加其他筛选条件</span><span><br /></span><span>SELECT</span><span> <br />      name <br />  </span><span>FROM</span><span> master.sys.databases </span><span>WITH</span><span>(NOLOCK) <br />  </span><span>WHERE</span><span> <br />      database_id</span><span>></span><span>4</span><span><br /><br /></span><span>OPEN</span><span> db_info<br /></span><span>FETCH</span><span>NEXT</span><span>FROM</span><span> db_info </span><span>INTO</span><span>@dbname</span><span><br /><br /></span><span>WHILE</span><span>@@FETCH_STATUS</span><span>=</span><span>0</span><span><br /> </span><span>begin</span><span><br />  </span><span>EXEC</span><span> master.dbo.<span>Usp_BackUp_DataBase </span></span><span>@dbname</span><span>,</span><span>@backup_path</span><span><br />  </span><span>FETCH</span><span>NEXT</span><span>FROM</span><span> db_info </span><span>INTO</span><span>@dbname</span><span><br /> </span><span>END</span><span><br /></span><span>close</span><span> db_info<br /></span><span>deallocate</span><span> db_info<br /><br /></span><span>--</span><span>-------------------------------BackUp DataBase End------------------------------------</span>


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SQLServer 批量备份与还原

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址