ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:27.65KB ,
资源ID:12591180      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12591180.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(vfp sql server 进行备份恢复.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

vfp sql server 进行备份恢复.docx

1、vfp sql server 进行备份恢复主题: VFP+SQL Server 2000怎样进行数据库备份和恢复? 作者: itzhiren 等级: 信 誉 值: 100 所属社区: 其他数据库开发 VFP 问题点数: 20 回复次数: 26 发表时间: 2005-7-26 11:10:07 VFP+SQL Server 2000怎样进行数据库备份和恢复?我看过myf1上的一篇帖子,但是看不太明白,感觉太麻烦了,请问各位高手,VFP有没有什么备份的命令之类的怎样进行备份与恢复? westbulls westbulls 信誉: 100 2005-7-26 11:52:16 得分: 0 可以调用S

2、QLSERVER自己的命令来备份和还原数据库=sqlexec(cnn,backup database lib to disk=c:lib.dat)=sqlexec(cnn,restore database lib from disk=c:lib.dat)但是备份还原的文件只能够是服务器上的,如果要备份到本地或者还原本地的文件,可能只有采用映射网络驱动器的方法了。 Top itzhiren itzhiren 信誉: 100 2005-7-26 12:24:22 得分: 0 怎样映射? Top westbulls westbulls 信誉: 100 2005-7-26 12:48:50 得分: 5

3、 1.在服务器上共享一个目录,比如f:data2.在网上邻居打开你的服务器,找到f:data,占击工具栏上的映射网络驱动器,比如k:3.上现语句改为=sqlexec(cnn,backup database lib to disk=f:datalib.dat)=sqlexec(cnn,restore database lib from disk=f:datalib.dat)4.你可以在你的k:盘上操作你的备份及恢复文件,实际上是服务器上的f:data目录.不过这种做法按全性比较低 Top apple_8180 十豆三 信誉: 305 2005-7-26 14:36:52 得分: 15 转帖:在V

4、FP里操作和管理SQL SERVER(介绍SQL-DMO) (1)在论坛混了这么多年, 看到的一个很明显的趋势是, 用VFP和SQL SERVER来做系统的网友越来越多。怎么从VFP里来操作或者管理SQL SERVER也成为很多人关心的问题。 对SQL SERVER的数据操作,可以用视图,SPT或者ADO来做,但对服务器本身的管理,似乎只有用SPT来发送一些命令了。其实, 微软为客户端操作SQL SERVER开发了一套完整的工具, 这就是SQL - DMO (Distributed Management Objects). 这是一套COM组件,可以在各种语言里使用, VFP里自然也可以用了。我

5、准备花点时间,写些这方面的介绍文章,然后做个实例,算是我通过MCDBA后,给大家的礼物吧。下面的介绍和例子,是针对SQL SERVER 2000和VFP7的。一. 用SQL -DMO的必要性大部分VFPER开发的程序,都是中小规模的系统,因为这是VFP最适用的范围。而这样的系统,很多情况下是,客户端没有专业IT人士维护,更不要说专门的DBA了。对于使用SQL SERVER的系统,就带来了一些问题。 SQL SERVER是一套比较大的数据库专业软件, 是经常需要维护和清理的,而我们这些系统开发者, 总不能老跑去用户那里做维护工作吧,尤其对商业软件来说,这是很大的成本了。如果可以把对SQL SER

6、VER的维护工作放到自己的程序里,甚至把SQL SERVER的安装无缝并入到自己的程序的安装包里,相信大家都会很乐意的。 DMO的功能就能满足我们的这些需要。通过它,可以从程序里用命令方式来操作SQL SERVER:停止/启动服务,建立数据库和表,添加用户和权限,备份/恢复数据库,数据导入/导出/发布. DMO的作用就是把我们能在Enterprise Manager里完成的功能,完全用代码来做. 二. 微软的桌面数据引擎 (Desktop Database Engine)我们都知道SQL SERVER 2000有四个版本: 个人版,开发者版,标准班和企业版. 其实,还有一个版本,就是桌面数据引

7、擎(DDE)。 DDE几乎具有SQL SERVER标准版和企业版的所有功能,不能支持的只是少数几个不常用的功能。而它和其它版本的区别是, DDE没有任何图形管理界面,没有ENTERPRISE MANAGER,没有查询分析器等等工具。 对它的管理,主要是通过DMO或者专门的API来进行,它的另一个优点是, 提供了安装程序,可以直接加到第3方软件里进行安装。每个版本的SQL SERVER CD里都带有DDE, 在MSDE目录下,运行SETUP程序就可以安装。至于怎么把它加到自己的程序里安装,大家查一下SQL SERVER的帮助文件就可以找到。DDE的限制是: 只适宜中小型系统(比如没有5个以上的用

8、户同时连接和运行大型SQL命令), 如果同时访问的用户很多, DDE就会比正常的SQL SERVER慢了。这样, DDE+DMO就可以实现我们上面所要求的功能了。这种做法甚至可以不让用户知道你是在使用SQL SERVER做为数据库。当然, DMO不是只能操作DDE,它可以操作所有版本的SQL SERVER。三. DMO的安装其实DMO主要就是一个DLL文件而已: SQLDMO.DLL。具体位置在C:Program FilesMicrosoft SQL Server80ToolsBinn目录里, 在同一目录里还有个帮助文件Sqldmo80.hlp. 如果你在程序里不能使用DMO, 找到这个DLL

9、文件,注册一下,就可以了。另外在C:Program FilesMicrosoft SQL Server80Tools DevtoolsSamplesSqldmo 目录下,有SQLDMO的例子,但都是VB和VC+的。VB的例子和VFP很接近的.四. 初步接触DMO在这里写几个简单的句子,来看看DMO的强大. 这些命令可以直接在命令窗口里一行一行测试, 只是用它们来显示数据库的信息。至于添加数据库,数据表,备份和恢复等比较复杂的功能,得在实例里做。oServer=CreateObject(SQLDMO.SQLServer) &建立SERVER对象oServer.Connect(Snoopy,sa,

10、778899) &连接到你的服务器? oServer.Databases.Count &显示服务器上的数据库总数? oServer.Databases.Item(1).Name &显示第一个数据库的名字oDB=oServer.Databases(PUBS) &建立数据库对象? oDB.Tables.Count &显示库里表的数目oTable=oDB.Tables(Titles) &建立表对象? oTable.Rows &显示表里的记录数? oTable.Columns.Count &显示表的列数*显示列的属性? oTable.Columns(1).Name ? oTable.Columns(1

11、).type? oTable.Columns(1).Datatype? oTable.Columns(1).Identity? oTable.Columns(1).InPrimaryKey例子:Backup和Restore数据库oServer=CreateObject(SQLDMO.SQLServer) &建立SERVER对象oServer.Connect(Snoopy,sa,778899) &连接到你的服务器*备份oBackup=CreateObject(SQLDMO.Backup) &建立备份对象oBackup.Database=PUBS &指定备份数据库oBackup.Password=

12、8899 &给备份文件加密码oBackup.Files=D:TempPUBBack.Dat &指定目标文件oBackup.SQLBackup(oServer) &运行备份命令,速度很快的*备份恢复oRestore=CreateObject(SQLDMO.Restore)oRestore.Database=PUBSoRestore.Files=D:TempPUBBack.DatoRestore.SQLRestoreoRestore.SQLRestore(oServer) &先试不加密码,备份失败oRestore.Password=8899oRestore.SQLRestore(oServer)

13、Top apple_8180 十豆三 信誉: 305 2005-7-26 14:39:51 得分: 0 接上:SQL SERVER提供几种数据库备份方式,一种是完整备份 (Full Backup), 第二种是差异备份(Differential Backup), 第三种是日志备份, 第四种是文件备份完整备份是把整个数据库做个备份,差异备份只是备份进行了完整备份后数据库里的新变化。当数据库很大时, 完整备份很费空间和时间,可以根据情况定期做,比如每周或者每月做一次完整备份。 其它时间可以进行差异备份,比如每天一次,或者半天一次, 也可以结合进行日志备份。文件备份是直接备份数据库的数据和日志文件。和

14、在操作系统里做备份一样.在恢复的时候,只要先恢复完整备份,然后恢复最后一个差异备份就可以。如果有日志备份,还需要恢复差异备份后所做的日志备份。备份种类通过 备份对象的Action属性来决定.oBackup.Action=0 & 参数: 0 - 完整备份,1- 差异备份, 2- 文件备份, 3 -日志备份Server对象的一些属性和方法属性AutoReConnect: 当连接断开,后是否自动重连ConnectionID: 本连接的IDHostName: 本地机器的名字Isdbcreator, Isdiskadmin, Isprocessadmin, Issecurityadmin, Isserv

15、eradmin, Issetupadmin, Issysadmin: 返回当前连接用户是否属于某类SERVER ROLE,比如是不是SALoginTimeout: 决定连接超时时间,默认为60秒SaLogin: 当前连接是不是SAStatus:服务器当前状态 VersionMajor,VersionMinor: SQL SERVER的版本号方法:AttachDB, DetachDB: 添加或者剥离数据库Connect, Disconnect, Close: 连接, 断开,或者关闭当前服务器对象(oServer)VerifyConnection: 测试当前连接是否断开Reconnect: 重新连

16、接Start, Stop, Shutdown: 用来启动,停止或者关闭服务器BeginTransaction, RollbackTransaction, CommitTransaction: 操作事务EnumServerAttributes: 返回服务器的大部分设置参数EnumLocks: 返回服务器上所有的加锁进程KillProcess: 强行中断一个进程在VFP里来操作和管理SQL SERVER (2) (介绍SQL-DMO)用DMO来建立任务,并让它定时运行. 执行环境必须是NT或者WINDOWS 2000, 因为需要运行SQL AGENT*建立任务(JOB)oJob=CreateObj

17、ect(SQLDMO.Job) &创建任务对象ojob.Name=Pubs_Daily_Backup &任务名称oServer.JobServer.Jobs.Add(oJob) &加到SQL SERVER的任务里oJob.BeginAlter &开始定义任务oJobStep=CreateObject(SQLDMO.JobStep) &创建任务步骤对象oJobStep.Name = Step_1 &步骤名称oJobStep.StepID = 1 &步骤号码oJobStep.DatabaseName=Pubs &数据库名称oJobStep.SubSystem= TSQL &任务类型,可以是TSQL

18、或者操作系统命令(CmdExec), 或者ActiveScriptingcFName=PubBack+Dtoc(Date(),1)+.dat &备份目标文件名oJobStep.Command =Backup database Pubs to Disk=D:Temp+cFname+ With Password=7788 &执行备份的TSQL命令oJobStep.OnFailAction = 2 & 如果任务失败退出。也可以设成发送EMAIL或者用NT里的NETSEND发信息oJobStep.OnSuccessAction= 1 & 如果任务成功,退出。oJob.JobSteps.Add(oJob

19、Step) &添加任务步骤oJob.StartStepID = 1 &从第一步开始执行,对多步骤的任务起作用oJob.DoAlter &保存修改*把任务加到SCHEDULER里oJobSchedule =CreateObject(SQLDMO.JobSchedule) &创建Schedule对象oJob = oServer.JobServer.Jobs(Pubs_Daily_Backup)&创建任务对象oJobSchedule.Name = Daily_Execution &名称oJobSchedule.Schedule.FrequencyType= 4 & 运行频率, 4是每日运行oJobS

20、chedule.Schedule.FrequencyInterval = 1 &运行间隔, 1是每天oJobSchedule.Schedule.ActiveStartDate =Dtoc(Date(),1) &开始日期(今天), 必须是yyyymmdd格式oJobSchedule.Schedule.ActiveStartTimeOfDay = 233000 &开始时间(晚上11点30), 必须是 hhmmss格式*下面2句设置是使任务永不过期oJobSchedule.Schedule.ActiveEndDate=99991231 &no end dateoJobSchedule.Schedul

21、e.ActiveEndTimeOfDay =235959 &No end time添加任务到SCHEDULE里oJob.BeginAlteroJob.JobSchedules.Add(oJobSchedule)oJob.DoAlter上述命令我在VFP7里都测试成功,在SQL SERVER里也看到了新添加的命令和运行设置,但因为我是用的WINDOWS ME,没法测试任务是否真的运行了。哪位有环境,可以帮我试试 Top westbulls westbulls 信誉: 100 2005-7-26 15:07:04 得分: 0 to apple_8180(十豆三) :你所列的sql dmo是一种对象

22、管理的方式,但是使用起来有点太麻烦了,而且也不能够解决备份文件位置的问题,其实本身T-SQL中本身就集成了很多方法,我想还是尽量不要使用SQL DMO好一些.SQL DMO本身是SQL SERVER的SDK,还有估计下一版本SQL SERVER2005可能会换成.NET语句了,呵呵. Top apple_8180 十豆三 信誉: 305 2005-7-26 15:31:20 得分: 0 而且也不能够解决备份文件位置的问题-to : westbulls(westbulls)oBackup.Files=D:TempPUBBack.Dat &指定目标文件 Top apple_8180 十豆三 信誉:

23、 305 2005-7-26 15:42:46 得分: 0 下面这个帖子中的存储过程比较麻烦,不过调用起来比较简单。-SQL SERVER2000数据库备份和恢复存储过程我自己写的2个过程和一个函数,用于SQL SERVER2000数据库备份和恢复拿出来和大家交流一下,过程和函数的详细说明在代码中谢谢/*备份数据库的过程*/if exists(select * from sysobjects where name=pr_backup_db and xtype=p )begindrop proc pr_backup_dbendgocreate proc pr_backup_dbflag varc

24、har(20) out,backup_db_name varchar(128),filename varchar(1000) -路径文件名字asdeclare sql nvarchar(4000),par nvarchar(1000)if not exists(select * from master.sysdatabases where name=backup_db_name )beginselect flag=db not exist /*数据库不存在*/returnendelsebeginif right(filename,1) and charindex(,filename)0begi

25、n select par=filename varchar(1000) select sql=BACKUP DATABASE +backup_db_name+ to disk=filename with init execute sp_executesql sql,par,filename select flag=ok returnendelsebegin select flag=file type error /*参数filename输入格式错误*/ returnendendGO说明:pr_backup_db过程是备份你的数据库/*创建函数,得到文件得路径*/if exists(select

26、 * from sysobjects where name=fn_GetFilePath and xtype=fn )begindrop function fn_GetFilePathendgocreate function fn_GetFilePath(filename nvarchar(260)returns nvarchar(260) asbegindeclare file_path nvarchar(260)declare filename_reverse nvarchar(260)select filename_reverse=reverse(filename)select file

27、_path=substring(filename,1,len(filename)+1-charindex(,filename_reverse)return file_pathendGO/*恢复数据库的过程*/if exists(select * from sysobjects where name=pr_restore_db and xtype=p )begindrop proc pr_restore_dbendgoCREATE proc pr_restore_db flag varchar(20) out, /*过程运行的状态标志,是输入参数*/ restore_db_name nvarch

28、ar(128), /*要恢复的数据名字*/filename nvarchar(260) /*备份文件存放的路径+备份文件名字*/asdeclare proc_result tinyint /*返回系统存储过程xp_cmdshell运行结果*/declare loop_time smallint /*循环次数*/declare max_ids smallint /*tem表的ids列最大数*/declare file_bak_path nvarchar(260) /*原数据库存放路径*/declare flag_file bit /*文件存放标志*/declare master_path nva

29、rchar(260) /*数据库master文件路径*/declare sql nvarchar(4000),par nvarchar(1000)declare sql_sub nvarchar(4000)declare sql_cmd nvarchar(100) declare sql_kill nvarchar(100) /*判断参数filename文件格式合法性,以防止用户输入类似d: 或者 c:a 等非法文件名参数filename里面必须有并且不以结尾*/if right(filename,1) and charindex(,filename)0begin select sql_cmd

30、=dir +filenameEXEC proc_result = master.xp_cmdshell sql_cmd,no_outputIF (proc_result0) /*系统存储过程xp_cmdshell返回代码值:0(成功)或1(失败)*/begin select flag=not exist /*备份文件不存在*/ return /*退出过程*/end/*创建临时表,保存由备份集内包含的数据库和日志文件列表组成的结果集*/create table #tem( LogicalName nvarchar(128), /*文件的逻辑名称*/ PhysicalName nvarchar(260) , /*文件的物理名称或操作系

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1