在SQL Server里如何进行页级别的恢复
在今天的文章里我想谈下每个DBA应该知道的一个重要话题:在SQL Server里如何进行页级别还原操作。假设在SQL Server里你有一个损坏的页,你要从近的数据库备份只还原有问题的页,而不是还原整个数据库。
我们来破坏一个页
步我想向你展示下如何建立表(或索引)里有个特定页损坏的情景,这里我们会进行一些魔术,因为开箱即用(out-of-box)的SQL Server本身不会引入任何损坏的页(如果有的话,恭喜你找到了一个BUG)。我们从创建一个新的数据库,往新建的表插入一些记录开始。
USE master
GO
CREATE DATABASE PageLevelRestores
GO
USE PageLevelRestores
GO
-- Create a table where every record fits onto 1 page of 8kb
CREATE TABLE Test
(
Filler CHAR(8000)
)
GO
-- Insert 4 records
INSERT INTO Test VALUES (REPLICATE('A', 8000))
INSERT INTO Test VALUES (REPLICATE('B', 8000))
INSERT INTO Test VALUES (REPLICATE('C', 8000))
INSERT INTO Test VALUES (REPLICATE('D', 8000))
GO
-- Retrieve the selected records
SELECT * FROM Test
GO
相关文章