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

Elijah W. Gagne's questions

Martin Hope
Elijah W. Gagne
Asked: 2015-08-07 13:13:22 +0800 CST

字符集中的 Oracle regexp_like 方括号

  • 3

这个问题是关于 Oracle、pl/sql 和 regexp_like 函数的。

我正在尝试构建一个匹配所有典型特殊字符的字符集。我的字符集目前看起来像:

pattern := '[-~`!@#$%^&*\(\)\\{}_+=|''";:,./?]+';

我想将方括号添加到此字符集中,但是,无论我尝试添加 ']' 都不起作用。这是一个说明问题的简单示例:

select
  case when regexp_like('w]ord', '[\]]+') then 'true'
  else 'false' end
from dual;

这将返回 false,这意味着它与 ']' 字符不匹配。奇怪的是,我可以让 '[' 字符匹配,因为它返回 true:

select
  case when regexp_like('w[ord', '[\[]+') then 'true'
  else 'false' end
from dual;
oracle plsql
  • 2 个回答
  • 8634 Views
Martin Hope
Elijah W. Gagne
Asked: 2014-03-06 13:17:43 +0800 CST

SQL Server 2012 + SQL Server 2008R2 在同一个虚拟机上

  • 2

我无法立即找到对它的引用,但我记得在某处读到最好不要在同一台主机上混合使用 SQL Server 的多个版本。我相信原因是经常需要安装 (Windows) 修补程序,尤其是对于集群,这些修补程序可能会以意想不到的方式影响不同版本的 SQL Server。

但是,Microsoft 似乎支持 SQL Server 的混合版本。

我试过对此进行搜索,但很难找到明确的消息来源告诉我可以混合使用 SQL Server 的多个版本。

任何人都可以明确地说混合版本是可以的,或者可以提供强有力的证据来说明为什么不应该这样做吗?

sql-server
  • 1 个回答
  • 51 Views
Martin Hope
Elijah W. Gagne
Asked: 2014-03-06 13:04:57 +0800 CST

SQL Server:具有不相交存储的多个故障转移群集实例

  • 1

这适用于 SQL Server 2012。我目前有两个具有独立 SAN 的数据中心。我使用故障转移集群实例 (FCI) 实现服务器冗余,然后使用 AlwaysOn 可用性组 (AG) 实现数据中心冗余。这是它的样子:

在此处输入图像描述

问题是我想在两个数据中心都使用 FCI,如下所示:

在此处输入图像描述

当我们尝试为 Nodes3&4 添加存储时,我们不能,因为存储不与 Nodes1&2 共享。在将存储添加到故障转移群集中它说:

该磁盘必须对集群中的所有节点都可用,然后才能将其添加到集群的存储集。

据我了解,Nodes1、2、3、4 必须都在同一个 Windows 故障转移群集中才能使用 AG。然而,这个要求似乎阻止了我们在两个数据中心中设置 FCI。

有什么办法可以让我的蛋糕吃到吗?

sql-server sql-server-2012
  • 1 个回答
  • 2271 Views
Martin Hope
Elijah W. Gagne
Asked: 2013-10-29 10:43:21 +0800 CST

为什么长时间运行的查询会保持睡眠状态并且 wait_info 为空

  • 4

以下查询在 SQL Server 2008 R2 上运行,运行时间超过 1 小时:

select log_id, type, instance_id from ts_cache_log where log_id > 146400 order by log_id

它产生了 0 行返回。我知道这一点,因为我将数据库恢复到查询开始运行并重新运行查询的时间点。当我这样做时,查询运行得非常快(不到 1 秒)。

在此查询运行了一个多小时后,sp_WhoIsActive每 5 分钟通过 SQL 代理作业启动一次,并将详细信息记录到表中。下图(您应该可以下载并放大查看)显示了当时正在运行的内容。

sp_WhoIsActive 详细信息

长时间运行的查询以绿色突出显示。wait_info 列为空,并且 sleep_status 始终处于睡眠状态。

知道为什么这个查询需要这么长时间才能运行和/或对我可以做些什么来进一步排除故障有任何想法吗?

sql-server performance
  • 2 个回答
  • 6716 Views
Martin Hope
Elijah W. Gagne
Asked: 2013-09-25 09:11:40 +0800 CST

dcexec 登录失败

  • 1

我有一个 SQL Server 2008 R2 实例,我一直在尝试设置数据收集。我得到了一切设置,但没有数据被上传。我已经追踪到问题的根源是它调用 dcexec 的 SQL 代理作业中的故障。

将其隔离出来,我可以通过运行重现该问题:

& "D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\dcexec.exe" -c -s 1 -i "localhost\MSSQLSERVER" -m 1

我从使用RunAs Administrator打开的 PowerShell 窗口运行上述命令。我在上面运行的帐户是一个域帐户,它是服务器上的本地管理员。此外,该帐户还具有 SQL 实例的sysadmin角色。

我得到的错误是:

SSIS error. Component name: GenerateTSQLPackageTask, Code: -1073548540, 
Subcomponent: Generate T-SQL Package Task, 
Description: An error occurred with the following error message: 
"An error occurred while verifying the result set schema against the output table schema. 
The data collector cannot connect to the management data warehouse. : Login failed.
The login is from an untrusted domain and cannot be used with Windows authentication."..

The master package exited with error, previous error messages should explain the cause.

这与我在 SQL Server 代理作业的历史记录中看到的错误相同。

请注意,如果我使用错误的实例名称执行 dcexec,例如:

& "D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\dcexec.exe" -c -s 1 -i "localhost\MSSQLSERVER1" -m 1

然后,正如预期的那样,我得到了一个不同的错误:

Failed to get the SQL server instance id from the given instance name.

关于如何使用 dcexec 成功登录 SQL 实例的任何想法?

sql-server sql-server-2008-r2
  • 1 个回答
  • 1915 Views
Martin Hope
Elijah W. Gagne
Asked: 2013-07-27 13:56:22 +0800 CST

AlwaysOn AG,带故障转移的 DTC

  • 14

问题:如何在 AlwaysOn 可用性组 (AG) 中的所有服务器上运行分布式事务协调器 (DTC)?我不需要维护故障转移/切换事件的事务。

设置:我有一个带有三台 Windows 2008 R2 服务器的 Windows 故障转移集群 (WSFC),它们都在运行 SQL 2012。两台服务器位于一个数据中心,是 AlwaysOn 故障转移集群 (FCI) 的一部分,而第三台服务器在第二个数据中心。WSFC 是一个多子网集群。这是设置的草图: 在此处输入图像描述

我已经能够安装和配置 DTC 以在两个 FCI 节点之间工作,因为它们位于同一子网并共享存储。我已经配置了几个 AG,它们运行良好。此屏幕截图显示 FCI 上安装的 DTC:

在此处输入图像描述

此屏幕截图显示我可以在 FCI 节点之一上配置 DTC(无论哪个处于活动状态): 在此处输入图像描述

我想将使用 DTC 的应用程序迁移到此集群并使用 AG。我读过 AG(参考)不支持 DTC。我一直无法找到在第二个数据中心的第三个节点上配置 DTC 的方法。当我尝试在第三个节点上配置 DTC 时,它似乎不可用,如下图所示:

在此处输入图像描述

在 Brent Ozar 的可用性组免费设置清单 PDF中,他列出了:

集群安装...

29. 如果涉及 FCI,请根据规划部分的决定配置 DTC。

在关于SQL Server 2012 AlwaysOn 可用性组的评论中,Rock Brent 说:“......当 AG 运行时没有任何变化。请记住,当故障转移到另一个副本时,可用性组中的数据库不支持事务一致性。 ..”

这使得 DTC 似乎可以在可用性组中使用,只要您了解事务不会在 AG 切换中维护。我不需要它来维护来自 FCI 节点的事务。我只需要 DTC 可供应用程序在发生灾难性灾难(我失去了我的主数据中心)的情况下使用。

如何在我的第三个节点上配置 DTC?或者,是不是我在使用 AG 和需要 DTC 的应用程序时运气不好?

更新:我确定的解决方案是使用日志传送。但是,在故障转移的情况下,我仍然需要在 Node3 上提供 DTC。我发现它可以通过卸载在 Node1 和 Node2 之间共享的 DTC 的群集 MSDTC-MSSQLSERVERCLU 实例来使用。删除后,我可以在 Node3 上设置和配置 LocalDTC 实例。之后,我可以重新安装群集 MSDTC-MSSQLSERVERCLU 实例。按该顺序执行安装顺序似乎有效。我已经这样跑了一段时间了,我还没有发现任何不良影响。这似乎也适用于运行 AlwaysOn 可用性组。我知道分布式事务不会在 AG 故障转移中保留,我只需要新的事务在故障转移后工作。但我没有

sql-server availability-groups
  • 1 个回答
  • 7208 Views
Martin Hope
Elijah W. Gagne
Asked: 2013-04-26 06:35:41 +0800 CST

如何更改 SQL Server 2012 可用性组 DNS 子域?

  • 7

问题:我怎样才能让我的可用性组注册为ag-ewgtest.sql.company.com我的服务器认为自己是server.company.com。

设置:我的 SQL Server 2012 可用性组位于多个子网上,类似于此 MSDN 博客文章中所述的内容。当我进入故障转移集群管理器时,它显示名称解析尚不可用:

在此处输入图像描述

然后我右键单击“名称:ag-ewgtest”并选择属性。我勾选“发布 PTR 记录”,它显示全名是ag-ewgtest.company.com.

在此处输入图像描述

我遇到的问题是我只被允许更新 DNS zone sql.company.com。如果我将 DNS 名称更改为,ag-ewgtest.sql.company.com则全名变为ag-ewgtest.sql.company.com.company.com.

我尝试将我的 NIC 更新为:

在此处输入图像描述

但并没有什么不同。如何更改我的可用性组尝试在其中注册的子域?

sql-server sql-server-2012
  • 2 个回答
  • 8894 Views
Martin Hope
Elijah W. Gagne
Asked: 2013-04-25 12:16:53 +0800 CST

使用 SMO 收缩日志文件

  • 2

我知道我可以使用以下 t-SQL 来缩小日志文件:

BACKUP LOG db1 TO DISK = '\\server\share\db1_log1.trn';
DBCC ShrinkFile([db1_log], 0);

我如何对 SMO 做同样的事情?我试过了:

$server = new-Object Microsoft.SqlServer.Management.Smo.Server()

$dbBackup = new-object Microsoft.SqlServer.Management.Smo.Backup
$dbBackup.Action = "Log"
$dbBackup.Database = "db1"
$dbBackup.Devices.AddDevice("\\server\share\db1_log1.trn", "File")
$dbBackup.SqlBackup($server)

$db = $srv.Databases.Item("db1")
$db.TruncateLog()

但是在这里,我发现 TruncateLog() 方法不适用于高于 SQL 2005 的任何内容。该链接建议使用:

$db.RecoveryModel = RecoveryModel.Simple
$db.Alter()
$db.LogFiles[0].Shrink(0, ShrinkMethod.TruncateOnly)

但是,切换到简单恢复模式会破坏我的日志链,我不想这样做。缩小日志文件不会破坏我的日志链,所以我正在寻找一种等效的 SMO 方法来做到这一点。这样的方法存在吗?

sql-server backup
  • 2 个回答
  • 6143 Views
Martin Hope
Elijah W. Gagne
Asked: 2013-04-25 12:02:52 +0800 CST

如何最好地维护 SQL 日志文件大小

  • 13

我有点像一个新的 DBA,我正在管理一个有大量活动的 SQL Server 2012 实例。我在完全恢复模式下运行,因为我们需要时间点恢复。

现在,我每天早上 5 点对数据库和日志进行完整备份。一些日志文件已经膨胀到 300gb,即使在进行备份后,它们的大小也不会减小。我可以通过运行类似于以下内容来减小它们的大小:

BACKUP LOG db1 TO DISK = '\\server\share\db1_log1.trn';
DBCC ShrinkFile([db1_log], 0);

BACKUP LOG db1 TO DISK = '\\server\share\db1_log2.trn';
DBCC ShrinkFile([db1_log], 0);

BACKUP LOG db1 TO DISK = '\\server\share\db1_log3.trn';
DBCC ShrinkFile([db1_log], 0);

当我检查备份文件的 LSN 时,我看到如下内容:

RESTORE headeronly FROM DISK = N'\\server\share\db1_log1.trn'
FirstLSN:  15781000014686200001
SecondLSN: 15802000000665000001

RESTORE headeronly FROM DISK = N'\\server\share\db1_log2.trn'
FirstLSN:  15802000000665000001
SecondLSN: 15805000000004100001

RESTORE headeronly FROM DISK = N'\\server\share\db1_log3.trn'
FirstLSN:  15805000000004100001
SecondLSN: 15808000000004200001

我不相信我会通过缩小日志文件来破坏我的日志链。阅读此内容后,我确实相信我正在损害我的表现,因为那些缩小的日志文件必须重新增长自己。

问题:

  1. 为什么备份后日志文件没有缩小?是因为有未提交的交易吗?
  2. 起初我想我应该在每 5:00 AM 备份后缩小日志文件。在阅读了这对性能有何不利影响后,我现在认为我需要在一天中每隔几个小时定期进行一次日志备份。那是对的吗?
  3. 我每天早上 5:00 对数据库/日志进行正常的完整备份,有时需要 3 个小时。如果我将日志备份安排为每小时发生一次,那么当日志备份与 5:00 AM 备份冲突时会发生什么?
sql-server sql-server-2012
  • 3 个回答
  • 17340 Views
Martin Hope
Elijah W. Gagne
Asked: 2013-04-25 06:45:40 +0800 CST

SQLPlus:Cmd 与 PowerShell

  • 0

从 cmd.exe,当我运行时:

C:\oracle\client\BIN\sqlplus.exe username@server

然后输入我的密码,我进入。但是,如果我从 PowerShell 运行相同的命令并输入相同的密码,我会得到:

ERROR:
ORA-01017: invalid username/password; logon denied

在搜索了一下并确保我输入的密码正确之后,我仍然无法弄清楚为什么 SQLPlus 不能从 PowerShell 中为我工作。我错过了什么?

oracle sqlplus
  • 1 个回答
  • 3053 Views
Martin Hope
Elijah W. Gagne
Asked: 2013-04-17 06:02:11 +0800 CST

SQL Server 2012,网络:AlwaysOn 可用性组与 AlwaysOn AlwaysOn 故障转移群集实例

  • 3

设置:我有两个数据中心。在我的主站点 site1 中,我想部署一个 AlwaysOn 故障转移集群实例 (FCI)。在我的数据恢复站点 site2 中,我想部署一个单节点 SQL 实例。然后,我想使用 AlwaysOn 可用性组 (AG) 在站点 1 和站点 2 之间复制数据。

我阅读了很多博客文章和 TechNet 文章。我很清楚,具有 FCI 成员 [1] 的 AG 不支持自动故障转移。同样清楚的是,FCI 支持多个子网上的节点 [2]。显然,这是通过更新 DNS 中的虚拟网络名称 (VNN) 来实现的。

问题:AG 是否支持多个子网,还是我需要在站点 1 和站点 2 之间建立跨接子网?我无法找到任何明确说明这一点的来源。

参考资料:

[1] 故障转移群集和 AlwaysOn 可用性组 (SQL Server) http://msdn.microsoft.com/en-us/library/ff929171.aspx

[2] AlwaysOn 故障转移群集实例 (SQL Server) http://msdn.microsoft.com/en-us/library/ms189134.aspx

sql-server sql-server-2012
  • 1 个回答
  • 1958 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