Bài viết này hướng dẫn quy trình tạo một máy chủ được liên kết từ một phiên bản SQL Server trên một vùng chứa Docker đến một phiên bản SQL Server trên một vùng chứa Docker khác. Cả hai vùng chứa Docker đều nằm trên cùng một máy.
Quy trình hoàn toàn giống với quy trình mà bạn sẽ sử dụng để tạo bất kỳ máy chủ được liên kết nào (ví dụ:ngay cả khi các phiên bản SQL Server nằm trên các máy riêng biệt và không chạy trong vùng chứa Docker).
Tất cả các ví dụ ở đây đều sử dụng Transact-SQL. Điều này cho phép bạn tạo máy chủ được liên kết mà không cần dựa vào giao diện người dùng đồ họa (chẳng hạn như SSMS).
Tạo máy chủ được liên kết
Để tạo một máy chủ được liên kết bằng T-SQL, hãy thực thi sp_addlinkedserver
thủ tục được lưu trữ trong khi chuyển tên của máy chủ được liên kết cũng như nguồn của nó.
Dưới đây là ví dụ về cách tạo máy chủ được liên kết:
EXEC sp_addlinkedserver @server=N'Homer', @srvproduct=N'', @provider=N'MSOLEDBSQL', @datasrc=N'172.17.0.2,1433';
Trong trường hợp này, tên máy chủ được liên kết là Homer và tôi chỉ định địa chỉ IP của vùng chứa Docker, theo sau là cổng TCP. Thay đổi tên máy chủ và địa chỉ IP / cổng theo yêu cầu.
Bạn có thể tìm thấy địa chỉ IP của vùng chứa Docker của mình bằng cách chạy mã sau trong cửa sổ dòng lệnh:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' Homer
Nếu cách đó không hiệu quả, hãy thử phương pháp cũ hơn:
docker inspect -f"{{.NetworkSettings.IPAddress}}" Homer
Thay đổi tên vùng chứa theo yêu cầu.
Kiểm tra máy chủ được liên kết
Bây giờ bạn đã thêm máy chủ được liên kết, bạn có thể sử dụng sp_testlinkedserver
để kiểm tra nó:
EXEC sp_testlinkedserver Homer;
Kết quả (nếu thành công):
Commands completed successfully.
Đăng nhập không thành công?
Nếu bạn gặp lỗi "Đăng nhập không thành công", rất có thể bạn không có thông tin đăng nhập tương ứng trên máy chủ từ xa. Bạn sẽ cần có thông tin đăng nhập tương ứng với thông tin đăng nhập giống như thông tin đăng nhập trên máy chủ cục bộ.
Ngoài ra, bạn có thể tạo một thông tin đăng nhập riêng cho máy chủ được liên kết.
Xem Tạo máy chủ được liên kết trong SQL Server (Ví dụ T-SQL) để biết thêm chi tiết và các ví dụ về việc này. Bài viết đó sử dụng các chi tiết tương tự cho máy chủ được liên kết như trong bài viết này. Nó cũng có một ví dụ về việc chạy một truy vấn phân tán và một truy vấn chuyển qua trên máy chủ được liên kết khi nó đã được định cấu hình.
Thả một máy chủ được liên kết
Dưới đây là một ví dụ về việc loại bỏ máy chủ được liên kết có tên “Homer” và tất cả các thông tin đăng nhập được liên kết.
EXEC sp_dropserver 'Homer', 'droplogins';
droplogins
đối số là tùy chọn, nhưng nếu bạn không chỉ định điều này khi thả máy chủ được liên kết có các mục nhập đăng nhập máy chủ từ xa và liên kết được liên kết hoặc được định cấu hình làm nhà xuất bản sao chép, thông báo lỗi sẽ được trả về.
Xem Xóa máy chủ được liên kết bằng T-SQL để biết thêm ví dụ.