【SQLSERVER 2000】由于数据移动,未能继续以 NOLOCK 方式扫描
2019独角兽企业重金招聘Python工程师标准>>>
场景:
数据库为SQLSERVER2000,从生产库脱机备份了整个库的MDF文件和LDF文件,在另外一台机器相同配置环境下恢复,结果部分表查询时报“由于数据移动,未能继续以 NOLOCK 方式扫描”的异常。
分析:
出现该问题的表有一个定时导数据的脚本在后台执行,导数据过程中脱机备份导致以上问题。
解决方案:
ALTER DATABASE [databasename] SET SINGLE_USERDBCC CHECKDB('[databasename]', REPAIR_ALLOW_DATA_LOSS) -- data will lost--or DBCC CHECKDB('[databasename]', REPAIR_REBUILD) -- data won't lostALTER DATABASE [databasename] SET MULTI_USER
执行结果:
服务器: 消息 8909,级别 16,状态 1,行 2
表错误: 对象 ID -2131190133,索引 ID 1,页 ID (1:1384)。页首结构中的 PageId = (17180:275243556)。
服务器: 消息 8909,级别 16,状态 1,行 2
表错误: 对象 ID -1842666868,索引 ID 47782,页 ID (1:4408)。页首结构中的 PageId = (63829:1870280938)。
服务器: 消息 8909,级别 16,状态 1,行 2
表错误: 对象 ID -1840896588,索引 ID 57194,页 ID (1:1373)。页首结构中的 PageId = (32657:1452998133)。
服务器: 消息 8909,级别 16,状态 1,行 2
表错误: 对象 ID -1710263166,索引 ID 3616,页 ID (1:1379)。页首结构中的 PageId = (59655:117407752)。...CHECKDB 发现了 0 个分配错误和 1 个一致性错误(在表 '(Object ID -2131190133)' 中,该表的对象 ID 为 -2131190133)。DBCC 语句的修复级别导致回避了此修复。
CHECKDB 发现了 0 个分配错误和 1 个一致性错误(在表 '(Object ID -1842666868)' 中,该表的对象 ID 为 -1842666868)。DBCC 语句的修复级别导致回避了此修复。
CHECKDB 发现了 0 个分配错误和 1 个一致性错误(在表 '(Object ID -1840896588)' 中,该表的对象 ID 为 -1840896588)。DBCC 语句的修复级别导致回避了此修复。
CHECKDB 发现了 0 个分配错误和 1 个一致性错误(在表 '(Object ID -1710263166)' 中,该表的对象 ID 为 -1710263166)。DBCC 语句的修复级别导致回避了此修复。...服务器: 消息 8905,级别 16,状态 1,行 2
扩展盘区 (1:1928)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
服务器: 消息 8905,级别 16,状态 1,行 2
扩展盘区 (1:1936)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
服务器: 消息 8905,级别 16,状态 1,行 2
扩展盘区 (1:1944)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
服务器: 消息 8905,级别 16,状态 1,行 2
扩展盘区 (1:2048)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
服务器: 消息 8905,级别 16,状态 1,行 2
扩展盘区 (1:2088)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
服务器: 消息 8905,级别 16,状态 1,行 2
扩展盘区 (1:2112)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
服务器: 消息 8905,级别 16,状态 1,行 2
扩展盘区 (1:2144)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
服务器: 消息 8905,级别 16,状态 1,行 2
扩展盘区 (1:2160)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
服务器: 消息 8905,级别 16,状态 1,行 2
扩展盘区 (1:2176)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
服务器: 消息 8905,级别 16,状态 1,行 2
扩展盘区 (1:2200)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
服务器: 消息 8905,级别 16,状态 1,行 2
扩展盘区 (1:2280)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
服务器: 消息 8905,级别 16,状态 1,行 2
扩展盘区 (1:2296)(属于数据库 ID 9)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
服务器: 消息 8905,级别 16,状态 1,行 2...对象 ID 1077578877: 在文本 ID 2110390272 中发现错误,该文本的所有者是由 RID = (1:303:16) News_ID = 1240 标识的数据记录。
服务器: 消息 8929,级别 16,状态 1,行 2
对象 ID 1077578877: 在文本 ID 2123431936 中发现错误,该文本的所有者是由 RID = (1:303:20) News_ID = 1244 标识的数据记录。
服务器: 消息 8929,级别 16,状态 1,行 2
对象 ID 1077578877: 在文本 ID 2123628544 中发现错误,该文本的所有者是由 RID = (1:303:21) News_ID = 1245 标识的数据记录。
服务器: 消息 8929,级别 16,状态 1,行 2
对象 ID 1077578877: 在文本 ID 2124414976 中发现错误,该文本的所有者是由 RID = (1:303:22) News_ID = 1248 标识的数据记录。...
对象 'xxx' 有 13124 行,这些行位于 605 页中。
CHECKDB 发现了 0 个分配错误和 54 个一致性错误(在表 'xxx' 中,该表的对象 ID 为 2133582639)。
CHECKDB 发现了 240 个分配错误和 736 个一致性错误(在数据库 'databasename' 中)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
扩展:
- 如果我们知道某个表有问题,可直接使用CHECKTABLE缩小检查范围。
- 通常CHECKDB命令会随着记录数的多少消耗很长时间,这里我们可以通过一些技巧提高性能,见下表:
DBCC CHECKDB |
40-50 seconds |
DBCC CHECKDB with TABLOCK |
5 seconds |
DBCC CHECKDB on snapshot database |
5 seconds |
DBCC CHECKTABLE Batch |
8-12 minutes |
DBCC CHECKTABLE Batch with TABLOCK |
18 seconds |
DBCC CHECKTABLE Batch on Snapshot database |
20 seconds |
转载于:https://my.oschina.net/u/699015/blog/150350
【SQLSERVER 2000】由于数据移动,未能继续以 NOLOCK 方式扫描相关推荐
- 修复发生“由于数据移动,未能继续以 NOLOCK 方式扫描”错误的数据库
最近在系统运行中发现了一个错误,错误信息如下: 错误信息:查询A201412C20568单证信息错误 ---> System.Data.OleDb.OleDbException: 由于数据移动, ...
- 图解sqlserver 2000 还原数据库的基本操作
图解sqlserver 2000 还原数据库的基本操作,是我在测试单位服务器上的数据库,恢复数据的完整性所进行的简单测试.由于时间紧张,我不直接在博文里写出来了,有好多图不大方便插入,所以有爱好这个知 ...
- java 连接 sqlserver 2000
20190327 09:30最新更新: 同事竟然发现有Maven官方源的3.0版本也能运行,所以跳过 1.2 步骤,直接用Maven引入依赖就行 <dependency><group ...
- Sqlserver 2000 迷你、便携企业管理器(10M),支持Dts编辑
基于 Sqlserver 2000 企业版 最新的 V8.0.2282 制作 包含常用的客户端工具:查询分析器.事件探查器.bcp工具: 支持企业管理器的各种向导 支持Dts包制作 支持部署在非系统默 ...
- springboot+mybatis+sqlserver导出数据库数据并实现下载到excel
springboot+mybatis+sqlserver导出数据库数据并实现下载到excel 1.准备工作 1.1 下载一个springboot框架demo 1.2 配置maven 1.3 引入需要的 ...
- 在SqlServer 2008中将数据导成脚本
当我们想将数据库搬到另一个环境中运行时,如果数据库的版本一样我们可以直接选择附加的方式,而如果实验环境中的数据库版本比当前数据库低,就无法附加了.这时要向将数据全部导过去就需要使用脚本的方式,像Sql ...
- 我安装Microsoft SQLServer 2000时出现问题
我安装Microsoft SQLServer 2000时出现问题 悬赏分:0 - 提问时间2006-8-31 19:54 问题为何被关闭 安装时,弹出一个窗口,提示"a previous p ...
- SQLServer 批量插入数据的两种方法
SQLServer 批量插入数据的两种方法- 发布:dxy 字体:[增加 减小] 类型:转载 在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用In ...
- SQLServer 2000 126错误的解决方法
问题描述:今天打开一台服务器准备恢复SQLServer 2000的数据库,发现登录企业管理器时总是报:错误126:常规错误,然后在SQLServer组下面什么内容也没有,无法进行任何操作: 解决方法: ...
最新文章
- mysql isreg_`Innodb` MySQL中如何优雅的删除大表跑路
- Servlet初始化与异步支持
- CentOS7安装JDK1.8简单体验(java开发必备)
- 解决:Unexpected token (START_OBJECT), expected START_ARRAY: need JSON Array to contain As.WRAPPER_ARRA
- 详解数据科学与数理统计的基本概念
- 942.ava.com_如何使用Ava.js测试Node.js应用程序
- ES6学习笔记04:Set与Map
- 关于读取配置文件的一个小笔记
- Python:运营自媒体,如何修改图片的MD5值
- CSS 函数摘抄笔记1207
- 中国象棋人工智能实现
- 周六研易01:深入研究甲木选用法
- 昆仑ONLINE外挂脚本--基于Seraph
- centos8安装失败 Linux dd,在RHEL 8/CentOS 8上安装Telegraf的方法
- 这款免费开源的数据库工具,支持所有主流数据库!
- AD9851调试过程----相位设置、频率计算、控制字设置
- 有了LIGO,引力波不仅可以被探测,还可以被发射!
- other, the other, others, the others与another的用法区别
- 数据湖之Hudi基础:核心原理
- 电驴大全为什么下载不了的原因,以及其他下载资源的网站
热门文章
- Anyka云平台调用api
- [附源码]JAVA+ssm计算机毕业设计餐饮管理系统(程序+Lw)
- java中base64编码加密和android中base64编码加密不一样?base64编码解析错误?
- 离职、辞职、辞退、劳动纠纷应该怎么办?(附劳动法)
- html母亲节主题网页源码jd
- 检查计算机无法更新,Win7提示Windows Update当前无法检查更新,因为未运行服务解决方法...
- 一个 将一个无效参数传递给了将无效参数视为严重错误的函数 及写入位置时发生访问冲突的问题的解决
- Spark核心开发者:性能超Hadoop百倍,算法实现仅有其1/10或1/100
- 企业邮箱登录入口,企业邮箱在哪登录?邮箱ssl安全吗?
- 工程测量测绘乙级按照标准办理