文档详情

SQLSERVER-数据恢复.docx

发布:2018-07-01约1.82千字共18页下载文档
文本预览下载声明
数据库误操作数据恢复还原出现问题,处于正在还原状态的取消命令 在master数据库下执行RESTORE DATABASE 数据库名 WITH RECOVERY数据恢复备份有两种方法。第一种 从备份中恢复数据总体操作步骤:1.先停止服务以免新的数据进来。造成恢复到以前的时间点后,新的数据无法恢复。2. 必须在出现问题之前做过完整备份。3. 在完整备份基础上做一次尾部日志备份。4. 还原事务日志,选择最后一次完整备份的数据库及尾部日志进行还原。先还原的是数据库,再还原尾部日志,还原尾部日志时要选择还原到的时间点,最好精确到秒。等待还原完成。注意事项:1. 在做尾部日志恢复之前,曾经做过最少一次的完整备份。因为所有类型的备份都基于完整备份,如果没有最少一次完整备份,其他类型的备份都是多余的,所以在这里强调一下,在创建完一个新数据库之后,强烈建议甚至强制做一次完整备份。2. 在出现操作失误之后不要做数据库的完整备份------SQL------1. 查看那些数据库做过备份SELECT??database_name,recovery_model,name???FROM?msdb.dbo.backupset??2. 还原出现问题,处于正在还原状态的取消命令 在master数据库下执行RESTORE DATABASE 数据库名 WITH RECOVERY具体操作方法备份物理源文件在出现操作失误之后不要做数据库的完整备份,先做MDF和LDF物理源文件备份。将数据库文件复制一份保存。备份日志尾部选择要备份日志的数据库,右键选择任务-》备份。 在常规中备份类型选择【事物日志】选择介质选项。在可靠性中勾选【完成后验证备份】和【写入介质前检查校验】,在事务日志中勾选【备份日志尾部,并使数据库处于还原状态】选择备份选项,在压缩选项中选压缩备份,确定备份此时数据库会处于【正在还原状态】如果发现备份不了可以用下面语句查看,并把spid杀掉后继续备份---查询数据库IDselect * from sys.databases---查询数据库的连接SELECT * FROM sys.sysprocesses WHERE dbid=数据库ID---删除数据库连接Kill (spid号) 如: kill 33还原完整备份选择还原【文件和文件组】,在【常规】中选择完整备份的数据库,先要还原完整备份,选择最近的那次,由于日志备份的特性,只认最后一次备份,所以要选择最新的那次,否则还原不了。在【选项】中选择恢复状态为 【不对数据库扫行任何操作,不加回滚提交的事物,可以还原其他事物日志(A)】 确定还原并成功。还原日志文件接着还原日志文件,这是最最重要的一步:选择【任务】-还原】-【事务日志】事物日志中选择完整备份时间后的所有事物日志。 在【时间点上】选择择需要还原的时间点【选项】内选择【回滚未提交的事物。。。】还原完成第二种 从日志执行undo脚本恢复安装软件并打开 (图略)安装软件 ApexSQLLog连接数据库必须做过日志备份才会连接成功。没有日志就是提示unknow recovery model 选择日志备份文件如果日志文件被移动需要手动添加日志文件,在未移动情况下,系统会自动搜索以前的所有数据库备份和备份日志文件。选择误操作时间所在的数据库备份和日志文件,点【next】设置查询日志的条件选择第一个 open results in grid 设置查询日志的条件,设置好条件后点【FINISH】time range 设置时间越精确越好。Operations点开 精确选择误操作命令。Tables选择误操作的表。field values设置误操作字段对应的值读取并打开日志文件等待打开日志,时间比较久,耐心等待。选择误操作记录打开日志文件之后可以看到操作记录,选中操作记录。在下面的信息框中可以看到old value 和new value 两列,后者就是误操作之后的值,需要还原到old value 的值。导出undo sql脚本选中操作记录之后,在界面的操作栏有undo选项,点击undo 导出一个undosql 脚本,执行undosql脚本下面是undosql的脚本信息,将脚本复制到数据库操作软件,或者直接用数据库操作软件(SSMS)打开,选择要恢复的数据库,然后点击执行。执行完undosql脚本之后,查询验证是否还原数据。数据还原完成之后,开启相应的web服务。
显示全部
相似文档