Tôi đang cố gắng chạy SQL với một máy chủ được liên kết, nhưng tôi gặp các lỗi bên dưới:
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.
Có hai lỗi do nhà cung cấp trả về:
Lỗi # 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
Lỗi # 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
Làm cách nào để Microsoft ưu tiên chức năng hơn bảo mật?
Hoặc, ít nhất, làm thế nào tôi có thể có được hai Máy chủ SQL nói chuyện với nhau?
Câu hỏi liên quan
- Không thể thực hiện thao tác vì nhà cung cấp OLE DB “SQLNCLI10” ... (* tên máy chủ được liên kết là
(null)
) - Lỗi giao dịch phân tán? ( sử dụng nhà cung cấp Oracle )
- Không thể tham gia giao dịch phân tán với NHibernate ( sử dụng Hibernate )
- Lỗi khi sử dụng giao dịch phân tán trong SQL Server 2008 R2 ( SQL Server 2008 R2, không có câu trả lời )
- Lỗi giao dịch phân tán chỉ thông qua mã ( gây ra bởi kết nối tổng hợp )
- Lỗi thực hiện điều phối giao dịch phân tán trong máy chủ được liên kết ( SQL Server 2008, không có câu trả lời )
- Lỗi giao dịch phân tán? ( không có câu trả lời được chấp nhận; chỉ câu trả lời không giúp ích )
- Làm thế nào để Chèn vào bảng từ xa bằng Máy chủ được liên kết với Giao dịch? ( câu trả lời được chấp nhận không giải quyết được )
Những gì tôi đã làm không liên quan, nhưng tôi sẽ đăng nó.
Đảm bảo
Distributed Transaction Coordinator
dịch vụ đang chạy trên cả hai máy:Tắt tất cả bảo mật MSDTC trên cả hai máy:
Bật các tùy chọn ngẫu nhiên trên máy chủ được liên kết:
Bị nguyền rủa và thề thốt.
Đập nát đồ đạc.
Kiểm tra rằng a
SELECT
có thể sử dụng máy chủ được liên kết :SELECT * FROM ASILive.CustomerManagementSystem.dbo.Users .... (763 row(s) affected)
Đã kiểm tra xem máy chủ khách có thể
ping
là máy chủ từ xa :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
Kiểm tra để đảm bảo rằng máy chủ từ xa có thể liên lạc lại, theo tên, với máy chủ khởi tạo:
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
Đã kiểm tra
@@SERVERNAME
khớp với tên máy chủ trên cả hai máy chủ :SELECT @@SERVERNAME, SERVERPROPERTY('MachineName') ------------- ------------- ASITESTSERVER ASITESTSERVER
và
SELECT @@SERVERNAME, SERVERPROPERTY('MachineName') ---------- ---------- ASIGROBTEST ASIGROBTEST
La hét
Được cấp
SET XACT_ABORT ON
trước khi đưa ra truy vấn của tôi :SET XACT_ABORT ON GO BEGIN DISTRIBUTED TRANSACTION SELECT TOP 1 * FROM Sessions
Đã cấp
Everyone
Full Control
cho :HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer
trên cả hai máy chủ.