All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
ASP.NET,2.0,Language,Swithcer,and,Theme,Swicher,多语_[Asp.Net教程]
Windows环境PHP的session不能正常使用解决办法_[PHP教程]
PHP和JS实现普通HTTP上安全地传输密码_[PHP教程]
PHP常用函数_[PHP教程]
使用ASP.NET,AJAX框架扩展HTML,Map控件_.net资料_编程技术
ASP.NET中用哪种方式表格化数据_[Asp.Net教程]
代码实例:在ASP.NET中上传图片并生成缩略图_.net资料_编程技术
温故知新ASP.NET,2.0(C#)系列文章索引_[Asp.Net教程]
详细介绍动态网页PHP预定义变量之服务器变量_php资料_编程技术
一个功能齐全的DataGrid分页例子_[Asp.Net教程]
Reading number is top 10 pictures
西游四格漫画(一)
青春清纯美女大集合4
运动的范冰冰3
China railway shunting skills competition
Angie Chiu vijara myth2
清纯性感的美眉1
PengLiYuan lady for the world health organization fight TB and AIDS goodwill ambassador
明星与豪宅
怀春少女-石一伊
全身蕾丝丝质美臀
Download software ranking
Unix video tutorial5
网络管理员第三版
c#程序设计案例教程
Unix video tutorial7
卡丁车单机版
致我们终将逝去的青春
Prostitutes diary
天龙八部十二宫服务端
尖东毒玫瑰B
双旗镇刀客B
归海一刀 published in(发表于) 2014/2/3 6:42:16 Edit(编辑)
使用SQLSERVER的扩展存储过程实现远程备份与恢复_[SQL Server教程]

使用SQLSERVER的扩展存储过程实现远程备份与恢复_[SQL Server教程]

使用SQLSERVER的扩展存储过程实现远程备份与恢复_[SQL Server教程]

最近我在为公司的框架程序(以数据应用为导向的应用体系)做数据管理模块,这个模块的需求比较简单:备份、恢复和清理日志。我公司的软件基本上以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 /?



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


复制SQL代码保存代码master..xp_cmdshell 'net use \david\test 123 /user:domain\zf'


简要说明:


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


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


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


语法:参见SQLSERVER联机帮助


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


作用,将计算机与共享资源连接或断开,或者显示关于计算机


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


语法:参见 net use /?



第三步:备份数据库


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


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


文章中的例子只是简要的说明了应如何利用扩展存储过程实现远程备份与恢复,没有涉及安全以及其他方面的考虑,希望读者在代码中自行完善


转自【delphi】







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.