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
    • 最新
    • 标签
主页 / user-160118

James D's questions

Martin Hope
James D
Asked: 2019-03-21 00:54:05 +0800 CST

无法在服务器上安装 SQL Server Management Studio (SSMS)

  • 1

尝试在我们的开发数据库服务器之一上安装 SSMS 时,我们遇到了持续错误。我们已经尝试了 17.4 和 17.9.1 版本的安装程序,但错误消息是相同的。

从 SSMS-Setup-ENU_20190319131949.log (17.4) 中提取

10C0:10B8][2019-03-19T13:28:23]i000: MainViewModel.OnPackageActionProgress: Percent completed: 50, Overall progress: 65
[1E58:1E70][2019-03-19T13:28:24]e000: Error 0x80070643: Process returned error: 0x643
[1E58:1E70][2019-03-19T13:28:24]e000: Error 0x80070643: Failed to execute EXE package.
[10C0:10B8][2019-03-19T13:28:24]e000: Error 0x80070643: Failed to configure per-machine EXE package.
[10C0:10B8][2019-03-19T13:28:24]i000: MainViewModel.OnPackageAction: Install Completed for package Microsoft Visual Studio Tools for Applications 2015 Language Support
...
[10C0:10B8][2019-03-19T13:33:28]e000: MainViewModel.OnBundleAction: Bundle action failed: Fatal error during installation (0x80070643)
[10C0:10B8][2019-03-19T13:33:28]i399: Apply complete, result: 0x80070643, restart: None, ba requested restart:  No
[10C0:1C40][2019-03-19T13:33:42]i000: MainViewModel.OpenUrl: Opening url: C:\Users\******~1\AppData\Local\Temp\SsmsSetup\SSMS-Setup-ENU_20190319131949.log

从 SSMS-Setup-ENU_20190319134134.log (17.9.1) 中提取

[16C4:2298][2019-03-19T13:49:35]i000: MainViewModel.OnPackageActionProgress: Percent completed: 50, Overall progress: 67
[2324:1D80][2019-03-19T13:49:35]e000: Error 0x80070643: Process returned error: 0x643
[2324:1D80][2019-03-19T13:49:35]e000: Error 0x80070643: Failed to execute EXE package.
[16C4:2298][2019-03-19T13:49:35]e000: Error 0x80070643: Failed to configure per-machine EXE package.
[16C4:2298][2019-03-19T13:49:35]i000: MainViewModel.OnPackageAction: Install Completed for package Microsoft Visual Studio Tools for Applications 2015 Language Support
[16C4:2298][2019-03-19T13:49:35]i319: Applied execute package: VSTALS2015, result: 0x80070643, restart: None
[16C4:2298][2019-03-19T13:49:35]e000: Error 0x80070643: Failed to execute EXE package.
[2324:1D80][2019-03-19T13:49:35]i351: Removing cached package: VS2015KB3095681Update, from path: C:\ProgramData\Package Cache\02A26E554FBB4232ACD36E70D09F2C7893D399CD\
...
[16C4:2298][2019-03-19T13:55:14]e000: MainViewModel.OnBundleAction: Bundle action failed: Fatal error during installation (0x80070643)
[16C4:2298][2019-03-19T13:55:14]i399: Apply complete, result: 0x80070643, restart: None, ba requested restart:  No
[16C4:1798][2019-03-19T13:56:28]i000: MainViewModel.OpenUrl: Opening url: C:\Users\******~1\AppData\Local\Temp\SsmsSetup\SSMS-Setup-ENU_20190319134134.log

在此处输入图像描述

安装程序需要几分钟才能到达这一点,但每次都失败并显示相同的结果。

我们在每次尝试之间重新启动了服务器,并在最新的 Windows 更新上运行。我们在服务器上安装了 .NET Framework 4.5.2。所有尝试都是使用在服务器上具有完全管理员权限的帐户进行的。

谁能告诉我们如何成功安装它?

installation ssms
  • 1 个回答
  • 10995 Views
Martin Hope
James D
Asked: 2019-01-03 07:56:09 +0800 CST

可序列化范围死锁

  • 6

继承死锁问题需要帮助!

下面给出的代码似乎已经写了一段时间,试图通过首先在较小的 [ID_Stub ] 桌子。但是,持续死锁的存在表明此代码似乎导致的问题多于解决的问题。

我们经常在下表的 INSERT 语句周围遇到死锁(表和列名已被混淆)。该表没有触发器或外键依赖项,但有一个聚集索引和一个非聚集索引,如下所示。

CREATE TABLE dbo.ID_Stub (
ID int IDENTITY(1,1) NOT NULL,
IDReference nchar(25) NULL,
AdditionalID int NULL,
CreatedBy int NOT NULL,
CreatedOn datetime NOT NULL,
CONSTRAINT PK_ID_Stub PRIMARY KEY CLUSTERED (ID) WITH 
(
    PAD_INDEX = OFF, 
    STATISTICS_NORECOMPUTE = OFF, 
    SORT_IN_TEMPDB = OFF, 
    IGNORE_DUP_KEY = OFF, 
    ONLINE = OFF, 
    ALLOW_ROW_LOCKS = ON, 
    ALLOW_PAGE_LOCKS = ON, 
    FILLFACTOR = 90
)
);
GO

CREATE NONCLUSTERED INDEX idx_IDReference ON dbo.ID_Stub (IDReference) WITH 
(
    PAD_INDEX = OFF, 
    STATISTICS_NORECOMPUTE = OFF, 
    SORT_IN_TEMPDB = OFF, 
    DROP_EXISTING = OFF, 
    ONLINE = OFF, 
    ALLOW_ROW_LOCKS = ON, 
    ALLOW_PAGE_LOCKS = ON, 
    FILLFACTOR = 70
);
GO

该表在任何时候平均包含大约 70,000 行(一个进程运行以每晚修剪记录数)。

默认的实例事务隔离级别是 READ COMMITTED,但是这被重写(在发生死锁的存储过程中)为 SERIALIZABLE,以及一个隐式事务。不幸的是,我们不能考虑在这个阶段转向优化锁定策略,例如 RCSI。

为了完整起见,下面给出了整个隐式事务,但死锁发生在 ID_Stub 上的最终 INSERT 语句附近。

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION

-- If a reference has been provided...
IF ISNULL(@IDReference, '') > ''
BEGIN
    IF @ID IS NULL
    BEGIN
        -- Attempt to locate record based on provided reference.
        SELECT @ID = MAX(ID)
        FROM dbo.IDs I
        WHERE I.IDReference = LTRIM(RTRIM(@IDReference))
        AND I.CreatedBy = @CreatedBy
        AND I.AdditionalID = @AdditionalID

        IF @ID IS NULL
        BEGIN
            -- If there is no corresponding record, the subsequent ID creation after the stub failed.
            SET @OriginallyCreated = 
            (
                SELECT MAX(CreatedOn) 
                FROM dbo.ID_Stub IDS 
                WHERE IDS.IDReference = LTRIM(RTRIM(@IDReference))
                AND IDS.CreatedBy = @CreatedBy
                AND IDS.AdditionalID = @AdditionalID
            );

            -- Delete the stub record if created more than 90 seconds ago.
            IF @OriginallyCreated IS NOT NULL
            BEGIN
                IF DATEDIFF(s, @OriginallyCreated, GETDATE()) < 90
                    SELECT @FailureMessage = 'The ID for reference ' + RTRIM(@IDReference) + ' is still being processed.  Please try later.';
                ELSE
                    DELETE dbo.ID_Stub
                    WHERE IDReference = LTRIM(RTRIM(@IDReference))
                    AND CreatedBy = @CreatedBy
                    AND AdditionalID = @AdditionalID;
            END
        END
    END
    ELSE
    BEGIN
        IF NOT EXISTS 
        (
            SELECT ID
            FROM dbo.IDs I
            WHERE I.ID = @ID
            AND I.CreatedBy = @CreatedBy
        )
            SELECT @FailureMessage = 'You have no record stored against the supplied ID (' + RTRIM(CONVERT(Char, @ID)) + ')';
        ELSE
            IF NOT EXISTS 
            (
                SELECT ID
                FROM dbo.IDs I
                WHERE I.ID = @ID
                AND I.IDReference = @IDReference
                AND I.CreatedBy = @CreatedBy
            )
                SELECT @FailureMessage = 'The ID does not match the reference you supplied.';
        END
END
ELSE -- No ID Reference provided.
BEGIN
    IF @ID IS NOT NULL
    BEGIN
        IF NOT EXISTS 
        (
            SELECT ID
            FROM dbo.IDs I
            WHERE I.ID = @ID
            AND I.CreatedBy = @CreatedBy
        )
            SELECT @FailureMessage = 'You have no record stored against the supplied ID (' + RTRIM(CONVERT(Char, @ID)) + ').';
    END
END

IF @FailureMessage <> ''
BEGIN
    ROLLBACK;
    RETURN 1;
END

-- If it's a new submission, create a stub for it.
IF @ID IS NULL
BEGIN
    INSERT dbo.ID_Stub (IDReference, AdditionalID, CreatedBy, CreatedOn)
        VALUES (@IDReference, @AdditionalID, @CreatedBy, GETDATE());

    SELECT @ID = SCOPE_IDENTITY();
END

COMMIT
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

XML 死锁报告如下。

<deadlock>
    <victim-list>
        <victimProcess id="process1e7fd5d8108"/>
    </victim-list>
    <process-list>
        <process id="process1e7fd5d8108" taskpriority="0" logused="336" waitresource="KEY: 30:72057596372844544 (4f8ff66d381b)" waittime="4265" ownerId="1879373839" transactionname="user_transaction" lasttranstarted="2018-12-29T22:19:51.357" XDES="0x1dfe81c9538" lockMode="RangeI-N" schedulerid="6" kpid="2084" status="suspended" spid="182" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2018-12-29T22:19:51.307" lastbatchcompleted="2018-12-29T22:19:51.293" lastattention="1900-01-01T00:00:00.293" clientapp=".Net SqlClient Data Provider" hostname="<obfuscated>" hostpid="3648" loginname="<obfuscated>" isolationlevel="serializable (4)" xactid="1879373839" currentdb="30" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056">
            <executionStack>
                <frame procname="<obfuscated>" line="640" stmtstart="68006" stmtend="68296" sqlhandle="0x03001e002acd7f07eca57a012ea9000001000000000000000000000000000000000000000000000000000000">  INSERT dbo.ID_Stub (IDReference, AdditionalID, CreatedBy, CreatedOn)       VALUES (@IDReference, @AdditionalID, @CreatedBy, GETDATE();    </frame>
            </executionStack>
            <inputbuf>  Proc [Database Id = 30 Object Id = 125816106]   </inputbuf>
        </process>
        <process id="process1fd327c7c28" taskpriority="0" logused="336" waitresource="KEY: 30:72057596372844544 (4f8ff66d381b)" waittime="4265" ownerId="1879373837" transactionname="user_transaction" lasttranstarted="2018-12-29T22:19:51.357" XDES="0x1e76d97ebd8" lockMode="RangeI-N" schedulerid="3" kpid="9084" status="suspended" spid="208" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2018-12-29T22:19:51.300" lastbatchcompleted="2018-12-29T22:19:51.293" lastattention="1900-01-01T00:00:00.293" clientapp=".Net SqlClient Data Provider" hostname="<obfuscated>" hostpid="3648" loginname="<obfuscated>" isolationlevel="serializable (4)" xactid="1879373837" currentdb="30" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056">
            <executionStack>
                <frame procname="<obfuscated>" line="640" stmtstart="68006" stmtend="68296" sqlhandle="0x03001e002acd7f07eca57a012ea9000001000000000000000000000000000000000000000000000000000000">  INSERT dbo.ID_Stub (IDReference, AdditionalID, CreatedBy, CreatedOn)       VALUES (@IDReference, @AdditionalID, @CreatedBy, GETDATE();    </frame>
            </executionStack>
            <inputbuf>  Proc [Database Id = 30 Object Id = 125816106]   </inputbuf>
        </process>
    </process-list>
    <resource-list>
        <keylock hobtid="72057596372844544" dbid="30" objectname="<obfuscated>.<obfuscated>.ID_Stub" indexname="idx_IDReference" id="lock1e566d4a380" mode="RangeS-S" associatedObjectId="72057596372844544">
            <owner-list>
                <owner id="process1fd327c7c28" mode="RangeS-S"/>
                <owner id="process1fd327c7c28" mode="RangeI-N" requestType="convert"/>
            </owner-list>
            <waiter-list>
                <waiter id="process1e7fd5d8108" mode="RangeI-N" requestType="convert"/>
            </waiter-list>
        </keylock>
        <keylock hobtid="72057596372844544" dbid="30" objectname="<obfuscated>.<obfuscated>.ID_Stub" indexname="idx_IDReference" id="lock1e566d4a380" mode="RangeS-S" associatedObjectId="72057596372844544">
            <owner-list>
                <owner id="process1e7fd5d8108" mode="RangeS-S"/>
                <owner id="process1e7fd5d8108" mode="RangeI-N" requestType="convert"/>
            </owner-list>
            <waiter-list>
                <waiter id="process1fd327c7c28" mode="RangeI-N" requestType="convert"/>
            </waiter-list>
        </keylock>
    </resource-list>
</deadlock>  

第一条语句的查询计划可以在下面的链接中找到。

https://www.brentozar.com/pastetheplan/?id=BkVfC8qbN

任何关于如何最好地解决这些死锁的提示或建议将不胜感激。

sql-server deadlock
  • 2 个回答
  • 1931 Views
Martin Hope
James D
Asked: 2018-10-17 07:44:46 +0800 CST

避免使用 SQL Server 的默认端口仍然是最佳做法吗?

  • 22

从历史上看,作为安全最佳实践的一部分,建议不要使用默认端口连接到 SQL Server。在具有单个默认实例的服务器上,默认情况下将使用以下端口:

  • SQL Server 服务 - 端口 1433 (TCP)
  • SQL Server 浏览器服务 - 端口 1434 (UDP)
  • 专用管理员连接 - 端口 1434 (TCP)

问题:

  • 这个建议仍然有用吗?
  • 是否应该更改所有上述端口?
sql-server security
  • 5 个回答
  • 12706 Views
Martin Hope
James D
Asked: 2018-10-17 02:43:16 +0800 CST

撤销对 SQL Server 实例上的服务器“公共”角色的服务器权限是最佳做法吗?

  • 2

C:\Program Files (x86)\Microsoft SQL Server\number\Tools\Policies\DatabaseEngine\1033我们已经在我们的每个 SQL Server 实例(此处的示例)上评估了 Microsoft“最佳实践”策略(位于)。以下问题已向我们报告:

在此处输入图像描述

这提供了一个指向 Microsoft 页面的链接,该页面将以下内容列为最佳实践:

不要将服务器权限授予服务器公共角色。

在审查安全性时,我们可以看到 public 角色默认具有查看任何数据库的服务器权限。我们已经运行了以下操作并重新评估了该政策,但问题仍然存在。

REVOKE VIEW ANY DATABASE TO [public] AS [sa];

此服务器角色的唯一其他权限是能够通过 TCP/VIA/命名管道/本地机器连接的端点权限。如果我们去掉这些,这个角色肯定是多余的。

在此处输入图像描述

问题

  • 我们应该担心这个吗?这是我们真的应该解决的问题吗?
  • 我们还需要做些什么来正确解决这个问题?
  • 这样做或不这样做有什么影响吗?
sql-server security
  • 2 个回答
  • 1960 Views
Martin Hope
James D
Asked: 2018-09-28 07:32:39 +0800 CST

通过 SQL Server 代理检索警报错误描述文本

  • 0

我们已经为 SQL Server 实例上的主要严重性和错误代码配置了警报。每个警报然后运行相同的 SQL Server 代理作业,以在我们的监控系统中触发警报(用于 SMS 消息传递)。

能够从某处检索警报描述文本(请参阅下面示例中的“这只是一个测试!”)以馈送到我们的监控系统将很有用。

DATE/TIME:   27/09/2018 16:08:19
DESCRIPTION: Error: 50000 Severity: 20 State: 1 This was just a test!
COMMENT:     (None)
JOB RUN:     SystemAlerts

此文本是否存储在 msdb 数据库中的任何位置?或者它不像 SQL Server Agent 作业历史那样持久化?

sql-server alerts
  • 1 个回答
  • 198 Views
Martin Hope
James D
Asked: 2018-09-19 03:21:04 +0800 CST

无法连接到 <实例>。当前命令发生严重错误

  • 2

最近,现在不止一次,我们尝试使用 SSMS 从我们的一个 SQL Server 实例连接到另一个实例,但遇到以下错误:

当前命令发生严重错误。结果,如果有的话,应该丢弃。

在此处输入图像描述

当我们尝试在本地使用 SSMS 进行连接时,会出现以下错误:

与服务器成功建立连接,但在登录过程中出现错误。(提供者:共享内存提供者,错误:0 - 管道的另一端没有进程。)(Microsoft SQL Server,错误:233)

在此处输入图像描述

通过专用管理连接 (DAC) 的连接会导致相同的错误。SQLCMD 显示以下错误:

在此处输入图像描述

SQL Server 配置管理器报告 SQL Server 服务和 SQL Server 代理服务都在运行。

SQL Server 错误日志在事件查看器中的条目开始被记录的同时停止,报告 SQL Server 代理作业的连接问题。

SQL Server 计划作业“sp_WhoIsActive”(0x868EBDEC06F71344AC717E0C6A333D13)-状态:失败-调用时间:2018-09-18 10:38:00-消息:作业失败。无法确定作业 sp_WhoIsActive 的所有者 (sa) 是否具有服务器访问权限(原因:无法连接到服务器 - 检查 SQL Server 和 SQL Server 代理错误日志)。

我们所有的 SQL Server 服务都已配置为在组托管服务帐户 (gMSA) 下运行。

到目前为止,唯一的解决方案是重新启动服务器,但显然这不是一个令人满意的解决方案,特别是因为这个问题现在已经发生了不止一次。

我们唯一需要做的是,在连接问题发生之前,SQL Server 错误日志中会多次出现以下错误消息。

2018-09-17 13:31:19.20 用户“[域][SQL 代理的 gMSA 帐户]$”登录失败。原因:无法打开明确指定的数据库“[database_name]”。[客户端:[本地机器]] 2018-09-17 13:32:03.63 登录错误:18456,严重性:14,状态:38。

这些登录问题是否可能超出最大连接数?如果是这样,为什么仍然无法通过 DAC 连接?

有人可以建议吗?

更多详细信息:

  • Microsoft SQL Server 2016 (SP1-CU8) (KB4077064) - 13.0.4474.0 (X64) 2018 年 2 月 24 日 13:53:17 版权所有 (c) Windows Server 2016 Standard 10.0 (Build 14393) 上的 Microsoft Corporation Web Edition(64 位): )(管理程序)
  • SQL Server Management Studio v17.8.1
  • 最大用户连接数设置为无限制 (0)。
  • 共享内存、TCP/IP 和命名管道都已启用。
sql-server sql-server-2016
  • 2 个回答
  • 2407 Views
Martin Hope
James D
Asked: 2018-09-07 01:01:28 +0800 CST

内联表值函数的强制序列化

  • 4

如果这是一个愚蠢的问题,我们深表歉意。我们正在尝试将我们的多语句表值函数 (MSTVF) 转换为内联表值函数 (ITVF),以避免查询的强制序列化。

我有以下 ITVF 函数(淡化),但执行计划仍然说它的并行度为 1。实际有问题的函数有三个基本的 SELECT 语句,由 UNION ALL 分隔。

我错过了什么吗?我怎样才能在这里避免强制序列化?

CREATE FUNCTION dbo.Test (@i int)
RETURNS TABLE
AS
RETURN
SELECT @i as [i];
GO

SELECT * FROM dbo.Test (2);
GO

https://www.brentozar.com/pastetheplan/?id=Hyn8o50D7

该实例具有以下设置:

  • 并行度的成本阈值 = 5
  • 最大并行度 = 0
sql-server t-sql
  • 1 个回答
  • 891 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