SQL Server backup & Restore
文章平均质量分 63
KevinLiu
SQL Server MVP
展开
-
Lumigent Log Explorer是不是可以恢复所有用户误操作的数据?
刚用SQLServer的时候遇到一个情况,由于用户的误操作导致一张表被删除,由于数据库没有备份,所有不能用Restore还原(现在知道备份是多么的重要)。去网上查看了第三方的数据恢复工具然后找到了LumigentLog Explorer。照着操作进行了恢复,但是恢复完成后竟然没有发现数据,百思不得器解。不过好在可以通过一些其他的数据把这张表找回来。 现在我们谈谈问什么数据没有被恢复出来原创 2012-08-02 13:52:40 · 1791 阅读 · 0 评论 -
消息 5070 在其他用户正式用数据库“”时无法更改数据库状态
在还原数据库的时候经常会遇到一些错误无法成功还原,常见的错误如下: 消息 5070 在其他用户正式用数据库“”时无法更改数据库状态 这个错误是因为数据库正在被访问,还原失败。网上有很多代码是先kill掉数据库的session然后再做还原。但是对于繁忙的系统,刚kill掉Session就会有其他session连进来,所以还是失败。 可以通过将数据库修改为单用户模式或者of原创 2013-08-28 10:29:50 · 5228 阅读 · 0 评论 -
如何备份数据库到本地映射网络驱动器
我们使用映射驱动器备份SQL Server数据库的时候可能会遇到下面的错误: ”失败,错误如下:“无法打开备份设备 'z:\GBDB_backup_201306302002.bak'。出现操作系统错误 3(系统找不到指定的路径。)。 数据库无法找到路径,但是如果我们直接打开的话是可以正常访问的,那么为什么SQL Server无法访问呢? 因为SQL Server是作为S翻译 2013-07-01 09:39:36 · 5657 阅读 · 0 评论 -
SQL Server 备份提速
对于大的数据库,备份花费的时间是非常多的,而且很耗费资源。如果能让备份跑的更快? 可以使用下面的参数:1. 将数据库备份多到个文件(多个磁盘)2.启用压缩功能(2008,R2之后都有)3. 使用参数maxtransfersize和buffercount4.调整备份侧率,使用文件和文件组备份 BUFFERCOUNT :指定用于备份操作的 I/O 缓冲区总数。可以指定原创 2012-10-09 11:19:48 · 2475 阅读 · 0 评论 -
已备份数据库的磁盘结构版本为611,服务器支持版本为539,无法还原或升级数据库
大家都知道高级版本的数据库文件无法还原或者附加到低版本,因为高版本和低版本文件格式会有不同。如果尝试将低版本的数据库附加或者还原到低版本的数据库会看到类似下面的错误: 已备份数据库的磁盘结构版本为611,服务器支持版本为539,无法还原或升级数据库。RESTORE FILELIST 操作异常结束。(MicrosoftSQL Server,错误:3169) 可以看到这里有两个版本原创 2012-12-21 13:17:19 · 50638 阅读 · 0 评论 -
SQL Server做完整备份步骤
四个步骤: 1. Checkpoint database means that SQL Server writes all dirty pages (pages that have changed since loaded into memory) to disk to ensure only committed transactions included in full原创 2012-12-14 15:49:36 · 1356 阅读 · 0 评论 -
查询清除SQL Server数据库备份还原历史记录
曾经遇到过一个用户MSDB数据库非常大,让我帮忙查查是什么原因。使用sp_spaceused找出了所有表的数据大小,发现问题是SQL Server备份和还原历史表数据太大。用户经常会做日志备份,但是从来没有清除过历史记录。后来在设置了维护计划定期清除备份记录,问题就不在发生了。这里列出了查询SQL Server备份还原记录的语句以及如何清理数据库备份还原的脚本: --查询S原创 2012-10-18 20:35:22 · 6216 阅读 · 0 评论 -
使用SQL BAK Reader 小工具查看SQL Server备份文件内容(不需要打开SQL Server)
有时候我们没有SQL Server或者没有权限连接到SQL Server,但是我们想查看备份文件包含的内容,这个时候我们可以使用SQL BAK Reader小工具。另外你无法还原数据库的时候,你想查看这个备份的数据库版本也可以使用这个工具,即使BAK文件损坏也可以用SQL BAK Reader打开。 使用SQL BAKReader打开MASTER备份文件(如下图):原创 2012-10-12 10:03:23 · 29480 阅读 · 4 评论 -
Table restore and filegroups
Table restore and filegroupsThe story usually goes something like:Q - How can I restore only this table?A - Put it on its own filegroup and you can do filegroup level backup and restore. The转载 2012-09-19 11:39:13 · 1384 阅读 · 0 评论 -
重新初始化SQL Server Log Shipping
这几天一直在忙其他事情,没有关注Log shipping的状态,今天早上查看报表发现一个Log shipping的数据库已经几天没有同步了,数据库的状态为Restoring,需要重新初始化。 步骤: 1.还原最近的数据库完整备份 2.还原完整备份之后的所有日志备份,使用下面的脚本可以将自上次完整备份之后的所有日志备份找出来,然后直接在Secondary数据库上执行:原创 2012-09-13 10:40:40 · 1815 阅读 · 0 评论 -
Msg 3059 This BACKUP or RESTORE command is not supported on a database mirror or secondary replica
配置好 2012 AlwaysOn High availability Group就想体验一下在辅助数据库做备份的新功能。在辅助服务器备份,这样可以减轻主服务器的负载(非常好的一项改进,以前Databasemirroring辅助数据库是不可以访问的)。 但是备份的时候却报错: Backup databasetesttodisk='c:\test.bak' Msg 30原创 2012-08-21 16:56:50 · 3352 阅读 · 1 评论 -
使用文件和文件组备份可以恢复表数据吗?
以前有人问过我SQL Server backup命令是不是支持单表备份,SQL Server是没有Backup table命令的。当时我的建议是用SSIS导出到文件系统,其他数据库或者用文件组备份。现在想想单纯靠文件组备份不一定解决表还原问题。 对于文件组还原要求所有的文件组都要在同一个时间点上,这样才能保证数据库的连续性。如果我们发现文件组中的数据被被删除,那么我们需要首先恢复文件组备份原创 2012-07-29 07:33:34 · 1624 阅读 · 0 评论 -
log backup chain被打断后是不是需要从一个完整备份重新开始?
一般我们的理解是logbackup chain被打破后一定需要一个完整备份然后才能开始新的日志备份,其实不一定需要完整备份,差异备份也是可以的。 首先我们先做个测试:创建数据库做完整备份和日志备份,然后将恢复模式变成简单恢复模式。 CREATEDATABASE LogChainTest;GOALTER DATABASE LogChainTest SET RECO翻译 2012-07-27 17:18:26 · 1264 阅读 · 0 评论 -
SQL Server Backup/Restore具体做什么
微软提供了一些Undocumented Trace Flags可以让我们了解很多备份和还原的信息,通过输出的内容我们可以清楚的看到BACKUP/Restore都做了哪些事情。 因为这些是Undocumented ,所以微软的建议是谨慎使用,如果要用的话需要有微软工程师的指导,当然大家可以在自己的电脑上玩玩, 这样可以看到备份和还原背后的故事。 这是我在自己电脑上做的测试:开启Tra原创 2012-07-24 10:22:33 · 2765 阅读 · 0 评论 -
吐槽一下Page Restore
以前觉得Page Restore确实挺好用的,而且确实用Page Restore快速解决过一些问题。但是仔细想想很多时候Page Restore可能根本用不上。 因为SQL Server在备份的时候是不会检查数据库的结构的,如果有一些Page损坏了,数据库仍然可以成功备份。使用 下面我们用Pual提供的损坏数据库做个实验(下载路径:http://www.sqlskills.com/原创 2013-10-29 17:04:22 · 1886 阅读 · 3 评论