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-180477

Rauf Asadov's questions

Martin Hope
Rauf Asadov
Asked: 2022-04-03 13:01:40 +0800 CST

为什么我在 SQL Server 故障转移群集实例中关闭 SQL 服务时不会发生自动故障转移?

  • 1

我遇到了与自动故障转移相关的异常行为,因此在关闭 SQL Server 服务的情况下自动故障转移不起作用。集群磁盘似乎仍连接到故障节点,但我无法找出导致此行为的最终问题。如果您能帮助我理解这个问题,我将非常感谢您。

出于测试目的,我在域控制器上创建了 iSCSI 目标,并连接了 2 个启动器:

在此处输入图像描述

以下是有关我的集群的详细信息:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

以下是有关我的 SQL Server 服务的详细信息:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

以下是有关集群磁盘的详细信息(我只添加了其中一个磁盘的详细信息,因为两个磁盘相同):

在此处输入图像描述 在此处输入图像描述

现在,当我关闭 SQL Server 服务时,服务的自动故障转移不会发生:

在此处输入图像描述

I tested other scenarios where automatic failover successfully works:

  1. Manual failover
  2. Shutting down active node
  3. Disabling adapter on active node
  4. killing sql server process in task manager
  5. killing sql agent service process in task manager

In all above scenarios, resources successfully failed over to another node.

Could you please help me to figure out what is going wrong with automatic failover when I shutdown SQL Server service on active node?

sql-server sql-server-2014
  • 1 个回答
  • 101 Views
Martin Hope
Rauf Asadov
Asked: 2021-10-01 07:52:52 +0800 CST

为什么我不能对主副本进行差异备份?

  • 0

我试图通过连接到主副本来对我的主数据库进行差异备份,但我不能这样做。我们使用带有最新 CU 的 SQL Server 2017 EE。数据库处于完全恢复模式,每天晚上都会进行完全备份。仅复制备份选项和确定按钮显示为灰色。有人可以帮助理解为什么无法执行上述操作吗?

在此处输入图像描述

sql-server backup
  • 1 个回答
  • 69 Views
Martin Hope
Rauf Asadov
Asked: 2021-06-15 10:38:13 +0800 CST

备份历史文件中指示的 START WAL LOCATION、STOP WAL LOCATION 和 CHECKPOINT 有什么区别?

  • 0

我对这些位置有点困惑。有人可以给这些位置一个简短的定义。

在此处输入图像描述

postgresql backup
  • 1 个回答
  • 104 Views
Martin Hope
Rauf Asadov
Asked: 2021-01-25 11:31:53 +0800 CST

如何计算备份过程的内存限制?

  • 2

备份过程的“内存限制”实际上是如何计算的?

在此处输入图像描述

sql-server backup
  • 2 个回答
  • 218 Views
Martin Hope
Rauf Asadov
Asked: 2020-12-29 02:46:07 +0800 CST

无法备份到共享文件夹

  • 2

需要你的帮助。尽管运行 sql 代理服务帐户的域帐户对该共享文件夹具有完全权限,但我的 sql 作业无法将备份备份到共享文件夹。

除此之外,我的 sql 服务帐户使用默认的虚拟登录。因此,当我将该帐户更改为我也用于 sql 代理服务帐户的域帐户时,问题就解决了。

为什么我不能使用 sql 代理服务帐户备份到共享文件夹?

在此处输入图像描述

在此处输入图像描述

sql-server backup
  • 1 个回答
  • 296 Views
Martin Hope
Rauf Asadov
Asked: 2020-12-27 03:37:29 +0800 CST

崩溃恢复过程如何在 SQL Server 中工作?

  • 2

我想问一个关于恢复数据库操作时的恢复过程的问题。假设我用 恢复了一个完整备份,NORECOVERY然后用 .恢复了两个 t-log 备份NORECOVERY。最后,我将使用RECOVERY关键字恢复最后的第三个 t-log 备份。

问题是:当我使用RECOVERY关键字恢复最后一个 t-log 备份时,SQL Server 是执行重做和撤消阶段还是只执行撤消阶段?

在我看来,当我们使用NORECOVERY关键字恢复备份时,SQL Server 也会执行重做阶段。使用备用关键字恢复 t-log 备份也是如此。在这种情况下,SQL Server 会创建一个单独的文件,其名称只包含“ undo ”而不是任何“ redo ”。

sql-server transaction-log
  • 1 个回答
  • 365 Views
Martin Hope
Rauf Asadov
Asked: 2020-12-16 11:44:06 +0800 CST

为什么完整备份的 first_lsn 和第一次事务日志备份是一样的?

  • 0

第一个事务日志备份的first_lsn不应该是36000000022400001而不是36000000022100001吗?在这种情况下,它等于完整备份的 first_lsn。

在此处输入图像描述

sql-server backup
  • 1 个回答
  • 60 Views
Martin Hope
Rauf Asadov
Asked: 2020-11-05 13:04:05 +0800 CST

兼容级别 100 的数据库是否支持列存储索引?

  • 1

我有一个在 SQL Server 2017 Developer Edition 实例上运行的实例。我恢复了兼容级别为 100 的数据库 ContosoRetailDW。恢复操作后,我运行以下查询:

CREATE CLUSTERED COLUMNSTORE INDEX CCI_FactOnlineSales ON dbo.FactOnlineSales

已成功创建列存储索引。

我的问题与兼容级别有关。据我所知,列存储索引概念本身是在SQL Server 2012 中出现的。而且聚集列存储索引是在SQL Server 2014 中发布的。兼容级别为100 的数据库如何支持聚集列存储索引?似乎数据库仍然继承了当前实例的特性。

sql-server index
  • 1 个回答
  • 107 Views
Martin Hope
Rauf Asadov
Asked: 2020-10-14 10:45:12 +0800 CST

自动播种如何工作 - Always On 可用性组

  • 2

我仅从 BOL 中找到了关于此初始数据同步方法的以下两条语句:

链接 1

自动播种使用日志流传输将使用 VDI 的备份流式传输到使用配置的端点的可用性组的每个数据库的辅助副本。

链接 2

在自动播种期间,SQL Server 通过网络执行备份以进行初始化。

查看主副本和辅助副本的 SQL Server 错误日志,这两个日志引起了我的注意:

在主副本上

在此处输入图像描述

在次要副本上

在此处输入图像描述

我的问题与自动播种的工作性质有关,即在辅助副本上恢复之前将备份存储在哪里?

sql-server backup
  • 1 个回答
  • 1275 Views
Martin Hope
Rauf Asadov
Asked: 2020-10-11 23:00:03 +0800 CST

log_reuse_wait_desc - AVAILABILITY_REPLICA 无法截断事务日志

  • 0

我的可用性组中只有 1 个辅助副本和一个数据库。Primary 和 Secondary 副本都处于同步提交可用性模式。我在表中插入了 1000 条记录,并且在主数据库和辅助数据库中都提交了事务。还发布了检查站。现在,当我挂起辅助数据库并尝试对主数据库进行日志备份以截断事务日志时,它不会被以下 log_reuse_wait_desc 值截断:AVAILABILITY_REPLICA。为什么不截断?

据我所知,只要日志处于非活动状态并且 VLF 被填满,那么事务日志就可以被截断。你们中的一些人可以用某种方式回答:SQL Server is waiting to send logs to the secondary Always On Availability Group replica,但我的问题是,如果双方已经提交了 1000 条记录并发出了检查点,那么什么日志正在等待发送到次要副本?

sql-server availability-groups
  • 1 个回答
  • 329 Views
Martin Hope
Rauf Asadov
Asked: 2020-10-03 22:44:45 +0800 CST

AlwaysON 中的 Lease Timeout 和 HealthCheck Timeout 有什么区别?

  • 0

这个问题在这里被问了两次,但仍然没有满意的答案。有人可以解释这两个超时之间的主要区别吗?

sql-server availability-groups
  • 1 个回答
  • 86 Views
Martin Hope
Rauf Asadov
Asked: 2020-09-26 02:54:11 +0800 CST

ASYNC_IO_COMPLETION 和 IO_COMPLETION 等待类型有什么区别?

  • 4

有人可以解释这两种等待类型之间的主要区别是什么吗?

sql-server performance
  • 1 个回答
  • 378 Views
Martin Hope
Rauf Asadov
Asked: 2020-08-26 02:03:30 +0800 CST

使用 -T3608 和使用 -f 启动实例有什么区别?

  • 0

出于学习目的,我在测试环境中模拟了模型数据库的损坏。在阅读有关它的其他博客和文章时,我坚持这个问题,使用未记录的 -T3608 和 -f 标志启动 SQL Server 服务有什么区别?

当我尝试使用 -f 启动服务时,收到错误消息并且服务没有启动。但是,在-T3608的情况下,它开始顺利。对于 -T3608 标志,我读到,-T3608 启动所有数据库而不执行恢复,而 -f 以最少的配置启动实例。什么是最小配置,我找不到有关它的信息。

sql-server recovery
  • 1 个回答
  • 689 Views
Martin Hope
Rauf Asadov
Asked: 2020-08-19 13:07:10 +0800 CST

DBCC SHIRNKFILE(Data_File, 0) 命令不应该将数据文件缩小到最后分配的范围吗?

  • 0

我有一个带有以下参数的数据文件:

在此处输入图像描述

当我执行DBCC SHRINKFILE (DBAtools_data,1)时,它显示以下结果:

在此处输入图像描述

我同意。我的抱怨是关于DBCC SHRINKFILE (DBAtools_data,0)命令。当我运行它时,没有任何变化。我认为它会将数据文件缩小到最后分配的范围,换句话说,结果与上面相同。有人可以为我澄清一下吗?

sql-server shrink
  • 2 个回答
  • 107 Views
Martin Hope
Rauf Asadov
Asked: 2020-08-08 04:07:39 +0800 CST

如何使用扩展事件捕获运行时参数?

  • 4

我使用 rpc_completed 事件来捕获已执行的存储过程。我也是通过以下方式查看语句和传递的参数:

右键单击扩展事件 -> 观看实时数据,最后看到语句+参数

但是我想以表格格式查看捕获的数据,但我无法实现它。当我在下面运行查询时,它显示没有参数的语句。如何在表格中查看参数?需要你的建议。

IF OBJECT_ID('tempdb..#capture_waits_data') IS NOT NULL
DROP TABLE #capture_waits_data
SELECT CAST(target_data as xml) AS targetdata
INTO #capture_waits_data
FROM sys.dm_xe_session_targets xet
JOIN sys.dm_xe_sessions xes
ON xes.address = xet.event_session_address
WHERE xes.name = 'LongRunningQueries'
AND xet.target_name = 'ring_buffer';
--*/
/**********************************************************/
SELECT
CONVERT(datetime2,SWITCHOFFSET(CONVERT(datetimeoffset,xed.event_data.value('(@timestamp)[1]', 'datetime2')),DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS datetime_local,
xed.event_data.value('(@name)[1]', 'varchar(50)') AS event_type,
xed.event_data.value('(data[@name="statement"]/value)[1]', 'varchar(max)') AS statement,
xed.event_data.value('(data[@name="duration"]/value)[1]', 'bigint')/1000 AS duration_ms,
xed.event_data.value('(data[@name="physical_reads"]/value)[1]', 'bigint') AS physical_reads,
xed.event_data.value('(data[@name="logical_reads"]/value)[1]', 'bigint') AS logical_reads
FROM #capture_waits_data
CROSS APPLY targetdata.nodes('//RingBufferTarget/event') AS xed (event_data)
WHERE 1=1 and xed.event_data.value('(action[@name="username"]/value)[1]', 'varchar(255)') <> 'NT SERVICE\SQLSERVERAGENT'

这是实际使用的扩展事件:

CREATE EVENT SESSION [LongRunningQueries] ON SERVER 
ADD EVENT sqlserver.rpc_completed(
    ACTION(package0.collect_system_time,sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_name,sqlserver.session_id,sqlserver.username)
    WHERE ([duration]>(4000000) AND [sqlserver].[database_name]='mydb')),
ADD EVENT sqlserver.sql_statement_completed(
    ACTION(package0.collect_system_time,sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_name,sqlserver.session_id,sqlserver.username)
    WHERE ([duration]>(4000000) AND [sqlserver].[database_name]='mydb')) 
ADD TARGET package0.ring_buffer(SET max_events_limit=(0),max_memory=(102400))
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=5 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
GO
sql-server extended-events
  • 1 个回答
  • 407 Views
Martin Hope
Rauf Asadov
Asked: 2020-07-16 05:59:25 +0800 CST

与 Oracle 数据库相比,SQL Server 是否在完全关闭后执行实例恢复?

  • -1

如果 Oracle 检测到需要进行实例恢复(例如发出关闭中止命令或发生崩溃),它将初始化恢复过程。SQL Server 呢?它的行为方式是否相同?

换句话说,如果我执行 SQL Server 实例的干净关闭(例如使用服务控制台停止 sql server 或在 SSMS 中发出关闭命令)然后启动实例,那么是否会执行恢复过程?

sql-server oracle
  • 1 个回答
  • 31 Views
Martin Hope
Rauf Asadov
Asked: 2020-07-01 15:12:21 +0800 CST

查询执行时使用了多少个线程?

  • 3

我在我的测试 SQL Server 2014 上安装了 AdventureWorks2014 数据库。我计划执行以下查询:

SELECT *
FROM Sales.SalesOrderDetail sod
INNER JOIN Production.Product p ON sod.ProductID = p.ProductID
ORDER BY Style

在实际执行它之前,我有以下工作线程的图片:

在此处输入图像描述

在执行查询时,我再次检查了工作线程的状态:

在此处输入图像描述

如您所见,第二张图片中的总 active_workers_count 高于第一张截图中的。从第二个屏幕截图中,我可以假设查询执行所需的工作线程总数为 1+2+1+2=6。但是,当我查看执行计划中索引扫描运算符的属性时,我看到:

在此处输入图像描述

看来我的并行度是 4,这意味着 4 个线程正在并行处理行。

我很困惑,无法确定在查询执行期间运行了多少线程。有人可以向我解释为什么 active_workers_count 与 DOP 不同吗?

sql-server sql-server-2014
  • 2 个回答
  • 757 Views
Martin Hope
Rauf Asadov
Asked: 2020-07-01 11:37:59 +0800 CST

为什么即使统计信息正确,也会发生 TempDB 溢出?

  • 1

我阅读了 Brent Ozar 发表的一篇很棒的文章,并提出了一些与内存授予相关的问题。我无法在他文章的评论部分解决我的问题,所以我想从这里获得任何帮助。

  1. 问题:有多少数据溢出到磁盘中? 400 MB还是60 MB (7643KB*8)?

他在文章中说:

而且无论我更新多少次统计数据,我仍然会得到大约400MB的磁盘溢出。

我在这里有点困惑(

在此处输入图像描述 在此处输入图像描述

  1. 问题:如果估计一切正常,统计数据是最新的,盒子有足够的内存,并且当时没有运行任何查询,那么为什么会发生溢出到磁盘?

查看估计的行数与实际的行数。它们是相同的。统计数据很好。

我也没有使用小型服务器:我的虚拟机有 32GB 内存,我已将其中的 28GB 分配给 SQL Server。没有其他查询同时运行——它只是一个孤独的查询,溢出到磁盘......

在此处输入图像描述

memory sql-server-2014
  • 2 个回答
  • 133 Views
Martin Hope
Rauf Asadov
Asked: 2020-06-17 05:07:04 +0800 CST

如何删除链接服务器提供商?

  • 0

我安装了一个 Oracle OraOLEDB.Oracle 提供程序。现在我想从列表中删除该提供程序。我怎样才能做到这一点?

sql-server sql-server-2014
  • 2 个回答
  • 608 Views
Martin Hope
Rauf Asadov
Asked: 2020-06-16 12:39:33 +0800 CST

所有内存管理员和总服务器内存 (KB) 的总和

  • 2

我正在尝试了解 SQL Server 的内存管理。我在具有 64 GB RAM 的虚拟环境中有一个 Windows Server 2019。我还安装了最大服务器内存 59776 MB 的 SQL Server 2019。通过使用以下查询,我找到了所有内存管理员的列表:

SELECT  [type] AS [ClerkType], SUM(pages_kb) / 1024 AS [SizeMb]
FROM sys.dm_os_memory_clerks WITH (NOLOCK)
GROUP BY [type]
ORDER BY SUM(pages_kb) DESC

所有内存职员的总和等于 23523 MB。

Value for MEMORYCLERK_SQLBUFFERPOOL memory clerk is 18387 MB.

我还检查了一些性能计数器:

Total Server Memory (KB) = 32262 MB.
Database Cache Memory (KB) = 18387 MB.

如果以下任何陈述有误,请纠正我,

Max Server Memory for SQL Server 2019 = Buffer Pool Memory + Non-Buffer Pool Memory.

Total Server Memory (KB) - The committed memory from the Buffer Pool.

Data Cache Memory (KB) performance counter is equivalent to MEMORYCLERK_SQLBUFFERPOOL memory clerk and both represents data cache used size.

Above query shows all memory clerks for both Buffer Pool Memory and Non-Buffer Pool Memory.

我的问题与这个主题有关:

如果 Total Server Memeory (KB) 与 Buffer Pool 内存有关,那么为什么它的大小 (32262 MB) 大于代表 Buffer Poll Memory 和 Non-Buffer Pool Memory 的 Total sum memory clerks (23523 MB)?

编辑: select * from sys.dm_os_process_memory 的结果 在此处输入图像描述 在此处输入图像描述

sql-server performance
  • 1 个回答
  • 273 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