top

数据库置疑没有办法做数据库备份使用DBCC WRITEPAGE的方法

数据库置疑没有办法做数据库备份使用DBCC writepage的方法

复制代码
USE master
IF DB_ID('TestDB') IS NOT NULL
    DROP DATABASE TestDB
GO

CREATE DATABASE TestDB 
GO

USE TestDB
GO

CREATE TABLE TestDB.dbo.t1 ( Field1 CHAR(10) )
GO

INSERT  INTO TestDB.dbo.t1
VALUES  ( 'AAAAAAAAAA' )
GO

SELECT  *
FROM    TestDB.dbo.t1

DBCC TRACEON(3604)
DBCC IND(TestDB, t1, 1)

     

DBCC PAGE(TestDB, 1, 79,3)


ALTER DATABASE testdb SET SINGLE_USER 
DBCC writepage(TestDB, 1, 2, 22, 2, 0x0600,1) 
ALTER DATABASE testdb SET MULTI_USER

BACKUP DATABASE [testdb] TO DISK ='c:\testdbfull.bak' 
--消息 3013,级别 16,状态 1,第 1 行
--BACKUP DATABASE 正在异常终止。
--消息 824,级别 24,状态 2,第 1 行
--SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确(应为: 0x0aa170b9,但实际为: 0x0aa170bb)。在文件 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\TestDB.mdf' 中、偏移量为 0x00000000004000 的位置对数据库 ID 11 中的页 (1:2) 执行 读取 期间,发生了该错误。SQL Server 错误日志或系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,请参阅 SQL Server 联机丛书。

BACKUP LOG [testdb] TO DISK ='c:\testdblog.bak' WITH NORECOVERY
消息 926,级别 14,状态 1,第 1 行
无法打开数据库 'TestDB'。恢复操作已将该数据库标记为 SUSPECT。有关详细信息,请参阅 SQL Server 错误日志。
消息 3013,级别 16,状态 1,第 1BACKUP LOG 正在异常终止。


RESTORE DATABASE [testdb] WITH RECOVERY
复制代码

 用CONTINUE_AFTER_ERROR取出日志

复制代码
BACKUP DATABASE [testdb] TO DISK ='c:\testdbfull.bak' WITH CONTINUE_AFTER_ERROR
--消息 3013,级别 16,状态 1,第 1 行
--BACKUP DATABASE 正在异常终止。
--消息 824,级别 24,状态 2,第 1 行
--SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确(应为: 0x0aa170b9,但实际为: 0x0aa170bb)。在文件 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\TestDB.mdf' 中、偏移量为 0x00000000004000 的位置对数据库 ID 11 中的页 (1:2) 执行 读取 期间,发生了该错误。SQL Server 错误日志或系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,请参阅 SQL Server 联机丛书。


--消息 3013,级别 16,状态 1,第 1 行
--BACKUP DATABASE 正在异常终止。
--消息 824,级别 24,状态 2,第 1 行
--SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确(应为: 0x0aa170b9,但实际为: 0x0aa170bb)。在文件 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\TestDB.mdf' 中、偏移量为 0x00000000004000 的位置对数据库 ID 11 中的页 (1:2) 执行 读取 期间,发生了该错误。SQL Server 错误日志或系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,请参阅 SQL Server 联机丛书。

BACKUP LOG [testdb] TO DISK ='c:\testdblog.bak' WITH NORECOVERY,CONTINUE_AFTER_ERROR
--消息 926,级别 14,状态 1,第 1 行
--无法打开数据库 'TestDB'。恢复操作已将该数据库标记为 SUSPECT。有关详细信息,请参阅 SQL Server 错误日志。
--消息 3013,级别 16,状态 1,第 1 行
--BACKUP LOG 正在异常终止。
复制代码

 

posted @   桦仔  阅读(551)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示