Я пытаюсь запустить SQL на связанном сервере, но я получаю ошибки.
BEGIN DISTRIBUTED TRANSACTION
SELECT TOP 1 * FROM Sessions
OLE DB provider "SQLNCLI" for linked server "ASILIVE" returned message "No transaction is active.".
Msg 7391, Level 16, State 2, Line 3
The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "ASILIVE" was unable to begin a distributed transaction.
Поставщик возвращает две ошибки:
Ошибка #1:
Number: $80040E14
Source: Microsoft OLE DB Provider for SQL Server
Description: OLE DB provider "SQLNCLI" for linked server "ASILIVE" returned message "No transaction is active.".
HelpFile:
HelpContext: $00000000
SQLState: 01000
NativeError: 7412
Ошибка № 2
Number: $80040E14
Source: Microsoft OLE DB Provider for SQL Server
Description: The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "ASILIVE" was unable to begin a distributed transaction.
HelpFile:
HelpContext: $00000000
SQLState: 42000
NativeError: 7391
Как заставить Microsoft отдать предпочтение функциональности над безопасностью?
Илипо крайней мере, как я могу заставить два сервера SQL общаться друг с другом?
Вопросы, связанные с этим
То, что я выполнил , не имеет значения, но я все равно опубликую это.
Убедитесь, что служба Distributed Transaction Coordinator
запущенана обеих машинах:
Отключить все средства защиты MSDTC на обеих машинах:
Включение случайных опций на связанном сервере:
Проклят и выругался.
Разбитые вещи.
Проверено, что SELECT
может использовать связанныйсервер :
SELECT * FROM ASILive.CustomerManagementSystem.dbo.Users
....
(763 row(s) affected)
Проверено, что клиентский сервер может ping
удаленный сервер :
C:\Documents and Settings\avatar>ping asicmstest.contoso.com
Pinging asicmstest.contoso.com [10.0.0.40] with 32 bytes of data:
Reply from 10.0.0.40: bytes=32 time<1ms TTL=128
Reply from 10.0.0.40: bytes=32 time<1ms TTL=128
Reply from 10.0.0.40: bytes=32 time<1ms TTL=128
Reply from 10.0.0.40: bytes=32 time<1ms TTL=128
Ping statistics for 10.0.0.40:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
Проверено, что удаленный сервер может отправлять сообщения по имени на инициирующий сервер:
C:\Documents and Settings\avatar>ping asitestserver.contoso.com
Pinging asitestserver.contoso.com [10.0.0.22] with 32 bytes of data:
Reply from 10.0.0.22: bytes=32 time<1ms TTL=128
Reply from 10.0.0.22: bytes=32 time<1ms TTL=128
Reply from 10.0.0.22: bytes=32 time<1ms TTL=128
Reply from 10.0.0.22: bytes=32 time<1ms TTL=128
Ping statistics for 10.0.0.22:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
Проверено, что @@SERVERNAME
соответствует имени сервера на обоих серверах:
SELECT @@SERVERNAME, SERVERPROPERTY('MachineName')
------------- -------------
ASITESTSERVER ASITESTSERVER
и
SELECT @@SERVERNAME, SERVERPROPERTY('MachineName')
---------- ----------
ASIGROBTEST ASIGROBTEST
Кричать
Выдано SET XACT_ABORT ON
довыдача запроса :
SET XACT_ABORT ON
GO
BEGIN DISTRIBUTED TRANSACTION
SELECT TOP 1 * FROM Sessions
Предоставлено Everyone
Full Control
до :
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer
на обоих серверах.