有个方法很好理解,如下:
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、成都做网站、赤峰网络推广、小程序开发、赤峰网络营销、赤峰企业策划、赤峰品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供赤峰建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
1、新建数据库,另起名,强制恢复原先数据库的备份。
2、从该新数据库中把你想要的表DTS到你想到的数据库中。
方法虽拐弯了一点,但很安全,很好理解。
方案1:恢复到一个不同的数据库:
对于小数据库来说不失为一种好的办法,用备份还原一个新的库,并把新库中的表数据同步回去。你可以做完整恢复,或者时间点恢复。但是对于大数据库,是非常耗时和耗费磁盘空间的。这个方法仅仅用于还原数据,在还原数据(就是同步数据)的时候,你要考虑触发器、外键等因素。
方案2:使用STOPAT来还原日志:
你可能想恢复最近的数据库备份,并回滚到某个时间点,即发生意外前的某个时刻。此时可以使用STOPAT子句,但是前提是必须为完整或大容量日志恢复模式。
1、确保备份下的master数据库与要恢复的SQL SERVER的版本一致性。
2、关闭打开SQL Server Management Studio,打开服务器管理器,点击“配置”-“服务”,找到SQL SERVER服务,右键点击出快捷菜单。点击“停止”停止MSSQLSERVER服务。
3、以管理员账户打开cmd,输入以下的命令:net start mssqlserver /m。
4、打开SQL Server Management Studio,出现连接到服务器的窗口,点击取消。
5、点击“新建查询”,出现连接到服务器的窗口,点击确定。因为是单用户模式,因此只能有一个链接进入。
6、在查询窗口输入以下的命令。
7、重新启动SQL SERVER(MSSQLSERVER)服务,右键点击出快捷菜单。点击“启动”启动服务就可以了。
用RESTORE命令还原起来不太好写,我建议你还是新建一个数据库,然后在新建数据库上强制还原你的数据备份(注意目的数据库的路径选择),然后使用“导入/导出数据”命令在数据库之间将你需要的表覆盖(注意不要选成追加)。就可以了。
ps,研究完RESTORE,上面还原十边都完了。呵呵,还有别忘了在还原前再做此备份
下面是使用restore命令还原,如果不明白可以看看sqlserver帮助
还原数据库的部分内容:
RESTORE DATABASE { database_name | @database_name_var }
file_or_filegroup [ ,...n ]
[ FROM backup_device [ ,...n ] ]
[ WITH
{ PARTIAL }
[ [ , ] FILE = { file_number | @file_number } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]
[ ,...n ]
[ [ , ] NORECOVERY ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] REPLACE ]
[ [ , ] RESTRICTED_USER ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
使用Log Explorer查看和恢复数据
Log Explorer 4.1.可用于SQL Server2005的日志查看工具
下载地址:
使用方法:
打开Log Explorer - Attach Log File - 选择SQL Server服务器和登陆方式 - Connect -
在Database Name中选择数据库 - Attach- 左面对话框中Browse- View Log- 就可以看到log记录了
想恢复的话: 右键Log记录 Undo Transation- 选择保存文件名和路径- 然后打开该文件到查询分析器里执行
T-sql代码就可以了
例如 如果Log是delete table where ...的话,生成的文件代码就是insert table ....
然后将此insert table的代码放到查询分析器里执行.就可以恢复数据.
----------------------------------------------------------------------
--如何恢复被delete/update的数据
----------------------------------------------------------------------
1 连接到被删除数据库的Db
打开log explorer 选择 "file"-"attach log file"-选择服务器和登陆方式-"connect"-选择"数据库"-"attach"
2 查看日志
在左面操作项目的对话框中选择"browse"项目-"view log"-就可以看到当前的Log记录了
3 恢复数据
右键某一条log记录,选择"undo transation"-"选择保存文件名和路径"-然后打开该文件到查询分析器里执行
T-sql代码就可以了
例如: 如果log是delete table where ...的话,生成的文件代码就是insert table ....
----------------------------------------------------------------------
--Log Explorer恢复被drop table和truncate table后的数据
----------------------------------------------------------------------
1 连接到被删除数据库的Db
操作同上
2 恢复方法
1) 选择"salvaage dropped/truncate"菜单,在右边的对话框中选择表名,和droped/trucated的日期,
File Name中选择生成insert语句脚步的存放位置,condition选择是droped还是truncated,
最后点击"create" 就会生成insert语句,把生成的语句到查询分析器里面执行一下就可以了
2) 选择"ViewDDL Commands"菜单-选"truncate table" 操作项-点击"Salvage"-生成语句-查询分析器里执行
----------------------------------------------------------------------
--log explorer使用的几个问题
----------------------------------------------------------------------
1) 对数据库做完全/差异/日志备份
备份时如果选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时,提示No log recorders found that match the filter,would you like to view unfiltered data 选择yes 就看不到刚才的记录了
如果不选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时,就能看到原来的日志并做恢复
2) 修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复
3) 然后恢复备份,(注意:恢复是断开log explorer与数据库的连接,或连接到其他数据上,
否则会出现数据库正在使用无法恢复)
恢复完后,再打开log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data,选择yes 就看不到刚才在2中修改的日志记录,所以无法做恢复.
4) 不要用SQL的备份功能备份,搞不好你的日志就破坏了.
正确的备份方法是:
停止SQL服务,复制数据文件及日志文件进行文件备份.
然后启动SQL服务,用log explorer恢复数据
SQLSERVER 2008误删除表,几百万行数据没了,怎么恢复
误删了数据可以用恢复软件恢复,你可以用 AneData全能文件恢复。格式化分区或者误ghost到其他的分区数据丢失要恢复,分区突然打不开了提示未被格式化数据要恢复,直接删除或者清空了回收站,卸载软件丢失的数据要恢复等等都可以恢复的,具有反删除、反格式化、分区恢复、高级模式等扫描功能,可以恢复最常见的种种数据丢失的情况。