原地址:http://blog.csdn.net/xluzhong/articles/387533.aspx

最近我在为公司的框架程序(以数据应用为导向的应用体系)做数据管理模块,这个模块的需求比较简单:备份、恢复和清理日志。我公司的软件基本上以C/S为基本架构,所以数据管理模块中两个主要的功能‘备份与恢复’都可能会在Client端操作,备份与恢复’的文件也都有可能存储在client端,因而这个数据管理模块就必须能够实现在远程备份与恢复数据库。

文章的前提阐述完了,就该说说如何具体实现吧。其实都很简单,我想写个远程备份的测试实例
给大家看,就能够很清楚的描述吧!
  实例说明:
           环境:win2k+sqlserver 2K+查询分析器
           SQLSERVER服务实例名称:mainserver
           需要备份的数据库名称: msdb 
           本地机器名称(Client端):david
           本地用户:zf 密码:123
           本地域名:domain
           本地提供备份需求的文件夹:e:/test

第一步: 建立共享文件夹
     在程序代码中调用(或者CMD窗口)  net share test=e:/test
     或者用NetShareAdd这个API
     简要说明:
            net share     : 是WINDOWS内部的网络命令。
                            作用:建立本地的共享资源,显示当前计算机的共享资源信息。
                            语法:参见 net share /?  
  第二步: 建立共享信用关系
     master..xp_cmdshell 'net use  //david/test 123 /user:domain/zf'
     简要说明:
           1:xp_cmdshell :是SQLSERVER的扩展存储过程。
                            作用,以操作系统命令行解释器的方式执行给定的命令字符串,
                            并以文本行方式返回任何输出。
                            语法:参见SQLSERVER联机帮助
           2:net use      : 是WINDOWS内部的网络命令。
                            作用,将计算机与共享资源连接或断开,或者显示关于计算机
                            连接的信息。该命令还控制持久网络连接。
                            语法:参见 net use /?

第三步:备份数据库
     backup database msdb to disk='//david/test/msdb.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:/test/msdb.bak文件了,使用起来很简单吧?恢复数据库操作也是一样,只要将第三个步骤的语句改为'restore database msdb from disk='//david/test/msdb.bak'就可以啦。。你看完了也可以试试呀?!(最简单的测试工具查询分析器+CMD窗口)

备注:xp_cmdshell 这个扩展存储过程只能SA级别的用户调用,而且是SQLSERVER的安全隐患之
      一,许多DBA都喜欢将其删除或者禁用,所以开发人员使用时要倍加小心哦。
     文章中的例子只是简要的说明了应如何利用扩展存储过程实现远程备份与恢复,没有涉及安全以及其他方面的考虑,希望读者在代码中自行完善。

使用SQLSERVER的扩展存储过程实现远程备份与恢复相关推荐

  1. sqlserver 只有函数和扩展存储过程才能从函数内部执行

    一个SQLServer的自定义函数中调用一个自定义的存储过程,执行此函数后发出如下提示:"只有函数和扩展存储过程才能从函数内部执行". 原因:函数只能使用简单的sql语句,逻辑控制 ...

  2. SQL-Server常用系统存储过程

    -- 来源于网络 -- 更详细的介结参考联机帮助文档 xp_cmdshell --*执行DOS各种命令,结果以文本行返回. xp_fixeddrives --*查询各磁盘/分区可用空间 xp_logi ...

  3. sql server 常用的扩展存储过程

    sql server 里面提供了丰富的系统存储过程来辅助我们管理数据库以及开发.今天分享介绍一些常用的数据库扩展存储过程 xp_cmdshell 这个大家都比较熟悉了,使用xp_cmdshell 可以 ...

  4. 高性能SQLServer通用分页存储过程

    这是我之前整理的高性能SQLServer 通用分页存储过程,测试性能还不错,特此分享出来,如果有人能更好地优化,请留言,谢谢! SQL代码  1 USE [数据库名称]  2 GO  3 /***** ...

  5. SQL Server里一些未公开的扩展存储过程

    SQL Server里一些未公开的扩展存储过程 [转帖] 博客天地 www.inbaidu.com SQL Server里一些未公开的扩展存储过程 扩展存储过程(xp)是直接运行在SQL Server ...

  6. 【推荐】(SqlServer)不公开存储过程sp_Msforeachtable与sp_Msforeachdb详解

    [推荐](SqlServer)不公开存储过程 sp_Msforeachtable与sp_Msforeachdb详解 --通过知识共享树立个人品牌. 一.简要介绍: 系统存储过程sp_MSforeach ...

  7. 使用扩展存储过程xp_regread读取注册表信息

    T-SQL使用扩展存储过程[master].[dbo].[xp_regread]读取注册表信息. 如下注册表: Insus.NET为了做演示,写了一个用户自定义函数[dbo].[GetServerLo ...

  8. 如何在sqlserver中写存储过程

    original link http://www.codeproject.com/Articles/126898/Sql-Server-How-to-write-a-Stored-procedure- ...

  9. 达梦dm数据库远程备份与恢复

    达梦dm数据库远程备份与恢复 ​ ​ 达梦数据库远程操作进行备份与恢复在网络上的参考资料与博客比较少,这里记录下项目中用到的方法. 1.工具类 ​ 首先是编写工具类,用于连接远程服务器.生成相应操作的 ...

最新文章

  1. 南开计算机和国立清华大学,同样来自交通大学,西安交通大学和上海交通大学,为何后来差距这么大?...
  2. 让人造太阳更近!DeepMind强化学习算法控制核聚变登上Nature
  3. boost::regex模块部分正则表达式相关的测试程序
  4. C语言 system相关的函数
  5. java 矩阵题目_一些数学分析不错的题目
  6. 供来宾访问计算机打开安全吗,计算机安全设置操作手册(22页)-原创力文档
  7. Mac 查看jdk版本
  8. 如何高效学习一门新技术
  9. 计算机网络 路由协议的配置_瑞尔森大学计算机网络专业
  10. 图解Http协议 url长度限制
  11. ListView缓存机制小结
  12. es 主要内存使用大户
  13. 大一java怎么学好_大一学习 JAVA
  14. php服务器文件直链,比较简单的百度网盘文件直链PHP代码
  15. 51nod初学者习题(一)
  16. Lab 5:面对面需求获取与原型设计
  17. 从汇编到太空——保罗·艾伦
  18. Aspose.word java 实现word转pdf
  19. 根据两个位置的经纬度,来计算两地的距离(单位为KM)
  20. [陇剑杯2021] 复现

热门文章

  1. 无法将mysql服务器连接到_无法从java连接到mysql服务器
  2. php极速链,php PHP极速链 战群源码系列(全自动采集更新+引流神器无数据库版) WEB(ASP,PHP,...) 261万源代码下载- www.pudn.com...
  3. ora 所有表记录数_ORACLE中如何查找定位表最后DML操作的时间小结
  4. 如何做一份能忽悠投资人的PPT
  5. db设计专用excel_电磁兼容(EMC):工程师必备之硬件EMC设计规范
  6. Android中Parcelable与Serializable接口用法
  7. 安装ISE.14.7后仿真时遇到的问题与解决
  8. C#分析URL参数获取参数和值得对应列表(一)
  9. Asp.Net无刷新分页( jquery.pagination.js)
  10. mongodb objectid java_我可以确定字符串是否是MongoDB ObjectID吗?