AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[dbcc](dba)

Martin Hope
beehive
Asked: 2022-12-08 11:24:16 +0800 CST

DBCC CLONEDATABASE 和用户定义的表类型冲突

  • 9

我正在使用 DBCC CLONEDATABASE 创建没有数据的数据库副本。有许多数据库不会克隆。错误信息是:

无法在具有唯一索引“clst”的对象“sys.sysschobjs”中插入重复键行。重复键值为 (565577053)。

它始终是三个 ID 之一:245575913、565577053、885578193。这三个 ID 始终是克隆失败的数据库中用户定义表类型的 object_id。我的大多数数据库都有用户定义的表类型,但是有些会克隆,有些则不会。在模型数据库中,其中两个 ID 与内部表sys.plan_persist_context_settings&相关sys.plan_persist_query_hints。第三个在 model.sys.objects 中不匹配。

我看到其他博客提到删除模型中的对象。模型数据库没有任何用户代码,我在使用 DAC 登录时无法删除这些内部表。数据库最初是在 SQL Server 2016 Std 中创建的,实例已升级到 2019 Std CU17。数据库也恢复到沙箱服务器 2019 Std CU17。这是克隆失败的地方。在升级之前(生产和沙箱一起升级),只有 2 个数据库无法克隆,我现在有 10 个!

不确定它是否相关,但 sys.table_types 中的表类型是 dbo.TableType,与 type_table_object_id 匹配。在 sys.objects 中,它是 sys.TT_TableType_34C8D9D1,is_ms_shipped 设置为 1。它们被创建为 dbo.TableType。

任何帮助表示赞赏

sql-server dbcc
  • 1 个回答
  • 104 Views
Martin Hope
VitalicJJ
Asked: 2018-12-21 03:37:30 +0800 CST

SSAS 多维数据集上的 DBCC 失败

  • 0

多维数据集上的 DBCC 失败(SQL 版本 2014 SP2,12.0.5000.0)。我的 XMLA 查询: 在此处输入图像描述

错误信息:Executing the query ... 第 7 行第 88 列的 DBCC 元素(名称空间https://schemas.microsoft.com/analysisservices/2016/engine)不能出现在 Envelope/Body/Execute/Command 下。运行完成

我可以找到查询的任何错误。2003 年和 2014 年试过。根据在线书籍,它应该可以正常工作: https ://learn.microsoft.com/en-us/sql/analysis-services/instances/database-consistency- checker-dbcc-for-analysis-services?view=sql-server-2017

ssas dbcc
  • 1 个回答
  • 738 Views
Martin Hope
S3S
Asked: 2018-10-11 16:46:38 +0800 CST

为什么 DBCC CHECKTABLE WITH TABLERESULTS 只在损坏的表上报告错误 8990?

  • 1

我有一个生产 VLDB,我正在使用Paul Randal 的指导将DBCC CHECKDB工作量分散到一周内。我正在记录表的结果DBCC CHECKTABLE WITH TABLERESULTS并记录DBCC CHECKALLOC WITH TABLERESULTS到表中,注意到DBCC CHECKTABLE WITH TABLERESULTS在未损坏的表上每个表只返回一行。这是前几列。

Error   Level   State   MessageText      
2593    10      1       There are 57 rows in 1 pages for object "SmallTable".

但是当我DBCC CHECKTABLE WITH TABLERESULTS在测试数据库中的损坏表上运行时,我用这种方法损坏了它,我得到以下信息:

Error   Level   State   MessageText
8939    16      98      Table error: Object ID 565577053, index ID 1, partition ID 72057594041335808, alloc unit ID 72057594046971904 (type In-row data), page (1:312). Test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. Values are 133129 and -4.
8928    16      1       Object ID 565577053, index ID 1, partition ID 72057594041335808, alloc unit ID 72057594046971904 (type In-row data): Page (1:312) could not be processed.  See other errors for details.
8980    16      1       Table error: Object ID 565577053, index ID 1, partition ID 72057594041335808, alloc unit ID 72057594046971904 (type In-row data). Index node page (0:0), slot 0 refers to child page (1:312) and previous child (0:0), but they were not encountered.
2593    10      1       There are 0 rows in 0 pages for object "tblWhoops".
8990    10      1       CHECKTABLE found 0 allocation errors and 3 consistency errors in table 'tblWhoops' (object ID 565577053).

我很好奇为什么错误 8990没有随未损坏的表一起返回?DBCC CHECALLOC WITH TABLERESULTS并DBCC CHECKDB WITH TABLERESULTS在没有任何分配或一致性错误要报告时返回此行。

DBCC CHECKCATALOG奖金问题,为什么没有WITH TABLERESULT争论?

sql-server dbcc
  • 1 个回答
  • 629 Views
Martin Hope
Vorster
Asked: 2018-05-10 03:39:11 +0800 CST

使用 sp_MSForEachDB 收缩多个数据库文件

  • 3

我们最近从生产数据库中清除了旧数据。该数据库为 3 TB,其中 1.4 TB 为空,但这给开发和 QA 实例带来了问题,因为我们没有利用空间,因为我们有 6 - 8 个数据库和 1.4 TB 的空空间,尤其是在我们在开发中存在空间限制的情况下。我想设置一个工作来使用下面的代码缩小开发数据库

EXEC sp_MSForEachDB ' USE [?]; DBCC SHRINKFILE  (''?'' , 10)' 

EXEC sp_MSForEachDB ' USE [?]; DBCC SHRINKFILE (''?'' , 0, TRUNCATEONLY)' 

我收到以下错误,“无法在 sys.database_files 中找到数据库 'Test' 的文件 'Test'。该文件不存在或已被删除。” 数据库有多个数据文件。我如何改进我的代码以适应多个数据文件。

sql-server dbcc
  • 3 个回答
  • 2953 Views
Martin Hope
Simon Jones
Asked: 2018-01-30 04:01:53 +0800 CST

是否有运行 DBCC CHECKIDENT 的特定 SQL Server 2008 R2 权限?

  • 0

MS Docs(在线书籍)声明调用者必须拥有包含的模式或者是固定数据库角色的成员。(系统管理员、db_owner、db_ddladmin)。

在 SQL Server 2008 R2 中是否有特定的权限或一组权限可以被授予以允许此操作?

我有一个案例,我需要授予权限但权限最少,并且希望避免创建允许他们需要执行此操作的特定表集的存储过程(使用 execute as)。

他们还需要 TRUNCATE,但是 ALTER 权限涵盖了这一点。

dbcc permissions
  • 1 个回答
  • 1287 Views
Martin Hope
Evan Carroll
Asked: 2017-12-19 16:13:23 +0800 CST

sp_blitz 显示“2 周前的最后一个良好 DBCC CHECKDB”

  • -1

当我跑步时sp_blitz,我看到

-[ RECORD 5 ]-------------------------
Priority          | 1
FindingsGroup     | Reliability
Finding           | Last good DBCC CHECKDB over 2 weeks old
DatabaseName      | model
URL               | https://BrentOzar.com/go/checkdb
Details           | Last successful CHECKDB:  never.
QueryPlan         | NULL
QueryPlanFiltered | NULL
CheckID           | 68
-[ RECORD 6 ]-------------------------
Priority          | 1
FindingsGroup     | Reliability
Finding           | Last good DBCC CHECKDB over 2 weeks old
DatabaseName      | msdb
URL               | https://BrentOzar.com/go/checkdb
Details           | Last successful CHECKDB:  never.
QueryPlan         | NULL
QueryPlanFiltered | NULL
CheckID           | 68

然而,我只是跑了DBCC CHECKDB。

sql-server dbcc
  • 1 个回答
  • 374 Views
Martin Hope
Just a learner
Asked: 2016-11-17 03:50:20 +0800 CST

DBCC PAGE 从缓冲池或直接从文件系统读取页面?

  • 1

我们知道 SQL Server 的所有操作总是从磁盘读取页面到内存。因此,内存中的页面可能与磁盘中的页面不同。我想知道命令 DBCC PAGE 正在读取内存或磁盘上的页面。谢谢。

sql-server dbcc
  • 1 个回答
  • 175 Views
Martin Hope
Scott Hodgin - Retired
Asked: 2016-11-05 05:05:21 +0800 CST

有趣的 DBCC CHECKDB 场景

  • 4

我今天早上醒来发现我的一个数据库损坏了。我有一份工作,每天为服务器上的所有数据库运行 DBCC CHECKDB。输出表明只有一张表损坏(幸运的是)。

Msg 8935, Level 16, State 1, Line 1
Table error: Object ID 1946163866, index ID 11, partition ID 72057601280442368, alloc unit ID 72057601393164288 (type In-row data). The previous link (5:216001) on page (5:216002) does not match the previous page (5:2603841) that the parent (5:3902159), slot 23 expects for this page.
Msg 8936, Level 16, State 1, Line 1
Table error: Object ID 1946163866, index ID 11, partition ID 72057601280442368, alloc unit ID 72057601393164288 (type In-row data). B-tree chain linkage mismatch. (5:628894)->next = (5:628895), but (5:628895)->Prev = (5:2602254).
Msg 8935, Level 16, State 1, Line 1
Table error: Object ID 1946163866, index ID 11, partition ID 72057601280442368, alloc unit ID 72057601393164288 (type In-row data). The previous link (5:1165706) on page (5:1165707) does not match the previous page (5:2602253) that the parent (5:1529), slot 33 expects for this page.
Msg 8980, Level 16, State 1, Line 1
Table error: Object ID 1946163866, index ID 11, partition ID 72057601280442368, alloc unit ID 72057601393164288 (type In-row data). Index node page (5:2239068), slot 33 refers to child page (5:2602254) and previous child (5:628894), but they were not encountered.
Msg 8980, Level 16, State 1, Line 1
Table error: Object ID 1946163866, index ID 11, partition ID 72057601280442368, alloc unit ID 72057601393164288 (type In-row data). Index node page (5:3902159), slot 22 refers to child page (5:2603841) and previous child (5:216001), but they were not encountered.
Msg 8981, Level 16, State 1, Line 1
Table error: Object ID 1946163866, index ID 10, partition ID 72057601280507904, alloc unit ID 72057601393229824 (type In-row data). The next pointer of (5:1212172) refers to page (5:3489726). Neither (5:3489726) nor its parent were encountered. Possible bad chain linkage.
Msg 8980, Level 16, State 1, Line 1
Table error: Object ID 1946163866, index ID 11, partition ID 72057601280442368, alloc unit ID 72057601393164288 (type In-row data). Index node page (5:1529), slot 32 refers to child page (5:2602253) and previous child (5:1165706), but they were not encountered.
Msg 8978, Level 16, State 1, Line 1
Table error: Object ID 1946163866, index ID 10, partition ID 72057601280507904, alloc unit ID 72057601393229824 (type In-row data). Page (5:3489727) is missing a reference from previous page (5:1212172). Possible chain linkage problem.
Msg 2533, Level 16, State 1, Line 1
Table error: page (5:2602253) allocated to object ID 1946163866, index ID 11, partition ID 72057601280442368, alloc unit ID 72057601393164288 (type In-row data) was not seen. The page may be invalid or may have an incorrect alloc unit ID in its header.
Msg 2533, Level 16, State 1, Line 1
Table error: page (5:2602254) allocated to object ID 1946163866, index ID 11, partition ID 72057601280442368, alloc unit ID 72057601393164288 (type In-row data) was not seen. The page may be invalid or may have an incorrect alloc unit ID in its header.
Msg 2533, Level 16, State 1, Line 1
Table error: page (5:2602255) allocated to object ID 1946163866, index ID 11, partition ID 72057601280442368, alloc unit ID 72057601393164288 (type In-row data) was not seen. The page may be invalid or may have an incorrect alloc unit ID in its header.
Msg 2533, Level 16, State 1, Line 1
Table error: page (5:2603840) allocated to object ID 1946163866, index ID 11, partition ID 72057601280442368, alloc unit ID 72057601393164288 (type In-row data) was not seen. The page may be invalid or may have an incorrect alloc unit ID in its header.
Msg 2533, Level 16, State 1, Line 1
Table error: page (5:2603841) allocated to object ID 1946163866, index ID 11, partition ID 72057601280442368, alloc unit ID 72057601393164288 (type In-row data) was not seen. The page may be invalid or may have an incorrect alloc unit ID in its header.
Msg 2533, Level 16, State 1, Line 1
Table error: page (5:2603842) allocated to object ID 1946163866, index ID 11, partition ID 72057601280442368, alloc unit ID 72057601393164288 (type In-row data) was not seen. The page may be invalid or may have an incorrect alloc unit ID in its header.
Msg 8935, Level 16, State 1, Line 1
Table error: Object ID 1946163866, index ID 11, partition ID 72057601280442368, alloc unit ID 72057601393164288 (type In-row data). The previous link (5:2602255) on page (5:15918) does not match the previous page (5:15917) that the parent (5:3904979), slot 8 expects for this page.
Msg 8936, Level 16, State 1, Line 1
Table error: Object ID 1946163866, index ID 11, partition ID 72057601280442368, alloc unit ID 72057601393164288 (type In-row data). B-tree chain linkage mismatch. (5:15917)->next = (5:15918), but (5:15918)->Prev = (5:2602255).
CHECKDB found 0 allocation errors and 16 consistency errors in table 'AperioCompare.PolicyAmendmentCompare' (object ID 1946163866).
CHECKDB found 0 allocation errors and 16 consistency errors in database 'Aperio'.
repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (Aperio).

我一直在寻找最后一行,这样我就可以弄清楚所涉及的最低恢复水平。在这种情况下,它表示“repair_allow_data_loss 是 DBCC CHECKDB 发现的错误的最低修复级别”。

我查看了对象 ID 并验证了 OBJECT_NAME(1946163866) 确实指向了我的 ONE 表。错误报告显示索引 ID 10 和 11 存在问题。然后我从 sys.indexes 中选择 object_id=1946163866 并找到索引 10 和 11 的索引行——这两个索引都是非聚集的。我删除并重新创建了两个非聚集索引并重新运行我的 DBCC CHECKDB - 没有报告任何错误。

我对 DBCC CHECKDB 报告的最低恢复级别 repair_allow_data_loss 感到困惑。这不应该重建吗?

我在这里遗漏了一些明显的东西吗?

dbcc sql-server-2016
  • 2 个回答
  • 684 Views
Martin Hope
joeprince
Asked: 2016-09-15 02:34:35 +0800 CST

如何启用多个跟踪标志

  • 2

我想在 SQL SERVER(启动参数)上启用跟踪标志 4199、8024、9024、1236 和 1117。

我去 SQL Server 配置管理器 -> SQL Server ("instance_name"),然后点击属性 -> 启动参数选项卡 -> 我分别添加了 -T4199 -T8024 -T9024 -T1236 -T1117。

这是一个 SQL Server 2016 实例。

在此之后重新启动

使用 dbcc tracestatus(-1)

在此处输入图像描述

sql-server dbcc
  • 1 个回答
  • 2419 Views
Martin Hope
agdiaz
Asked: 2015-12-18 07:22:52 +0800 CST

“DBCC CHECKDB (databasename, repair)”是哪种修复级别?

  • 5

MSDN 关于命令“DBCC CHECKDB”的文章在语法部分解释了执行数据库修复的三种方法:

- REPAIR_ALLOW_DATA_LOSS
- REPAIR_FAST
- REPAIR_REBUILD

但是我在寻找如何修复可疑数据库(我在这种模式下执行这些步骤)时发现了以下语句,我无法理解它是三种模式中的哪一种:

DBCC CHECKDB(数据库名称,修复)

我执行了声明,它工作正常。我很困惑,因为在没有用“_allow_data_loss”、“_fast”或“_rebuild”结束这个词的情况下,没有单独提到“修复”参数。

如果我尝试在处于紧急状态的数据库上运行“DBCC CHECKDB ( databaseName , repair_rebuild )”,我会收到一条错误消息,指出当数据库处于紧急状态时我无法执行该级别的修复。所以,我放弃了单独的“修复”是“repair_rebuild”。

该语句是我发现的脚本中的第三行:

  1. ALTER DATABASE 数据库名称 SET EMERGENCY;
  2. ALTER DATABASE 数据库名称 SET SINGLE_USER;
  3. DBCC CHECKDB(数据库名称,修复)ALL_ERRORMSGS
  4. ALTER DATABASE 数据库名称 SET MULTI_USER;
  5. ALTER DATABASE 数据库名 SET ONLINE;

如果我读取第三条语句执行的输出,我会看到有关该过程的信息,但与修复中使用的级别无关。

提前致谢,

sql-server dbcc
  • 1 个回答
  • 926 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve