Điều gì gây ra lỗi này: Không có bản sao nào được chỉ định cho nhóm khả dụng ag1 ánh xạ tới phiên bản SQL Server mà bạn được kết nối


7

Tôi đang định cấu hình Luôn bật cho SQL Server 2017 RC1 (14.0.80.90, ngày 2017-7-18) cho Linux theo https://docs.microsoft.com/en-us/sql/linux/sql-server-linux -sẵn có-nhóm-configure-ha . Cài đặt này đang sử dụng hình ảnh docker, tất cả trên cùng một máy chủ vật lý. Tất cả các bước đang hoạt động cho đến khi tôi đến bước:

CREATE AVAILABILITY GROUP [ag1]
    WITH (DB_FAILOVER = ON, CLUSTER_TYPE = EXTERNAL)
    FOR REPLICA ON
        N'always-onA' 
         WITH (
            ENDPOINT_URL = N'tcp://always-onA:5022',
            AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
            FAILOVER_MODE = EXTERNAL,
            SEEDING_MODE = AUTOMATIC
            ),
        N'always-onB' 
         WITH ( 
            ENDPOINT_URL = N'tcp://always-onB:5022', 
            AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
            FAILOVER_MODE = EXTERNAL,
            SEEDING_MODE = AUTOMATIC
            ),
        N'always-onC'
        WITH( 
           ENDPOINT_URL = N'tcp://always-onC:5022', 
           AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
           FAILOVER_MODE = EXTERNAL,
           SEEDING_MODE = AUTOMATIC
           );

Và tôi nhận được thông báo lỗi:

Msg 35237, Level 16, State 1, Line 2
None of the specified replicas for availability group ag1 maps to the instance of SQL Server to which you are connected. Reenter the command, specifying this server instance to host one of the replicas. This replica will be the initial primary replica. 

Tôi đã xem xét các ghi chú phát hành tại https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-release-notes để đảm bảo rằng không có vấn đề nào được biết và tính năng này cần được hỗ trợ tại thời điểm này.

Trong mỗi thùng chứa docker, các tên "always-onX" giải quyết:

>     root@5194403487fe:/# ping always-onA
>     PING always-onA (172.17.0.10): 56 data bytes
>     64 bytes from 172.17.0.10: icmp_seq=0 ttl=64 time=0.125 ms
>     ^C--- always-onA ping statistics ---
>     1 packets transmitted, 1 packets received, 0% packet loss
>     round-trip min/avg/max/stddev = 0.125/0.125/0.125/0.000 ms
>     root@5194403487fe:/# ping always-onB
>     PING always-onB (172.17.0.11): 56 data bytes
>     64 bytes from 172.17.0.11: icmp_seq=0 ttl=64 time=0.156 ms
>     ^C--- always-onB ping statistics ---
>     1 packets transmitted, 1 packets received, 0% packet loss
>     round-trip min/avg/max/stddev = 0.156/0.156/0.156/0.000 ms
>     root@5194403487fe:/# ping always-onC
>     PING always-onC (172.17.0.12): 56 data bytes
>     64 bytes from 172.17.0.12: icmp_seq=0 ttl=64 time=0.308 ms
>     ^C--- always-onC ping statistics ---
>     1 packets transmitted, 1 packets received, 0% packet loss
>     round-trip min/avg/max/stddev = 0.308/0.308/0.308/0.000 ms

SQL Server cũng đang lắng nghe cổng 5022 trên mỗi phiên bản (điều này hiển thị giống nhau cho tất cả các phiên bản):

# netstat -alnp | grep 5022
tcp        0      0 0.0.0.0:5022            0.0.0.0:*               LISTEN      9/sqlservr

Hơn nữa, không có IP bổ sung nào tồn tại trên hệ thống có thể gây nhầm lẫn:

# ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:ac:11:00:0a
          inet addr:172.17.0.10  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:acff:fe11:a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4058 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2016 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2771303 (2.7 MB)  TX bytes:241070 (241.0 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:470 errors:0 dropped:0 overruns:0 frame:0
          TX packets:470 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1870657 (1.8 MB)  TX bytes:1870657 (1.8 MB)

Các tên luôn luôn onA / B / C giải quyết cả trong tệp máy chủ cho hình ảnh docker, VÀ qua DNS, do đó, không nên có bất kỳ vấn đề nào ở đó:

# nslookup always-onA
Server:         192.168.1.1
Address:        192.168.1.1#53

Name:   always-onA
Address: 172.17.0.10

Và cuối cùng, nhật ký SQL Server cho thấy điểm cuối phản chiếu đang lắng nghe các kết nối:

# docker logs always-onA | tail -2
2017-07-23 16:53:27.76 spid56      Server is listening on [ 0.0.0.0 <ipv4> 5022].
2017-07-23 16:53:27.76 spid56      The Database Mirroring endpoint is now listening for connections.

Có vẻ như máy chủ SQL không thể xác định rõ ràng rằng một trong các nút cấu hình trong nhóm khả dụng thực tế là chính nó và do đó gặp lỗi, nhưng tôi không thấy cách nào để gỡ lỗi này. Tôi đã thử sử dụng cách sau thay vì tên "always-onA":

luôn luôn on 127.0.0.1 localhost 0.0.0.0

Lỗi luôn luôn như vậy. Tìm kiếm bất kỳ suy nghĩ về cách giải quyết vấn đề này.

Câu trả lời:


8

Đã giải quyết: Vấn đề là khi tạo nhóm khả dụng, bộ xác định nút, tức là N'name'cần sử dụng tên CHÍNH XÁC được trả về theo "hostname"lệnh. Sử dụng bất kỳ định danh nào khác, ngay cả khi nó phân giải đúng IP, dường như không hoạt động.


Tôi đã thử giải pháp này và nó đã làm việc. nhưng khi tôi cố gắng để tham gia các bản sao thứ yếu so với nhóm sẵn có tôi nhận được một lỗi: Msg 47.106 ,Level 16, Cannot join availability group <ag1>. Download configuration timeout. Please check primary configuration, network connectivity and firewall setup, then retry the operation.
Parnab Sanyal

@ParnabSanyal Nếu bạn đang gặp một vấn đề khác, vui lòng hỏi nó như một câu hỏi riêng biệt.
LowlyDBA

0

Trong trường hợp của tôi là tên của nhóm khả dụng, nó đã bị cắt vì nó rất dài.


marcello miorelli Đây là một trường hợp khác có thể xảy ra với cùng một lỗi mà OP đã đăng, Đây không phải là một câu hỏi khác, là nguyên nhân có thể gây ra lỗi ...
Novo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.