SQL Server扩展存储过程实现远程备份和恢复

2008-04-02 11:00:31来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  实例说明:

  环境:win2k sqlserver 2K 查询分析器

  SQL SERVER服务实例名称:mainserver

  需要备份的数据库名称: msdb

  本地机器名称(Client端):david

  本地用户:zf 密码:123

  本地域名:domain

  本地提供备份需求的文档夹:e: est

  第一步: 建立共享文档夹

  在程式代码中调用(或CMD窗口) net share test=e: est

  或用NetShareAdd这个API

  简要说明:

  net share   : 是WINDOWS内部的网络命令。

  作用:建立本地的共享资源,显示当前电脑的共享资源信息。

  语法:参见 net share /?

  第二步: 建立共享信用关系

  master..xp_cmdshell 'net use \david est 123 /user:domainzf'

  简要说明:

  1:xp_cmdshell :是SQLSERVER的扩展存储过程。

  作用,以操作系统命令行解释器的方式执行给定的命令字符串,

  并以文本行方式返回任何输出。

  语法:参见SQLSERVER联机帮助

  2:net use   : 是WINDOWS内部的网络命令。

  作用,将电脑和共享资源连接或断开,或显示关于电脑

  连接的信息。该命令还控制持久网络连接。

  语法:参见 net use /?

  第三步:备份数据库

  backup database msdb to disk='\david estmsdb.bak'

  这个无需说明吧,语法参见SQLSERVER联机帮助

  第四步: 删除共享文档夹

  在程式代码中调用(或CMD窗口) net share test /delete

  或用NetShareDel这个API

  结果:

  已处理 1376 页,这些页属于数据库 'msdb' 的文档 'MSDBData'(位于文档 1 上)。

  已处理 1 页,这些页属于数据库 'msdb' 的文档 'MSDBLog'(位于文档 1 上)。

  BACKUP DATABASE 操作成功地处理了 1377 页,花费了 3.653 秒(3.086 MB/秒)。

  这样mainserver服务器上的msdb就备份到了david机器的E: estmsdb.bak文档了,使用起来很简单吧?恢复数据库操作也是相同,只要将第三个步骤的语句改为'restore database msdb from disk='\david estmsdb.bak'就能够啦。。您看完了也能够试试呀?!(最简单的测试工具查询分析器 CMD窗口)

  备注:xp_cmdshell 这个扩展存储过程只能SA级别的用户调用,而且是SQL Server的安全隐患之一,许多DBA都喜欢将其删除或禁用,所以研发人员使用时要倍加小心哦。


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 理解odbc和ole

下一篇: SQL安全注意事项列表