当前位置:w88优德官网网文章中心网站运营帮助中心 → 在SQL Server里如何进行页级别的恢复?

在SQL Server里如何进行页级别的恢复?

减小字体 增大字体 作者:admin  来源:本站整理  发布时间:2016-11-26 12:36:18
在今天的文章里我想谈下每个DBA应该知道的一个重要话题:在SQL Server里如何进行页级别还原操作。假设在SQL Server里你有一个损坏的页,你要从最近的数据库备份只还原有问题的页,而不是还原整个数据库。我们来破坏一个页第一步我想向你展示下如何建立表(或索引)里有个特定页损坏的情景,这里我们会进行一些魔术,因为开箱即用(out-of-box)的SQL Server本身不会引入任何损坏的页(如果有的话,恭喜你找到了一个BUG)。我们从创建一个新的数据库,往新建的表插入一些记录开始。
1 USE master 2 GO 3 4 CREATE DATABASE PageLevelRestores 5 GO 6 7 USE PageLevelRestores 8 GO 9 10 -- Create a table where every record fits onto 1 page of 8kb11 CREATE TABLE Test12 (13 Filler CHAR(8000)14 )15 GO16 17 -- Insert 4 records18 INSERT INTO Test VALUES (REPLICATE('A', 8000))19 INSERT INTO Test VALUES (REPLICATE('B', 8000))20 INSERT INTO Test VALUES (REPLICATE('C', 8000))21 INSERT INTO Test VALUES (REPLICATE('D', 8000))22 GO23 24 -- Retrieve the selected records25 SELECT * FROM Test26 GO
下一步我进行完整数据库备份。这就是说这个备份包含了属于Test表的所有页。这非常重要,因为接下来我们会破坏这个表的一个特定页。为了找出属于Test表的页,我用DBCC IND命令来返回所有属于这个表的页。
1 -- Perform a full database backup2 BACKUP DATABASE PageLevelRestores TO DISK = N'C:\Backups\PageLevelRestores.bak'3 GO4 5 -- Retrieve the first data page for the specified table (columns PageFID and PagePID)6 DBCC IND(PageLevelRestores, Test, -1)7 GO
数据库优化 SQLServer优化 页级别恢复 数据恢复数据库优化 SQLServer优化 页级别恢复 数据恢复为了破坏一个特定的页,我使用未公开的DBCC WRITEPAGE命令。是的,在SQL Server里有个可用的DBCC WRITEPAGE命令,但请不要告诉任何人……
1 ALTER DATABASE PageLevelRestores SET SINGLE_USER WITH ROLLBACK IMMEDIATE 2 GO 3 4 -- Let's corrupt page 90... 5 DBCC WRITEPAGE(PageLevelRestores, 1, 90, 0, 1, 0x41, 1) 6 DBCC WRITEPAGE(PageLevelRestores, 1, 90, 1, 1, 0x41, 1) 7 DBCC WRITEPAGE(PageLevelRestores, 1, 90, 2, 1, 0x41, 1) 8 GO 9 10 ALTER DATABASE PageLevelRestores SET MULTI_USER11 GO
为了使用DBCC WRITEPAGE,问题数据库必须设置如代码所示的单用户模式(Single-User mode)。这里我模拟了有个存储错误,写了一些垃圾到存储的页里(是的,这个在你工作中也会碰到!)。现在当你从表再次读取数据库,SQL Server会返回你一个824 I/O错误,因为对损坏页的校验失败了。
1 -- Retrieve the selected records2 SELECT * FROM Test
3 GO
数据库优化 SQLServer优化 页级别恢复 数据恢复一旦SQL Server在I/O访问期间检测到一个损坏的页,在msdb.dbo.suspect_pages里,损坏的页也会被记录,如下图所示。
1 SELECT * FROM msdb.dbo.suspect_pages
[1] [2]  下一页
本文引用网址:
在下列搜索引擎中搜索“在SQL Server里如何进行页级别的恢复?”的相关信息:
谷歌搜索 百度搜索 360搜索 雅虎搜索 搜狗搜索 搜搜搜索 必应搜索 有道搜索
你可能还喜欢以下文章
  • 1王梦溪未经处理照曝光 王梦溪口...
  • 22013最新门事件 警花王梦溪不雅...
  • 3马蓉裸照原图没有马赛克曝光 马...
  • 4如何做爱真人示范图片 男女ML常...
  • 5马蓉裸照曝光 马蓉露两点不雅照...
  • 12016年最新成年身份证号码大全...
  • 2如何设置三级优德w88官网?二级优德w88官网三...
  • 3DEDE"模板文件不存在,无法解...
  • 4首页flash幻灯片不显示解决方法...
  • 5帝国CMS中网站URL路径栏目目录...
  • 1最流行的性交姿势图解 真人示范...
  • 2什么姿势女的最爽?最刺激的做...
  • 3合肥艳照门事件 合肥艳照门全套...
  • 4王梦溪种子完整版 王梦溪1.08G...
  • 5兰州警花王梦溪裸照全集视频 王...
  • 1linux服务器在运行210天左右宕...
  • 2通过组策略和注册表关闭win7 U...
  • 3FTP基础知识和应用简易教程
  • 4Windows Server 2003系统性能优...
  • 5黑客是如何组织一次DDoS攻击的...
  • 赞助商广告

    图片文章导读