Khi nào thì một Dynamic Dynamic Video Dynamic động?


23

Hôm nay tôi đã có một cuộc thảo luận Dynamic Portsvới một trong những đồng nghiệp của mình và có thể sử dụng một số trợ giúp để làm rõ cách họ làm việc.

Câu hỏi đầu tiên: Nếu IPALL TCP Dynmaic Portscài đặt là một số cụ thể (giả sử năm 1971) thì điều đó có nghĩa là bạn có cổng tĩnh năm 1971 hoặc cổng động hiện là năm 1971 và có thể thay đổi vào một thời điểm nào đó trong tương lai.

nhập mô tả hình ảnh ở đây

Câu hỏi thứ hai: Đây là câu hỏi tôi tò mò nhất. Chúng tôi có một cá thể đã có cùng một cổng (giá trị trong IPALL TCP Dynmaic Portscài đặt) trong vài năm qua hàng chục lần khởi động lại cá thể. Điều gì thực sự khiến cổng động thực sự thay đổi sau khi khởi động lại phiên bản?

Câu trả lời:


22

Bài viết KB này: Cách định cấu hình SQL Server để nghe trên một cổng cụ thể sẽ làm rõ mọi thứ cho bạn:

Phân bổ cổng động

Nếu bạn định cấu hình một phiên bản của SQL Server để sử dụng phân bổ cổng động và bạn chưa khởi động lại phiên bản của SQL Server, các giá trị đăng ký được đặt như sau:

TCPDocatePorts = Trống

TCPPort = 0

Tuy nhiên, nếu bạn định cấu hình một phiên bản của SQL Server để sử dụng phân bổ cổng động và bạn khởi động lại phiên bản của SQL Server, các giá trị đăng ký được đặt như sau:

TCPD ẩnPorts = Cổng hiện tại được sử dụng

TCPPort = Cổng hiện tại được sử dụng

Phân bổ cổng tĩnh:

Nếu bạn định cấu hình phiên bản của SQL Server để sử dụng cổng tĩnh và bạn chưa khởi động lại phiên bản của SQL Server, các giá trị đăng ký được đặt như sau:

TCPD ẩnPorts = Cổng cuối được sử dụng

TCPPort = Cổng tĩnh mới sẽ được sử dụng sau lần khởi động lại tiếp theo; cổng tĩnh mới mà bạn đã đặt bằng cách sử dụng Tiện ích mạng máy chủ

Tuy nhiên, nếu bạn định cấu hình phiên bản của SQL Server để sử dụng cổng tĩnh và bạn khởi động lại phiên bản của SQL Server, các giá trị đăng ký được đặt như sau:

TCPDocatePorts = Trống

TCPPort = Cổng tĩnh mới mà bạn đã đặt bằng cách sử dụng Tiện ích mạng máy chủ

cho câu hỏi thứ hai của bạn -

Mỗi khi bạn khởi động SQLServer có tên, nó sẽ sử dụng cổng được phân bổ. Trong trường hợp nếu cổng được sử dụng bởi một chương trình khác , thì SQL Server sẽ chọn một cổng khác tại thời điểm khởi động lại, tức là Cổng động được chọn khi khởi động lần đầu và thường sẽ giữ nguyên thông qua khởi động lại trong tương lai (được lưu trữ trong Registry) - nhưng nếu Nó được sử dụng bởi một chương trình khác sau đó máy chủ SQL sẽ chọn một cổng mới. lưu ý: Đối với Máy chủ Prod, tôi chỉ sử dụng các cổng tĩnh - bảo mật và dễ dàng quản lý.

Lưu ý: Nhiều điều thú vị hơn để tìm hiểu:

Kiểm tra xem cổng động đang được sử dụng hay không sử dụng T-SQL:

SELECT NAME
    ,protocol_desc
    ,type_desc
    ,state_desc
    ,is_admin_endpoint
    ,port
    ,is_dynamic_port
    ,ip_address
FROM sys.tcp_endpoints

nhập mô tả hình ảnh ở đây

Bạn có thể sử dụng netstat -anođể kiểm tra bằng cmdline.

Ngoài ra, bạn có thể kiểm tra những gì đã lưu trong bộ nhớ cache trước đó trong sổ đăng ký ở phía máy khách xem nó đang sử dụng cổng nào để kết nối với máy chủ sql:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI11.0\LastConnect

nhập mô tả hình ảnh ở đây


Cảm ơn và đó là một liên kết rất hữu ích! Bạn có biết những gì gây ra một cổng động để thay đổi cổng? Xem Second questiontrong câu hỏi của tôi ở trên.
Kenneth Fisher

@KennethFisher cho bạn second question- Mỗi khi bạn khởi động SQLServer có tên, nó sẽ sử dụng cổng được phân bổ. Trong trường hợp nếu cổng được sử dụng bởi một chương trình khác thì SQL Server sẽ chọn một cổng khác tại thời điểm khởi động lại. Cổng động được chọn khi khởi động lần đầu và thường sẽ giữ nguyên thông qua khởi động lại trong tương lai (được lưu trữ trong Sổ đăng ký) - nhưng nếu được sử dụng bởi một chương trình khác thì máy chủ SQL sẽ chọn một cổng mới. lưu ý : Đối với Máy chủ Prod, tôi chỉ sử dụng các cổng tĩnh - bảo mật và dễ dàng quản lý.
Kin Shah

Bạn có thể giải thích lý do tại sao bạn nghĩ nên triển khai dịch vụ hoàn toàn mới (trình duyệt máy chủ SQL) đang hoạt động trên cổng tĩnh để nó không thể khởi động nếu cổng này được sử dụng, chỉ vì bạn muốn khởi động máy chủ SQL một trường hợp trong đó một số dịch vụ khác đang sử dụng các cổng mà bạn quá vụng về để gắn vào phần mềm đắt nhất bạn đang sử dụng?
kakaz
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.