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

Racer SQL's questions

Martin Hope
Racer SQL
Asked: 2025-03-11 03:57:24 +0800 CST

索引重建导致 HADR_SYNC_COMMIT 和“锁定”查询

  • 5

我们遇到了一种奇怪的情况,当我们运行索引维护作业时,它会用 HADR_SYNC_COMMIT 会话填满服务器,应用程序中的所有其他会话都会挂起,等待它完成:

在此处输入图片描述

我们正在测量服务器的速度,但几乎接近 2 ec2 之间的速度限制。

这是否是需要在 SQL 外部进行修复的问题?

我们有 1 个同步副本和一个异步副本(带有 dr 的 4 个节点)。

sql-server
  • 1 个回答
  • 50 Views
Martin Hope
Racer SQL
Asked: 2024-08-28 00:36:11 +0800 CST

将数据库从一台服务器移动到另一台服务器后,Proc 出现关键问题

  • 5

将数据库从一台服务器移动到另一台服务器后,我们开始遇到一个问题:

> Msg 15581, Level 16, State 7, Procedure xxxxx, Line 24 [Batch Start Line 2]
Please create a master key in the database or open the master key in the session before performing this operation.

Msg 15315, Level 16, State 1, Procedure xxxxx, Line 62 [Batch Start Line 2]
The key '<CustomKeyName>' is not open. Please open the key before using it.

所讨论的程序具有:

 OPEN SYMMETRIC KEY MySymKey
 DECRYPTION BY CERTIFICATE MySymCert; 

我可以验证移动数据库后,我可以通过查询和来看到asymmetric key和a 。 certificatesys.symmetric_keyssys.certificates在此处输入图片描述

是的,我们没有主密钥。我很好奇这个过程是否可行:

  1. 在旧服务器中(在数据库范围内):

ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'a_cool_pass';

  1. 再次备份数据库

  2. 在新服务器中再次恢复数据库(使用替换)

OPEN MASTER KEY DECRYPTION BY PASSWORD = 'the_cool_Pass'

ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY

这是解决此情况的适当方法吗?

或者,我可以删除 symetric_key 和 cert,然后重新创建吗?

编辑:REGENERATING将主密钥传递到旧服务器,备份/恢复到新服务器, OPEN MASTER KEY DECRYPTION BY PASSWORD =遇到了问题The key is not encrypted using the specified decryptor.(我认为这很奇怪。我明天会再试一次。

(我需要对证书进行备份恢复吗?

sql-server-2017
  • 1 个回答
  • 31 Views
Martin Hope
Racer SQL
Asked: 2024-02-23 22:16:41 +0800 CST

有没有办法验证 SSIS 实例是否配置为集群资源?

  • 5

我们在一个集群中有 2 台服务器(没有 aoag ),使用 SQL + SSIS。

集群节点之一死亡,我们将其删除。我们计划创建一个新的集群节点,并在其上正常配置 SQL 引擎作为集群资源,但我们不记得 SSIS 是否也配置为集群资源。

由于 SSIS 不支持集群,并且 MS 不建议 SSIS 位于集群资源中,那么这里的选项是什么?SSIS 只是一个运行包的服务,我很困惑如何将新的 SQL 集群节点与 SSIS 一起添加(新节点中的 SQL 很简单,问题是 SISS )。

安装sql后在新的集群节点中安装SSIS并将包指向共享驱动器是否可行?

因为说实话,我很困惑如果故障转移到节点 2 而 SSIS 仅安装在节点 1 上会发生什么。

谢谢。

sql-server
  • 1 个回答
  • 21 Views
Martin Hope
Racer SQL
Asked: 2024-01-16 10:54:40 +0800 CST

对于 5tb 数据库和索引维护来说,什么是好的策略?

  • 4

我们使用 ollas 索引维护,并由我们的团队在各处进行了一些更改。

我们通常会遇到一个巨大的数据库问题,它的 Alter 索引会锁定某些进程。它通常是一个重组,即使它锁定了一些任务,例如批量任务。

我们可以做什么来尽量减少这种情况?nob每周日运行超过24小时。

我想到了拆分表,并在不同的周末进行索引维护。

我想到了一个警报,它会杀死该锁的工作 X 分钟(很糟糕,因为我确信它永远不会完成)。

index
  • 1 个回答
  • 41 Views
Martin Hope
Racer SQL
Asked: 2022-10-15 05:42:11 +0800 CST

当服务器有许多 AOAG 时,如何跳过“只读”数据库?

  • 5

例如,我想在所有数据库上运行索引维护作业。

我的服务器有很多AOAG,经常同时扮演不同AOAG的主副副本角色。

如果我在该服务器上有一个辅助数据库,并且它是只读的,我无法在其中找到此信息,sys.databases因为它显示0.

如何运行游标并跳过作为辅助副本的 AOAG 的一部分的数据库,而不中断工作?

我知道我可以使用... SELECT DATABASEPROPERTYEX('MyDBNAme', 'Updateability')

但是有没有更简单的方法可以将它实现到游标/查询/过程中?

谢谢

sql-server-2012
  • 1 个回答
  • 28 Views
Martin Hope
Racer SQL
Asked: 2022-09-07 06:38:05 +0800 CST

在 AOAG 上停止数据同步时是否需要停止日志备份?

  • -1

我对这个特定的话题很好奇。

如果我停止数据同步以更改主节点而不影响辅助节点,我是否需要停止日志备份作业?停止数据同步期间的日志备份是否会弄乱任何 LSN 并使其无法再次恢复数据同步?

编辑。

所以,我有一个数据库,是两台服务器之间的 AOAG 的一部分。如果我点击“停止数据同步”,辅助将停止从主接收信息。

与此同时,如果我在主数据库中执行“备份日志”会发生什么?当我“恢复数据同步”时,它会中断 AOAG 连接吗?LSN 会有所不同吗?

sql-server availability-groups
  • 1 个回答
  • 30 Views
Martin Hope
Racer SQL
Asked: 2022-07-21 05:36:27 +0800 CST

表 X 上的更新如何锁定表 Y?

  • 0

我们处于选择被更新阻止的情况。但桌子是不同的。

UPDATE [dbo].[TABLE_1]
SET ...

SELECT [t1].[field]
FROM [dbo].[TABLE_1] AS [t1]
WHERE...

当它们同时运行时,这个简单的过程会阻止这个:

SELECT "A lot of fields"
FROM TABLE_TOTALLY_DIFFERENT
INNER JOIN [another table totally different] 
ON...
WHERE...

这对我来说毫无意义。

即使通过查看 pageID,我也可以看到在这种情况下被锁定的表是TABLE_TOTALLY_DIFFERENT.

但他们与他们无关。

我如何寻找并确定它们被锁定的原因?

sql-server sql-server-2012
  • 1 个回答
  • 42 Views
Martin Hope
Racer SQL
Asked: 2022-04-13 11:47:46 +0800 CST

我们还有哪些其他选择?

  • -2

我删除了我的旧问题,以便更准确地了解我需要什么。

我们有一个包含许多较小查询的大查询。这个查询运行得非常好,直到它到达“having max”子句:

having 
  max
  (
    DateField 
    ) < getdate() - @2_years_ago

有没有比拥有 max 更快的条款?因为这会导致索引扫描以及表中存在的数百万行不停地循环和循环。

我试图按 row_number 做,但没有运气。

我只是注意到这个相同的查询在具有相同结构的其他数据库上运行得很好。

只是这个(有趣的是行更少)它不起作用。

数据库在同一台服务器上。

sql-server-2014
  • 1 个回答
  • 48 Views
Martin Hope
Racer SQL
Asked: 2022-04-12 08:08:47 +0800 CST

有没有办法删除插入的数据,反之亦然?

  • 3

我试图在同一个查询中插入数据,然后删除。

我正在尝试分块删除它,以免导致 LOG 问题:

DECLARE @BatchSize INT
SET @BatchSize = 100000

WHILE @BatchSize <> 0
BEGIN 
   
DELETE (@BatchSize) TABLE1 
WHERE   LogType = 'LOGTYPE'
AND     TABLE1.Id NOT IN (SELECT Id FROM TABLE2)
AND     TABLE1.Id IN     (SELECT Id FROM DifferentDB..TABLE3)
    
   SET @BatchSize = @@rowcount 
END

但是同样的查询,我想先在辅助数据库中插入数据,然后再删除。

是否可以在没有触发器的情况下实现?(插入,删除...)

我也愿意采用更好的分块删除方法,我只是凭记忆得到了那个。

sql-server t-sql
  • 1 个回答
  • 784 Views
Martin Hope
Racer SQL
Asked: 2022-03-12 07:00:11 +0800 CST

有没有办法为 UNIQUE NONCLUSTERED 索引添加 INCLUDE?

  • 3

我们有一个有 4 列的表(示例):

create TABLE [dbo].[myTable]
(
        [Id] BIGINT NOT NULL,
        [Id2] SMALLINT NOT NULL,
        [Id3] SMALLINT NOT NULL,
        [IdUnique] UNIQUEIDENTIFIER NOT NULL,
        [CreateDate] DATETIME NOT NULL,
        CONSTRAINT [PK_MyTable_Id_Id2_Id3] PRIMARY KEY CLUSTERED ([Id], [Id2], [Id3]),
        CONSTRAINT [UQ_MyTable_IdUnique] UNIQUE NONCLUSTERED ([IdUnique] ASC )  
)

这个想法是在 WHERE 中使用 IdUnique 来检索 ID、ID2 和 ID3:

在此处输入图像描述

但显然我们正在进行密钥查找。

如何在唯一非聚集索引上包含包含列?

我找不到与此相关的任何内容。

sql-server index
  • 2 个回答
  • 453 Views
Martin Hope
Racer SQL
Asked: 2021-12-17 09:03:57 +0800 CST

即使 SQL Server 无法为查询授予请求的内存,查询是否仍会运行?

  • 1

我今天正在考虑类似的事情,但我找不到这条信息。

当 SQL Server 请求内存而操作系统无法提供时,我们会得到RESOURCE_SEMAPHORE等待类型。

但我找不到如下信息:

  1. 假设查询要求 3GB。但是只能提供2,查询仍然运行缓慢,还是一直等待?

  2. RESOURCE_SEMAPHORE意味着查询处于“停止”状态,只是在等待内存?

  3. 未决的内存授予应始终为 0 对吗?这意味着查询正在请求多少内存但仍在等待,对吗?

我正在阅读Memory Grants:Microsoft 的神秘 SQL Server memory consumer with Many Names,但它没有解释这一点,它只是解释了 Memory grant 是什么。

sql-server memory
  • 1 个回答
  • 86 Views
Martin Hope
Racer SQL
Asked: 2021-12-11 06:28:35 +0800 CST

MySQL WorkBench 开发人员无法更改密码

  • 0

我正在尝试为 MySQL 创建用户,并允许他们更改密码:

在此处输入图像描述

但是当开发人员在 Workbench 上连接时,他们会收到一条消息:

Your password has expired. To log in you must change it using a client that supports expired passwords.

我试图找到答案,但没有成功。

如何使用此选项并让开发人员能够在 Workbench 上更改他们的密码?或者他们需要登录 Linux 吗?

mysql mysql-workbench
  • 1 个回答
  • 338 Views
Martin Hope
Racer SQL
Asked: 2021-12-10 11:26:19 +0800 CST

AOAG 是否需要 Windows 故障转移集群?

  • 0

我正在阅读一些关于 AOAG 的 Windows 文档,但我很困惑:

Always On 可用性组是 SQL Server 2012 (11.x) 中引入的高可用性和灾难恢复解决方案,需要 Windows Server 故障转移群集 (WSFC)。此外,尽管 Always On 可用性组不依赖于 SQL Server 故障转移群集,但您可以使用故障转移群集实例 (FCI) 来托管可用性组的可用性副本。了解每种群集技术的作用以及在设计 Always On 可用性组环境时需要注意哪些事项非常重要。

接着:

Windows Server 故障转移群集和可用性组 部署 Always On 可用性组需要 Windows Server 故障转移群集 (WSFC)。要为 Always On 可用性组启用,SQL Server 实例必须驻留在 WSFC 节点上,并且 WSFC 和节点必须在线。

我从来没有听说过没有 Windows 故障转移集群的 aoag。

是否可以在不属于 oa windows 集群的 2 台机器上安装 AOAG?

sql-server-2014 clustering
  • 1 个回答
  • 82 Views
Martin Hope
Racer SQL
Asked: 2021-10-01 13:31:13 +0800 CST

表上的 INSERT 被拒绝。但登录有权限

  • 2

我正在运行从数据库 X 到数据库 Y 的过程。

在数据库 Y 上应该有来自用户的插入。

在此处输入图像描述

在这张图片中,第一列是登录名,第二列是拥有所有必要权限的角色(它在我们需要的表上有 INSERT)。

登录名已正确分配给角色,并且该角色具有所有必要的权限。

但是当我执行该过程时,我收到了那些著名的错误:

Msg 229, Level 14, State 5, Procedure PROCEDURENAME, Line 165 [Batch Start Line 2]
The INSERT permission was denied on the object 'XXXXXXXXXXX', database 'DB', schema 'dbo'.
Msg 229, Level 14, State 5, Procedure PROCEDURENAME, Line 484 [Batch Start Line 2]
The INSERT permission was denied on the object 'YYYYYYYYYYYYYY', database 'DB', schema 'dbo'.
Msg 229, Level 14, State 5, Procedure PROCEDURENAME, Line 527 [Batch Start Line 2]
The INSERT permission was denied on the object 'YYYYYYYYYYYYYY', database 'DB', schema 'dbo'.
Msg 229, Level 14, State 5, Procedure PROCEDURENAME, Line 570 [Batch Start Line 2]
The INSERT permission was denied on the object 'YYYYYYYYYYYYYY', database 'DB', schema 'dbo'.

我创建了另一个测试登录,提供了完全相同的权限并且它工作。

如何找到阻止此登录的插入的内容?我什至跑了一个跟踪,看看我是否能找到更多的错误,在 eventviewer 上也没有。

登录没有明确的权限。它只是具有权限的角色的成员身份。

角色权限正确:

在此处输入图像描述

编辑:

自从重新创建 Windows 登录并重做所有权限以来,我尝试了一切。我注意到的是:

我可以创建一个登录名(使用密码的 sql 登录名)并且它有效。

我尝试使用原始 Windows 登录名在表中插入数据,但失败了,然后我将其从 ROLE 中删除并授予它 INSERT 权限,但它仍然失败。即使对数据库具有插入权限,它也无法插入数据。

permissions sql-server-2014
  • 2 个回答
  • 535 Views
Martin Hope
Racer SQL
Asked: 2021-09-10 09:32:50 +0800 CST

调 WHERE datediff

  • 0

我的查询运行有点慢,我认为这是因为该where datediff功能。

WHERE DateDiff(minute, TB1.stDate, getdate()) > 50

(使用这种方法至少是使用我创建的索引)

在此之前是这样的:

datediff(minute, TB1.stDate), '2017-01-01') <= 0)

我想了解是否有更好的方法来过滤 datediff。

我的问题是,我的查询是如何使用索引的,即使在DATEDIFF函数内部也是如此。

sql-server sql-server-2016
  • 2 个回答
  • 147 Views
Martin Hope
Racer SQL
Asked: 2021-05-20 06:45:18 +0800 CST

每月在第 16 天运行 SQL 作业。如果是周末,则在下一个工作日运行(不在乎是否是节假日)

  • 0

我需要每天运行一项工作 16。但如果是“星期六”或“星期日”,则必须在下一个工作日运行。

我不在乎是不是假期。我只需要运行它。

我可以做这样的事情并在步骤上分开它,并且只有在它运行没有错误时才传递到下一步:

--Step 1 - Verify if it is 16
IF  day(getdate()) <> 16
    RAISERROR ('Job runs only day 16.',16,1) 

--Step 2 - verify if its saturday of sunday
IF  DATEPART(weekday,getdate()) IN ( 7,1 )
    RAISERROR ('Job will run on the next business day.',16,1)

我将使用这些查询创建 2 个步骤,但这不起作用,因为假设下一个工作日是 18 日,第一步将引发错误。

有没有办法安排这样的事情?

sql-server-2012
  • 1 个回答
  • 128 Views
Martin Hope
Racer SQL
Asked: 2021-03-06 05:40:02 +0800 CST

找不到mysqldump的exe

  • 1

在专注于 sql server 6 年后,我刚刚学习 MYSQL(愚蠢的我)。

我正在研究那里的备份是如何工作的,但我找不到mysqldump执行备份的文件。在 DOS 上,它说该命令无法识别,我无法找到它在命令行中使用完整补丁。

它应该分开下载吗?

也因为我们在这里。使用 SQL Server,我们为备份创建了一个物理文件。如果我没记错的话,使用 MYSQL,我们创建一个 DUMP 文件,其中包含插入数据和再次创建对象的“命令”,对吗?

mysql mysqldump
  • 1 个回答
  • 1036 Views
Martin Hope
Racer SQL
Asked: 2021-01-09 06:20:40 +0800 CST

MongoDB 的 getdate() 等价物是什么?

  • 2

我有一个查询要在某些字段中更新和设置一些值。

Obut 现在我需要更新这些字段,此外,我需要设置DateOfModification为当前日期和时间。

sql server 中的 GETDATE() 等价于在 $set 中使用什么?

我试过这个:

db.col.updateMany({
     "field.field":"zzzzzzzz" 
},{$set:{
        "field2" : {
        "field3" : ObjectId("5d4dc2c2b3e6de001b934ec6"), 
        "field4" : "xxxxxxxxxxxxxxxxxxxxxxxxxx"
        },
        "DateOfModification: "$$NOW"
    }
}})

但似乎 $$NOW 仅适用于 mongoDB 4.2,我仍在使用 4.0

谢谢

编辑:

我尝试了 $currentDate 但仍然出现错误:

db.testeDBA.update(
        {},
          {$set: {"item":"anything",$currentDate: {"modifiedOn":true}}      
        })
        

'$currentDate' 中的美元 ($) 前缀字段 '$currentDate' 对存储无效。+

mongodb
  • 1 个回答
  • 478 Views
Martin Hope
Racer SQL
Asked: 2020-12-15 04:19:50 +0800 CST

是为 azure 数据库创建用户以使用 SQL 查询的唯一方法吗?

  • 0

Azure 数据库是包含数据库(对吗?),那么我需要使用它来创建用户:

CREATE USER UserName WITH PASSWORD = 'hardPass';
ALTER ROLE [db_owner] ADD MEMBER UserName ;

有没有办法通过门户网站做到这一点?我发现官方文档说添加用户的唯一方法是使用查询,但文档可能没有更新。

谢谢。

azure-sql-database
  • 1 个回答
  • 48 Views
Martin Hope
Racer SQL
Asked: 2020-10-08 04:03:18 +0800 CST

为什么 BCP 会创建这么大的文件?

  • 2

我正在通过 BCP 创建一些报告以通过电子邮件发送。

create TABLE ##tempsss
    (
        create TABLE ##JOB_DataAssociacao_verContrato
(
     F1        VARCHAR(6)  
    ,F2        VARCHAR(200)  
    ,F3        VARCHAR(22)  
    ,F4        char(1)    
    ,F5         varchar(10) 
    ,F6         varchar(15)
    ,F7         varchar(30)  
    ,F8          varchar(10)      
    ,F9          VARCHAR(18)  
)  --it needs to be varchar to be able to use header
    )
    
insert into  ##tempsss
SELECT 
...fields...     
FROM some table or view
go
-------------------------------------------------------------
--passo 2 --

exec xp_cmdshell 'bcp "select ''field1'',''field2'',''field3'' UNION ALL select * from table or view" queryout "filepath\filename.xls" -U sa -P password -w  -S servername'
-------------------------------------------------------------

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'dba profile or something',
    @recipients = 'recipients email',
    @subject = 'email subject',
    @file_attachments='path\filename.xls'
-------------------------------------------------------------

drop table ##tempsss

有 9k 行,我有一个 2mb 的文件。我只是复制这个文件的内容,然后粘贴到一个空的 excel 文件中,我有 160KB。

如何使用 bcp 但创建较小的文件?

我在通过 dbmail 发送超过 1mb 的文件时遇到了问题。

我将 dbmail 设置为发送 10mb+ 的文件。smtp 也可以。

sql-server sql-server-2012
  • 2 个回答
  • 368 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