资源描述:
《简单实现standby sql server数据库--》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、简单实现StandbySqlServer数据库>> 一、为什么要备份数据库? 在现实IT世界里,我们使用的服务器硬件可能因为使用时间过长,而发生故障; odifiedBy: BruceCanaday--11/04/2003-- scripts/contributions/962.asp--ModifiedBy: maggiefengyutom.---02/23/2005----调用举例:execsp_RestoreDir'F:ackup_datadb_test','E:sqlserver_datadb_test'/**************
2、*************************************************************************/CREATE procsp_RestoreDir restoreFromDirvarchar(255), restoreToDataDirvarchar(255)=null, restoreToLogDirvarchar(255)=nullas--IfadirectoryfortheLogfileisnotsuppliedthenusethedatadirectoryIfrestoreToLogDirisnull setresto
3、reToLogDir=restoreToDataDirsetnocountondeclarefilename varchar(40), cmd varchar(500), DataName varchar(255), LogName varchar(255), 1234下一页>>>>这篇文章来自..,。LogicalName varchar(255), PhysicalName varchar(255), Type varchar(20), FileGroupName varchar(255), Size var
4、char(20), MaxSize varchar(20), restoreToDir varchar(255), DBName varchar(255), PhysicalFileNamevarchar(255), i_exist intcreatetable#dirList(id[int]IDENTITY(1,1)NOTNULL,filenamevarchar(100))createtable#filelist(LogicalNamevarchar(255),PhysicalNamevarchar(255),Typevarchar(20),Fil
5、eGroupNamevarchar(255),Sizevarchar(20),MaxSizevarchar(20))--GetthelistofdatabasebackupsthatareintherestoreFromDirdirectoryorderbydatedesc selectcmd='dir/b/o-d/o-g'+restoreFromDir+''seti_exist=0insertinto#dirList(filename)execmaster..xp_cmdshellcmd --找到备份目录下次新的2个文件名,不处理最新的,避免最新备份好的物
6、理文件没有完全复制成功selectfilenamefrom#dirListefrom#dirListedbo.sysobjects evarchar(128),dtdatetimedefaultgetdate()) end-- 判断此备份文件有无在恢复日志表里记录过? selecti_exist=count(0)fromrestore_loge=filename ifi_exist=0 begin--根据备份目录下的物理文件名,找到对应的逻辑名等参数 selectcmd=RESTOREFILELISTONLYFROMdisk=' +rest
7、oreFromDir++filename+' insert#filelistexec(cmd) -- select*from#filelist ifright(filename,3)='TRN' begin selectdbName=left(filename,datalength(filename) -patindex('%_golt_%