【SQLSERVER 2000】由于数据移动,未能继续以NOLOCK方式扫描(一)

2014-11-24 13:21:47 · 作者: · 浏览: 0
【SQLSERVER 2000】由于数据移动,未能继续以NOLOCK方式扫描
场景:
数据库为SQLSERVER2000,从生产库脱机备份了整个库的MDF文件和LDF文件,在另外一台机器相同配置环境下恢复,结果部分表查询时报“由于数据移动,未能继续以 NOLOCK 方式扫描”的异常。
分析:
出现该问题的表有一个定时导数据的脚本在后台执行,导数据过程中脱机备份导致以上问题。
解决方案:
1
ALTER DATABASE [databasename] SET SINGLE_USER
2

3
DBCC CHECKDB('[databasename]', REPAIR_ALLOW_DATA_LOSS) -- data will lost
4

5
--or DBCC CHECKDB('[databasename]', REPAIR_REBUILD) -- data won't lost
6

7
ALTER DATABASE [databasename] SET MULTI_USER

执行结果:
01
服务器: 消息 8909,级别 16,状态 1,行 2
02
表错误: 对象 ID -2131190133,索引 ID 1,页 ID (1:1384)。页首结构中的 PageId = (17180:275243556)。
03
服务器: 消息 8909,级别 16,状态 1,行 2
04
表错误: 对象 ID -1842666868,索引 ID 47782,页 ID (1:4408)。页首结构中的 PageId = (63829:1870280938)。
05
服务器: 消息 8909,级别 16,状态 1,行 2
06
表错误: 对象 ID -1840896588,索引 ID 57194,页 ID (1:1373)。页首结构中的 PageId = (32657:1452998133)。
07
服务器: 消息 8909,级别 16,状态 1,行 2
08
表错误: 对象 ID -1710263166,索引 ID 3616,页 ID (1:1379)。页首结构中的 PageId = (59655:117407752)。
09
10
...
11
12
CHECKDB 发现了 0 个分配错误和 1 个一致性错误(在表 '(Object ID -2131190133)' 中,该表的对象 ID 为 -2131190133)。
13
DBCC 语句的修复级别导致回避了此修复。
14
CHECKDB 发现了 0 个分配错误和 1 个一致性错误(在表 '(Object ID -1842666868)' 中,该表的对象 ID 为 -1842666868)。
15
DBCC 语句的修复级别导致回避了此修复。
16
CHECKDB 发现了 0 个分配错误和 1 个一致性错误(在表 '(Object ID -1840896588)' 中,该表的对象 ID 为 -1840896588)。
17
DBCC 语句的修复级别导致回避了此修复。
18
CHECKDB 发现了 0 个分配错误和 1 个一致性错误(在表 '(Object ID -1710263166)' 中,该表的对象 ID 为 -1710263166)。
19
DBCC 语句的修复级别导致回避了此修复。
20
21
...
22
23
服务器: 消息 8905,级别 16,状态 1,行 2
24
扩展盘区 (1:1928)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
25
服务器: 消息 8905,级别 16,状态 1,行 2
26
扩展盘区 (1:1936)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
27
服务器: 消息 8905,级别 16,状态 1,行 2
28
扩展盘区 (1:1944)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
29
服务器: 消息 8905,级别 16,状态 1,行 2
30
扩展盘区 (1:2048)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
31
服务器: 消息 8905,级别 16,状态 1,行 2
32
扩展盘区 (1:2088)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
33
服务器: 消息 8905,级别 16,状态 1,行 2
34
扩展盘区 (1:2112)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
35
服务器: 消息 8905,级别 16,状态 1,行 2
36
扩展盘区 (1:2144)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
37
服务器: 消息 8905,级别 16,状态 1,行 2
38
扩展盘区 (1:2160)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
39
服务器: 消息 8905,级别 16,状态 1,行 2
40
扩展盘区 (1:2176)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
41
服务器: 消息 8905,级别 16,状态 1,行 2
42
扩展盘区 (1:2200)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
43
服务器: 消息 8905,级别 16,状态 1,行 2
44
扩展盘区 (1:2280)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
45
服务器: 消息 8905,级别 16,状态 1,行 2
46
扩展盘区 (1:2296)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
47
服务器: 消息 8905,级别 16,状态 1,行 2
48
49
...
50
51
对象 ID 1077578877: 在文本 ID 2110390272 中发现错误,该文本的所有者是由 RID = (1:303:16) News_ID = 1240 标识的数据记录。
52
服务器: 消息 8929,级别 16,状态 1,行 2
53
对象 ID 1077578877: 在文本 ID 2123431936 中发现错误,该文本的所有者是由 RID = (1:303:20) News_ID = 1244 标识的数据记录。
54
服务器: 消息 8929,级别 16,状态 1,行 2
55
对象 ID 1077578877: 在文本 ID 2123628544 中发现错误,该文本的所有者是由 RID = (1:303:21) News_ID = 1245 标识的数据记录。
56
服务器: 消息 8929,级别 16,状态 1,行 2
57
对象 ID 1077578877: 在文本 ID 2124414976 中发现错误,该文本的所有者是由 RID = (1:303:22) News_ID = 1248 标识的数据记录