Sql server SQL 2014 HA群集上的内存中表在辅助节点上不可查询
我在SQL 2014上的高可用性组数据库上设置了一个简单的内存表。 直接从主节点或从侦听器查询表可以正常工作。 如果我将查询字符串更改为ReadOnly Intent,或尝试直接从2个辅助节点中的任何一个进行查询,则会出现以下错误:-Sql server SQL 2014 HA群集上的内存中表在辅助节点上不可查询,sql-server,sql-server-2014,alwayson,in-memory-tables,Sql Server,Sql Server 2014,Alwayson,In Memory Tables,我在SQL 2014上的高可用性组数据库上设置了一个简单的内存表。 直接从主节点或从侦听器查询表可以正常工作。 如果我将查询字符串更改为ReadOnly Intent,或尝试直接从2个辅助节点中的任何一个进行查询,则会出现以下错误:- Msg 41341,16级,状态1,第1行 表“tbl_GetMakes”在辅助副本上尚不可用。 网上关于这条消息的信息很少。它说当“重做”过程发生时,它会被正确地复制。据我所知,“重做”过程应该是自动的,表已经放置了24个多小时,仍然不能工作。 有什么想法吗?
Msg 41341,16级,状态1,第1行
表“tbl_GetMakes”在辅助副本上尚不可用。
网上关于这条消息的信息很少。它说当“重做”过程发生时,它会被正确地复制。据我所知,“重做”过程应该是自动的,表已经放置了24个多小时,仍然不能工作。
有什么想法吗?
谢谢
乔恩感谢肖恩·加拉迪在微软论坛上回答了这个问题 我已从以下链接复制了答案:- 这是不正确的,它们完全可以从可读的辅助设备读取,假设: 内存中的表是使用耐久性=schema_和_数据创建的 检查点已在主服务器上运行 使用适当的隔离级别 我可以很容易地让它工作,这里有一个复制: 1.在主服务器上创建数据库并放入AG
CREATE DATABASE [Test1]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'Test1',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Test1.mdf' ,
SIZE = 4096KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ),
FILEGROUP [IMOLTP] CONTAINS MEMORY_OPTIMIZED_DATA DEFAULT
( NAME = N'imoltp_dir',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\imoltp_dir' ,
MAXSIZE = UNLIMITED)
LOG ON
( NAME = N'Test1_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Test1_log.ldf' , SIZE = 1280KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
-Sean奇怪,在初始同步期间是否存在该表?您是否能够在sys.tables中看到该表?是否可以在sys.tables中看到该表。我取出了一个现有的常规表,并将其替换为内存中的表。当我这样做时,数据库已经在HA组中。您的编辑使此答案不太有用,因为它现在实际上是一个仅链接的答案。答案可以链接到资源,但它们本身应该是有用的,无论它们链接到的站点当前是否可用。