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

Alf47's questions

Martin Hope
Alf47
Asked: 2018-06-22 12:53:57 +0800 CST

具有手动播种的分布式可用性组

  • 11

我正在逐步了解如何使用手动播种设置分布式可用性组。我可以让自动播种工作,但是当我尝试手动播种时,我无法将辅助数据库放入转发器上的 AG。

如果我在尝试将数据库添加到常规 AG 之前将分布式 AG 添加到辅助服务器,则会收到以下消息:

Msg 41190, Level 16, State 7, Line 22
Availability group 'MYDB' failed to process add-database command.  The local availability replica is not in a state that could process the command.  Verify that the availability group is online and that the local availability replica is the primary replica, then retry the command. 

如果我尝试先添加数据库而不加入辅助数据库上的分布式 AG,我会收到以下消息,因为它认为它应该是主数据库:

Msg 927, Level 14, State 2, Line 22
Database 'MYDB' cannot be opened. It is in the middle of a restore.

自动播种我没有这些问题。一切都神奇地起作用。我在网上找到的所有示例都使用自动播种。

提前致谢

sql-server sql-server-2017
  • 2 个回答
  • 3185 Views
Martin Hope
Alf47
Asked: 2017-03-04 08:47:36 +0800 CST

使用 CHECKPOINT 与 GO

  • 5

通常,当其中一位开发人员或数据分析师需要执行非常大的数据更新或删除时(由于要保留的数据集太大,截断或截断/插入没有意义)我建议他们这样做类似于以下内容:

-- Delete 1 million rows 1 thousand at a time
DELETE TOP (1000) FROM TableA WHERE <condition>
WAITFOR DELAY '00:00:01'
GO 1000

对于处于完全恢复模式的数据库,这样做的结果是 1) 等待允许其他事务在需要时进行处理,以及 2) 当日志备份运行时,它能够在日志文件中将已经完成的操作标记为脏操作,因此它可以重新使用空间并防止日志增长过快。

我不想这样做,而是想知道是否有可能使用检查点来完成同样的事情。该声明是否会有效地导致相同情况的发生?

-- Delete 1 million rows 1 thousand at a time
WHILE EXISTS ( SELECT 1 FROM TableA WHERE <condition> )
BEGIN
DELETE TOP (1000) FROM TableA WHERE <condition>
WAITFOR DELAY '00:00:01'
CHECKPOINT
END

同样,这些是完全恢复模式下的数据库。

sql-server delete
  • 2 个回答
  • 1064 Views
Martin Hope
Alf47
Asked: 2017-02-09 10:27:21 +0800 CST

需要帮助寻找 sys.sysprocesses 的替代品

  • 4

SQL 2016 数据迁移助手(升级顾问)说我需要停止使用旧的系统表引用。也就是说,它希望我停止使用 sysdatabases 和 sysprocesses。

我有一些代码根据来自 sysprocesses 的数据记录会话信息。该日志中包含 spid (session_id) 的数据库 ID。

我一直在网上搜索,发现只有两个可能的替代品,由于下面解释的原因,这两个都不能完全工作。

选项 1 (sys.dm_tran_locks) - 如果我链接回 sys.dm_exec_sessions,此选项似乎工作得相当可靠,但我注意到如果 session_id 的数据库上下文是 master 或 tempdb,它永远不会返回结果。这意味着我将无法可靠地获取使用 master 或 tempdb 的任何 session_id 的 resource_database_id。我也不能只是假设它,因为至少有两种可能的上下文可供选择。

选项 2 (sys.dm_exec_requests) - 此选项仅适用于正在运行的 session_id。空闲/暂停的 session_id 不会出现在列表中。

如果我无法获得已挂起和/或正在使用主数据库上下文的 session_id 的 dbid,那么我的日志中就会出现空白。

有没有其他方法可以在不使用 sys.sysprocesses 的情况下可靠地获取此信息?

sql-server migration
  • 2 个回答
  • 2518 Views
Martin Hope
Alf47
Asked: 2017-01-28 06:55:54 +0800 CST

SQL Server 标准版的 2 节点群集限制是如何实施的?

  • 3

我知道Books Online 说标准版只支持 2 个节点,但这实际上是如何执行的?

会不会:

  1. 不允许您在具有 2 个以上节点的集群上安装新实例?
  2. 不允许您将第三个节点添加到至少具有 1 个 SQL Server 标准版实例的故障转移群集?
  3. 不允许您为资源组/集群角色选择超过 2 个可能的所有者?

或者它会以其他方式表现吗?

我很好奇,因为其中一位管理员想将现有集群从 2 个节点扩展到 3 个节点,但它上面有 2 个标准版 SQL Server 实例,所以我不知道会发生什么。

该集群具有在 Windows 2008 R2 上运行的 SQL 2008 R2 和 SQL 2012 实例。

sql-server sql-server-2008-r2
  • 2 个回答
  • 6003 Views
Martin Hope
Alf47
Asked: 2013-08-27 12:16:10 +0800 CST

需要帮助从 SQL Server 代理执行远程任务

  • 2

通过 Windows 任务计划程序在批处理服务器上运行的计划任务有时会与 SQL Server 代理中的其他计划作业重叠,从而导致 CPU 问题。如果我们可以让 SQL Server 代理在远程服务器上执行 .exe 以确保计划永远不会冲突,我们就可以解决这个问题。

有没有办法用 SQL Server 代理来做到这一点,也许用 Powershell 命令?如果是这样,你能给我步骤吗?

远程服务器上的 .exe 是 SQL 的数据导入器。它是一个独立的.exe。我们希望它在批处理服务器上运行,这样它就不会导致数据库服务器上的资源争用。我们正在运行 SQL 2008 R2 Enterprise。

如果需要任何其他信息来回答这个问题,请告诉我。

sql-server-2008-r2 sql-server-agent
  • 1 个回答
  • 4823 Views
Martin Hope
Alf47
Asked: 2012-10-18 07:13:54 +0800 CST

这两个查询在逻辑上是等价的吗?

  • 11

这两个查询在逻辑上是等价的吗?

DECLARE @DateTime DATETIME = GETDATE()

查询 1

SELECT *
FROM   MyTable
WHERE  Datediff(DAY, LogInsertTime, @DateTime) > 7   

查询 2

SELECT *
FROM   MyTable
WHERE  LogInsertTime < @DateTime - 7 

如果它们在逻辑上不等价,你能给我第一个查询的逻辑等价物,以便 WHERE 子句可以有效地使用索引(即消除函数包装)吗?

sql-server query
  • 3 个回答
  • 720 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