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
    • 最新
    • 标签
主页 / server / 问题

问题[sql-server-2016](server)

Martin Hope
Vjz
Asked: 2021-12-23 21:09:00 +0800 CST

Reporting Services 2016:无法编辑或上传 RDL(引发异常和内存转储)

  • 0

我有一个 SQL Reporting Services 2016 (13.0.5103.6) 标准本机实例,它不允许我使用 Report Builder 15.0.19611.0 编辑报告 (RDL) 或通过报告门户上传它们,它会引发异常并创建内存转储。我仍然可以在实例中执行/生成报告。

在报表生成器中打开报表时,出现以下客户端错误:

An unexpected error occurred in Report Processing. --->
Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: An unexpected error occurred in Report Processing. --->
System.Exception: For more information about this error navigate to the report server on the local server machine, or enable remote errors

在服务器 Reporting Services 日志上,相应的错误日志条目是:

processing!ReportServer_0-1!1ac8!12/23/2021-14:11:29:: e ERROR: Throwing Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: , Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: An unexpected error occurred in Report Processing. ---> System.ComponentModel.Win32Exception: The system cannot find the path specified
   at Microsoft.Win32.NativeMethods.CreateDirectory(String path, SafeLocalMemHandle acl)
   at System.CodeDom.Compiler.TempFileCollection.CreateTempDirectoryWithAce(String directory, String identity)
   at System.CodeDom.Compiler.TempFileCollection.GetTempFileName(String tempDir)
   at System.CodeDom.Compiler.TempFileCollection.EnsureTempNameCreated()
   at System.CodeDom.Compiler.TempFileCollection.AddExtension(String fileExtension, Boolean keepFile)
   at System.CodeDom.Compiler.CodeCompiler.FromDomBatch(CompilerParameters options, CodeCompileUnit[] ea)
   at System.CodeDom.Compiler.CodeCompiler.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromDomBatch(CompilerParameters options, CodeCompileUnit[] ea)
   at Microsoft.ReportingServices.RdlExpressions.VBExpressionCodeProvider.CompileAssemblyFromDomWithRetry(CompilerParameters options, CodeCompileUnit compilationUnit)
   at Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.InternalCompile(AppDomain compilationTempAppDomain, Boolean refusePermissions)
   at Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.<>c__DisplayClass2.<Compile>b__0()
   at Microsoft.ReportingServices.Diagnostics.RevertImpersonationContext.<>c__DisplayClass1.<Run>b__0(Object state)
   at System.Security.SecurityContext.runTryCode(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   at System.Security.SecurityContext.Run(SecurityContext securityContext, ContextCallback callback, Object state)
   at Microsoft.ReportingServices.Diagnostics.RevertImpersonationContext.Run(ContextBody callback)
   at Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.Compile(IExpressionHostAssemblyHolder expressionHostAssemblyHolder, AppDomain compilationTempAppDomain, Boolean refusePermissions, PublishingVersioning versioning)
   at Microsoft.ReportingServices.ReportPublishing.ReportPublishing.Phase3(ParameterInfoCollection& parameters, Dictionary`2& groupingExprCountAtScope)
   at Microsoft.ReportingServices.ReportPublishing.ReportPublishing.InternalCreateIntermediateFormat(Stream definitionStream, String& description, String& language, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash)
   at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CompileOdpReport(PublishingContext reportPublishingContext, PublishingErrorContext errorContext, String& reportDescription, String& report
library!ReportServer_0-1!1ac8!12/23/2021-14:11:29:: i INFO: Skipped creating a dump file for the error ReportProcessingException, because a dump with the identical stack trace (with signature 2668486527) was already created.

假设“svcssrs”是运行 SSRS 实例的 ADUser,对 ReportingServicesService.exe 使用 Procmon(Sysinternals),我确实注意到一个 CreateFile 操作失败,路径未找到,例如C:\Users\svcssrs\AppData\Local\Temp\abcdefgh

C:\Users\svcssrs\AppData\Local\Temp\存在并且在“svcssrs”用户的完全控制之下。

我正在使用的 RDL 是一个非常标准的 RDL 文件,其中包含 Tablix、一些使用共享数据源的 MSSQL 数据集、一些基本的 SSRS 表达式、嵌入的图像(未链接)并且没有嵌入的 VB 代码或链接的程序集。

我已经从备份中恢复了 SNK 加密密钥,之后我也更改了它,但行为没有改变。

我该如何解决这个问题?

ssrs sql-server-2016
  • 2 个回答
  • 407 Views
Martin Hope
Daniel
Asked: 2021-10-22 05:36:28 +0800 CST

日志传送和目标数据库文件名

  • 0

我有一个生产和灾难恢复 ('DR') 服务器,并且几个月来一直在两个服务器之间的单个数据库 ('DB1') 上使用日志传送而没有问题。

最近我不得不复制应用程序的一个实例,这需要一个复制的数据库。重复的数据库从 DB1 的备份中恢复并重命名(“DB2”)。在 DB2 上设置日志传送一直是个问题。由于某种原因,DR 服务器上的逻辑文件和数据文件与数据库 (DB2) 的名称不同。

有没有办法将“目标”数据库的逻辑和数据文件名更改为与 SSMS 中反映的数据库相同的名称?

sql-server sql-server-2016 log-shipping
  • 2 个回答
  • 54 Views
Martin Hope
J.D.
Asked: 2021-09-07 18:20:01 +0800 CST

如何调试我的数据库备份维护计划突然运行极其缓慢的原因?

  • 2

(最初发布在 DBA.StackExchange.com 但已关闭,希望在这里更相关。)

亚历山大和可怕的,可怕的,不好的,非常糟糕的......备份。

设置:

我有一个在VMWare的虚拟机上运行的本地SQL Server 2016 标准版实例。

@@版本:

Microsoft SQL Server 2016 (SP2-CU17) (KB5001092) - 13.0.5888.11 (X64) 2021 年 3 月 19 日 19:41:38 版权所有 (c) Windows Server 2016 Datacenter 10.0(内部版本 14393)上的 Microsoft Corporation 标准版(64 位): )(管理程序)

服务器本身目前分配有8 个虚拟处理器,具有32 GB 内存,所有磁盘都是 NVMes ,其I/O 速度约为1 GB/秒。数据库本身位于 G: 驱动器上,备份单独存储在 P: 驱动器上。所有数据库的总大小约为 500 GB(在压缩到备份文件本身之前)。

维护计划每晚运行一次(大约晚上 10:30),以对服务器上的每个数据库进行完整备份。服务器上没有运行其他任何异常,特别是在那个时候也没有运行其他任何东西。关闭服务器的电源计划设置为“平衡”(并且“之后关闭硬盘”设置为 0 分钟,即永不关闭)。

发生了什么:

在过去一年左右的时间里,维护计划作业的总运行时间总共需要大约 15分钟才能完成。自上周以来,它已飙升至大约 40 倍的时间,大约需要 15小时才能完成。

在维护计划放缓的同一天,我唯一知道的更改是在维护计划运行之前在计算机上安装了以下 Windows 更新:

Windows 更新

  1. KB890830
  2. KB5004752
  3. KB5005043
  4. VMWare - SCSIAdapter - 1.3.17.0
  5. VMWare - 显示 - 8.17.2.14

我们还在另一个 VM 上拥有另一个类似配置的 SQL Server 实例,该实例经历了相同的 Windows 更新,随后也经历了较慢的备份。考虑到 Windows 更新是直接原因,我们将它们完全回滚,并且备份维护计划仍然运行得非常缓慢。奇怪的是,为给定数据库恢复备份的速度非常快,并且几乎使用了 NVMes 上 1 GB/秒的全部 I/O。

我尝试过的事情:

在使用 Adam Mechanic 的 sp_whoisactive 时,我发现备份过程的最后等待类型始终表明存在磁盘性能问题。我总是看到BACKUPBUFFER并BACKUPIO等待类型,除了ASYNC_IO_COMPLETION:

sp_whoisactive

查看服务器本身的资源监视器时,在备份期间,磁盘 I/O 部分显示正在使用的总 I/O 仅为大约 14 MB/秒(自此问题发生以来我见过的最多的是30 MB/秒):

资源监视器

在偶然发现这篇关于使用 DiskSpd 的有用Brent Ozar 文章后,我尝试在类似的参数下自己运行它(仅将线程数降低到 8,因为我在服务器上有 8 个虚拟处理器并将写入设置为 50%)。这是确切的命令diskspd.exe -b2M -d60 -o32 -h -L -t8 -W -w50 "C:\Users\...\Desktop\Microsoft DiskSpd\Test\LargeFile.txt"。我使用了一个手动生成的文本文件,它不到 1 GB 大。我相信它测量的 I/O 看起来还不错,但是磁盘延迟显示了一些可笑的数字:

DiskSpd 结果 1

DiskSpd 结果 2

DiskSpd 结果看起来简直令人难以置信。在进一步阅读之后,我偶然发现了 Paul Randall 的一个查询,该查询返回每个数据库的磁盘延迟指标。结果如下:

Paul Randal - 磁盘延迟指标

最差的写入延迟为 63 毫秒,最差的读取延迟为 6 毫秒,因此这似乎与 DiskSpd 有很大差异,而且似乎还不足以成为我问题的根本原因。进一步交叉检查,根据这篇 Microsoft 文章,我在服务器本身上运行了几个 PerfMon 计数器,结果如下:

性能测试结果

这里没什么特别的,我测量的所有计数器的最大值是 0.007(我相信是毫秒?)。最后,我让我的基础架构团队检查了 VMWare 在备份作业期间记录的磁盘延迟指标,结果如下:

VMWare 磁盘延迟和 I/O 日志

似乎在最坏的情况下,午夜时分出现大约 200 毫秒的延迟峰值,最高 I/O 为 600 KB/秒(我不太明白,因为资源监视器显示备份至少正在使用大约 14 MB/秒的 I/O)。

我尝试过的其他事情:

我刚刚尝试恢复一个较大的数据库(大约 250 GB),总共只需要大约 8 分钟即可恢复。然后我尝试DBCC CHECKDB在它上面运行,总共运行了 16 分钟(不确定这是否正常),但资源监视器显示了类似的 I/O 问题(它使用的最多 I/O 是 100 MB/s),没有其他运行:

DBCC CHECKDB 的资源监视器

这是我第一次运行时的 sp_whoisactive 结果DBCC CHECKDB,然后在完成 5% 后,请注意,即使已经完成 5%,估计剩余时间也增加了大约 5 分钟。

开始: sp_whoisactive DBCC CHECKDB 启动

5% 完成: sp_whoisactive DBCC CHECKDB 5% 完成

我猜这是正常的,它只是一个估计值,对于 250 GB 的数据库来说,16 分钟似乎并不算太​​糟糕(虽然我不确定这是否正常),但 I/O 再次达到最大值大约 10% 的驱动器功能,在服务器或 SQL 实例上没有运行其他任何东西。

这些是 的结果,DBCC CHECKDB没有报告错误。

我也遇到了奇怪的SHRINK命令缓慢问题。我刚刚尝试SHRINK了释放 5% 空间(大约 14 GB)的数据库。它只用了大约 1 分钟就完成了 90% 的SHRINK:

快速收缩至 90%

大约 5 分钟后,它仍然停留在相同的完成百分比,我的事务日志备份(通常在 1-2 秒内完成)已经争用了大约 30 秒:

收缩卡在 90%

15 分钟后SHRINK刚刚完成,而事务日志备份现在仍在争用大约 6 分钟,仅完成 50%。我相信他们在完成后立即SHRINK完成。资源监视器一直显示 I/O 仍然很糟糕:

收缩完成

收缩的资源监视器

SHRINK然后,当它完成时,我收到了命令错误:

收缩错误

我SHRINK再次重试,结果与上述完全相同。

然后我尝试手动将 T-SQL 备份脚本编写到 P: 驱动器上的文件中,并且运行速度很慢,就像维护计划备份作业一样:

T-SQL 手动备份

大约 3 分钟后我最终取消了它,它立即回滚。

概括:

巧合的是,在安装 Windows 更新后,备份维护计划作业每晚都会慢 40 倍(从 15 分钟到 15 小时)。回滚这些 Windows 更新并不能解决问题。SQL Server 等待类型、资源监视器和 Microsoft DiskSpd 表明存在磁盘问题(特别是 I/O),但来自 Paul Randall 查询、PerfMon 和 VMWare 日志的所有其他测量结果均未报告磁盘的任何问题。恢复特定数据库的备份很快,并且几乎使用了完整的 1 GB/秒 I/O。我在挠头……

sql-server performance database-performance sql-server-2016 database-backup
  • 1 个回答
  • 460 Views
Martin Hope
A X
Asked: 2021-02-21 12:40:52 +0800 CST

SQL Server Always On 可用性组零停机更新过程

  • 3

这里我有一个 2 节点 SQL Server 2016 AlwaysOn 可用性组集群,有 1 个主节点和 1 个辅助节点。

问题是 - 在群集中的服务器上安装 Microsoft 更新的最佳方式是什么?我一直在努力为此找到好的、明确的建议。

这是我目前的想法:

  1. 在辅助节点上使用 Microsoft Update 安装更新
  2. 重新启动辅助以完成更新
  3. 执行从主节点到辅助节点的手动故障转移
  4. 在新辅助(前主)上使用 Microsoft Update 安装更新
  5. 重新启动新的辅助节点(以前的主节点)
  6. 执行从新主节点到辅助节点的手动故障转移,使原始主节点再次成为主节点

我的理解是,这将:

  • 绝对不会导致应用程序停机
  • 导致没有同步错误
  • 不会造成数据损坏
  • 一半节点更新而另一半节点未更新时集群不会产生错误

这个对吗?有一个更好的方法吗?

在此先感谢 - 非常感谢任何帮助。

sql-server high-availability alwayson sql-server-2016
  • 1 个回答
  • 628 Views
Martin Hope
gvdm
Asked: 2020-10-08 23:30:21 +0800 CST

每天数据库都处于恢复挂起状态

  • 0

我有一个托管 SQL Server 2016 命名实例的 Azure 虚拟机。在这种情况下,我有几个数据库。现在,我们每天晚上 11.59 关闭虚拟机并在早上 8.00 重新启动它。问题是每天我都会发现一些处于“恢复待定”状态的数据库。这很烦人,因为我必须执行 SQL 脚本才能将 DB 置于正常状态。

你有什么线索为什么每天都会在某些(但总是相同的)数据库上发生这种情况?

谢谢

database-administration sql-server-2016
  • 1 个回答
  • 155 Views
Martin Hope
htm11h
Asked: 2016-11-05 12:07:53 +0800 CST

在 Server 2012 R2 上安装 SQL SERVER EXPR 2012/2016 时出现问题

  • 1

我在 Server 2012 R2 上运行 SQL SERVER Express 2008 已经有一段时间了。我最近开始研究迁移到 SQL SERVER EPXRESS 2016 的迁移过程。因为原始数据库是从 Express 2005 迁移的,所以兼容性级别是 90,我需要在 110 停止才能迁移到 130。110 提供了新的对象类型和查询IIF 条款等进展。数据迁移工具确定了这些必要的更新。

在升级 SQL 的过程中,我现在收到以下错误:

TITLE: SQL Server Setup failure.
------------------------------

SQL Server Setup has encountered the following error:

Version string portion was too short or too long..

For help, click: http://go.microsoft.com/fwlinkLinkID=20476&ProdName=Microsoft%20SQL%20Server&EvtSrc=setup.rll&EvtID=50000&EvtType=0x6343E456%25400x294A9FD9

该链接无用,因为 MS 重新发布了它。

在 SQL SERVER 安装中心窗口顶部选择“新 SQL Server 独立安装或向现有安装添加功能”后出现错误。就像测试一样,我也尝试了 SQL 2016 Express。同样的错误。

我发现了一些关于更改注册表的帖子,删除以下键中引用的旧版本的 .Net:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform

这没有用。

我尝试了许多 .Net Framework 测试工具来验证每个版本。未发现错误,但这些工具似乎尚未针对 Server 2012 R2 进行更新。

目前我的服务器已经下沉,没有工作数据库。

我已经确认 .Net Framework 3.5 和 4.5 功能实际上是通过服务器管理器安装的。

我还尝试了 REPAIR 选项以及 SQL Server 安装中心中几乎所有其他可用功能。它产生相同的错误。

任何有见地的帮助都会很高兴审查。

更新:通过控制面板删除了所有 SQL 安装,并且通过 Aaron Burtrand 描述的方法不成功的地方被用来清理注册表......他的博客同样的错误仍在继续。

windows-server-2012-r2 sql-server-2016 sql-server-2012 sql-server-2008-r2
  • 2 个回答
  • 862 Views
Martin Hope
Luis Gouveia
Asked: 2016-10-20 00:05:12 +0800 CST

为什么 TFS 需要 SQL Server 实例?

  • 3

自从我使用 TFS 2012 进行源代码管理、报告和项目管理以来,已经 3 年多了。但是,直到现在,我从未从头安装过任何版本的 TFS。

为了使用 SSRS 2016,我需要安装 TFS 2015,通过这样做,我了解到我需要先安装一个 SQL Server 实例。这个事实让我很吃惊。

我的问题是:这是否意味着 TFS 实际上会创建其内部表,其中我有关于每个项目/工作项的信息(任务名称、CreatedBy、AssignedTo、Priority、OriginalEstimate、Remaining、Completed、Description 等......)这些表会公开吗?

我认为这个数据库是 TFS 内部的,我永远无法直接访问它。我想知道我的解释是否有效。

sql-server team-foundation-server sql sql-server-2016
  • 1 个回答
  • 242 Views

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve