我们目前遇到 SQL Server 迁移问题。有一个旧产品,由于各种原因,我们不想更改连接字符串。因此,我们希望保留现有的 Listener 名称。
我的问题是,是否可以为 AG 侦听器名称创建一个或多个 CNAME 别名?这样做有什么危险吗?
我们目前遇到 SQL Server 迁移问题。有一个旧产品,由于各种原因,我们不想更改连接字符串。因此,我们希望保留现有的 Listener 名称。
我的问题是,是否可以为 AG 侦听器名称创建一个或多个 CNAME 别名?这样做有什么危险吗?
几分钟前,我的 prod 数据库遇到了一个奇怪的情况。我有带简单恢复模型的 db X。SCOM 提醒我日志磁盘空间不足。然后我检查了磁盘,发现 db X 的日志文件是 11 Gb,尽管数据文件是 300 Mb 并且恢复模型很简单。
然后我检查了DBCC OPENTRAN但没有打开的事务,无论是在数据库上还是在服务器上。
然后我尝试缩小日志文件,但是它说没有空的空间。我检查了log_reuse_wait_type列,它是LOG_BACKUP。我知道,根据定义,应该不可能看到使用 SIMPLE 恢复模型的数据库的等待类型,但确实存在。我仔细检查了上面提到的所有步骤,没有任何改变。然后我将 db X 的恢复模型更改为 FULL 并将其设置回 SIMPLE。之后log_reuse_wait_type报告为NOTHING。
最后我解决了问题,但仍然想知道为什么会这样。有没有人遇到过类似的问题?
我创建了一个扩展事件来将所有成功登录记录到我的产品服务器中。正如您猜到的那样,一秒钟内有数百个连接出现,所以我只需要根据它是否是缓存连接来过滤其中的一些连接。我无法在登录事件的 is_cached 属性上创建过滤器。我已经通过 [sqlserver].[client_app_name] 属性进行了过滤。当我观看实时数据时,顺便说一句,我可以根据 is_cached 属性进行过滤。
这是事件的脚本:
CREATE EVENT SESSION deneme ON SERVER
ADD EVENT sqlserver.login( ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.username)
WHERE ([sqlserver].[client_app_name]<>N'Microsoft SQL Server Management Studio - Transact-SQL IntelliSense')
ADD TARGET package0.event_file(SET filename=N'D:\_VTY\LastLoginAudits\audit_logon.xel')
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
我尝试像这样在 where 子句中添加一个谓词,但它没有用:
WHERE ([sqlserver].[client_app_name]<>N'Microsoft SQL Server Management Studio - Transact-SQL IntelliSense')
AND [sqlserver].[is_dac]<>N'True')
提前致谢。