




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQL Server数据库的备份与还原以及在项目中是怎样去实现的2012-03-13 11:39:21标签:SQL Server数据库的备份与还原-备份的设备有2种(临时设备和永久设备) 注意:默认下的备份类型是完整备份-第一种:backup database Company to disk=d:backup1.bak-临时设备/*如果这里不指定明确路径的话(如:backup database company to disk=backup1.bak),那么备份的数据库将会自动备份到系统指定的目录下:C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackup*/-第二种:/*第一步首先建立永久备份设备 (系统自带的存储过程)在master 数据库中就会找到如图1:*/-执行语句如:exec sp_addumpdevice disk,disk_company,D:2.bak-永久设备-执行结果就会出现如图2:-多了一个备份设备:disk_company-第二步:backup database company to disk_company with noinit -默认表示追加(不覆盖)-好了 备份完成 !-现在我来还原数据库(我用的是第一种方法备份的,所以我要第一种方法来还原) ,-原来的数据如图3:-经过我手动删除几个表后的数据库如图4:-执行语句:restore database Company from disk=d:backup1.bak -注意备份到哪里去就要从还原哪里来-执行后会出现什么呢?请看错误消息:/*消息 3159,级别 16,状态 1,第 1 行尚未备份数据库 company 的日志尾部。如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志。请使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来只覆盖该日志的内容。消息 3013,级别 16,状态 1,第 1 行RESTORE DATABASE 正在异常终止。*/-为什么会出现这种错误呢 我们可以从错误的消息中找到解决方案!-我们去看看这个数据库的恢复模式如图5:-因为如图的恢复模式是 :完整; 所以它的功能是将所有事务都写入日志,把所有数据库文件的都还原-方案一:我现在只是还原的数据库文件 并没有备份日志文件 所以我再去备份日志文件backup log Company to disk=d:backup2.bak -备份日志文件restore database Company from disk=d:backup1.bak -再去还原数据库restore log Company from disk=d:backup2.bak-这步可有可无-执行的结果为:如图6:-方案二 由于错误消息中的提示:请使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来只覆盖该日志的内容。-消息 3013,级别 16,状态 1,第 1 行 所以 我想到去覆盖掉日志文件 虽然恢复模式是完整的 但是我要覆盖它 也是可以的-只是对数据库的操作没有日志没有完全还原而已 也是可以的-执行语句如下:restore database Company from disk=d:backup1.bak WITH REPLACE-执行成功/*已为数据库 Company,文件 Company_Data (位于文件 1 上)处理了 224 页。已为数据库 Company,文件 Company_Log (位于文件 1 上)处理了 5 页。RESTORE DATABASE 成功处理了 229 页,花费 0.225 秒(8.319 MB/秒)。*/-方案三:我想了一下 我只是备份了数据库,但是没有备份日志文件 根据备份还原的原理/*恢复模式 说明简单 不用备份的事务日志,即可还原用于小型数据库和不经常更改的数据库完整 所有事务都被记录到日志中保留所有日志,直到事务日志备份用于生产数据库大容量日志 完整恢复模式的补充不将大容量日志操作写入日志*/-所以我修改了这个数据库的属性中的恢复模式 改为 “简单”-如图7:-我直接执行还原的代码restore database Company from disk=d:backup1.bak/*执行结果:已为数据库 Company,文件 Company_Data (位于文件 1 上)处理了 224 页。已为数据库 Company,文件 Company_Log (位于文件 1 上)处理了 5 页。RESTORE DATABASE 成功处理了 229 页,花费 0.224 秒(8.356 MB/秒)。*/-三种还原的解决方案成功-但是这用到项目中数据库正在使用的话是不成功的 ,它具有排它性 !-所以我写了一个存储过程来解决,这也是很多程序员花了很久才解决的问题-代码用法如下 :有附带的例子下载-创建存储过程killspidcreate proc killspid (dbname varchar(20)asbegindeclare sql nvarchar(500)declare spid intset sql=declare getspid cursor forselect spid from sysprocesses where dbid=db_id(+dbname+)exec (sql)open getspidfetch next from getspid into spidwhile fetch_status -1beginexec(kill+spid)fetch next from getspid into spidendclose getspiddeallocate getspidendGO-说明:-1.此存储过程应写在Master中;-2.以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮合作协议的基本示本
- 产业链技术标准统一-洞察与解读
- 2025年四川省事业单位教师招聘考试生物学科专业知识真题模拟试卷
- 2025年陕西西安事业单位招聘考试综合类专业能力测试试卷(艺术设计类)真题模拟解析
- 2025年天津市和平区面向靖远籍招聘事业单位工作人员模拟试卷参考答案详解
- 2025年综合类事业单位招聘考试公共基础知识真题模拟试卷(河北)
- 跨境支付合规难题-洞察与解读
- 贺州期末考试卷子及答案
- 2025年中国无线智能可视门铃行业市场分析及投资价值评估前景预测报告
- 北师大版八年级上学期数学第四章一次函数第2节认识一次函数练习题(含答案)
- 【获奖教学课件】小学综合实践活动创建自己的阅读银行-“阅读存折”设计方案2
- GB/T 42579-2023北斗卫星导航系统时间
- 【超星学习通】追寻幸福:中国伦理史视角(清华大学)章节答案
- 完整版青少年普法宣传教育课件
- 拌料机操作规程
- GB/T 39126-2020室内绿色装饰装修选材评价体系
- GB/T 28726-2012气体分析氦离子化气相色谱法
- 企业降本增效培训课件
- 邀请函模板完整
- 分则第二章危害国家安全罪课件
- 电费分割单模板
评论
0/150
提交评论