Máy chủ SQL -> Máy chủ được liên kết DB thông tin


8

Sau khoảng 3 ngày thử, tôi không thể tạo máy chủ được liên kết từ SQL Server 2016 sang Informix 11.5. Tôi chưa thử điều này với các phiên bản khác (2008R2, v.v.) vì trước tiên tôi muốn thiết lập kết nối trong môi trường thử nghiệm.

Những gì tôi đã làm xong

1) Sử dụng các hướng dẫn IBM Informix với Nhà cung cấp OLE DB trong đó tôi gặp lỗi sau (bất kể tôi có sử dụng DNS trong chuỗi nhà cung cấp hay không):

Không thể khởi tạo đối tượng nguồn dữ liệu của nhà cung cấp OLE DB "Ifxoledbc" cho máy chủ được liên kết "UCCX". Nhà cung cấp OLE DB "Ifxoledbc" cho máy chủ được liên kết "UCCX" đã trả lại messazge "EIX000: (-23197)" Không khớp thông tin định vị cơ sở dữ liệu "(Microsoft SQL Server, Error: 7303)

Địa điểm DB là en_US.57372

2) Sử dụng Nhà cung cấp Microsoft OLE DB cho SQL Server như được giải thích trong blog này sẽ trả về lỗi:

Nhà cung cấp ống có tên: Coould không mở kết nối đến SQL Server. Nhà cung cấp OLE DB SQLNCLI11 cho máy chủ được liên kết UCCX đã trả về thông báo "Hết thời gian đăng nhập hết hạn" Nhà cung cấp OLE DB SQLNCLI11 cho máy chủ được liên kết UCCX đã trả lời một thông báo "Đã xảy ra lỗi liên quan đến cá thể hoặc liên quan đến cá thể trong khi thiết lập kết nối với SQL Server. hoặc không thể truy cập. Kiểm tra xem tên đối tượng có đúng không và nếu SQL Server được cấu hình để cho phép kết nối từ xa. SQLNCLI11 cho máy chủ được liên kết UCCX trả về thông báo "Thuộc tính chuỗi kết nối không hợp lệ"

Tôi có rất ít kinh nghiệm với Informix, điều này rõ ràng và đây không phải là cài đặt cục bộ, đó là một ví dụ của Cisco vì bạn có thể lượm lặt được từ các blog tôi đang sử dụng. Lời khuyên nào sẽ được đánh giá cao.


Đối với Sự cố # 1, cấp độ trình điều khiển nào bạn đã cài đặt và cấp độ SQL Server nào bạn đang chạy? Hai cái này phải giống nhau. Đối với # 2, bạn không thể sử dụng SQL Client Client để kết nối với cơ sở dữ liệu Informix. Blog đó là sai lệch vì tôi nghi ngờ tác giả đang sử dụng trình điều khiển Informix được cài đặt ở bước # 1 trong hướng dẫn của cô ấy.
John Eisbrener

@JohnEisbrener 64 bit cho cả hai. Tôi đã thấy rất nhiều người gặp vấn đề khi cài đặt trình điều khiển 32 bit và khiến chúng hoạt động. Tôi nghĩ rằng nó cũng tanh nhưng cô ấy đã đăng một hình ảnh VÀ đặt văn bản với nhà cung cấp đó. Nếu cô ấy đã chọn trình điều khiển Informix, danh mục sẽ có màu xám.
scsimon

Bạn có thể thấy trình điều khiển Informix được cài đặt gần đây ServerName -> Server Objects -> Linked Servers -> Providerskhông? Nếu bạn không thể thấy nhà cung cấp, bạn có thể cần phải khởi động lại ví dụ. Ngoài ra, bạn có thể có một cài đặt trình điều khiển kỳ lạ dành riêng cho người dùng và không phải máy chủ rộng, trong trường hợp đó bạn có thể cần phải cài đặt nó như cùng một người dùng đang chạy SQL.
John Eisbrener

@JohnEisbrener Tôi thấy trình điều khiển khi được kết nối là chính tôi (một quản trị viên) và được kết nối như một tài khoản quản trị cục bộ khác.
scsimon

Tôi hy vọng đây không phải là vấn đề của bạn, vì cách giải quyết có vẻ đơn giản khủng khiếp. Tôi không nghĩ Máy chủ được liên kết của bạn bị định cấu hình sai, nhưng có lẽ việc truyền Client_Locale=en_us.8859-1chuỗi kết nối (thông qua ConnectionStrings.com ) sẽ hoạt động? Tôi đang nắm lấy ống hút về điều này mặc dù ... xin lỗi
John Eisbrener

Câu trả lời:


5

Chúng tôi đã gặp ác mộng khi thiết lập một cái gì đó tương tự, đặc biệt là vấn đề kết nối với nhiều môi trường Informix. Tôi đã có một số phiên bản Informix cần được liên kết với một phiên bản SQL Server duy nhất cho mục đích lưu kho và được các doanh nghiệp vừa và nhỏ của chúng tôi nói rằng điều này là không thể; chỉ một phiên bản Informix duy nhất có thể được tham chiếu trên mỗi máy chủ.

Tôi liên tục nhận được các lỗi giống như bạn và không có gì tôi có thể nạo vét trực tuyến tỏ ra hữu ích.

Cuối cùng, giải pháp có một số phần, trong đó bạn đã thực hiện vài phần đầu tiên:

  1. Chính xác IBM Informix ODBC Driverphải được cài đặt trên máy chủ cơ sở dữ liệu.
  2. Sử dụng ứng dụng SetNet32 được cung cấp cùng với trình điều khiển và thiết lập tab Thông tin máy chủ một cách thích hợp. Ngoài ra, hãy thiết lập mục DSN hệ thống tương ứng.
  3. Thủ thuật với thiết lập Máy chủ được liên kết là sử dụng các mục sau (các mục trong cơ sở mã là bằng chữ):

    • Các nhà cung cấp: Microsoft OLE DB Provider for ODBC Drivers
    • Tên sản phẩm: Ifxoledbc
    • Nguồn dữ liệu: $ YourSystemDSNName
    • Chuỗi nhà cung cấp
      • Tài xế = {IBM INFORMIX ODBC DRIVER}
      • Cơ sở dữ liệu = $ YourDatabaseName
      • Vân vân...

Nếu bạn là người thuộc loại SQL thủ công, hãy xem bên dưới. Chuỗi nhà cung cấp được kéo vào một biến chỉ cho mục đích bình luận nội tuyến, trong khi vẫn có mã thực thi. Sửa đổi khi cần:

DECLARE @provider NVARCHAR(4000);
SET @provider = N'Driver={IBM INFORMIX ODBC DRIVER};'
  + N'DATABASE= ;'  --Informix DB name
  + N'HOST= ;'      --Informix Hostname or IP adddress
  + N'SERVICE= ;'   --Informix service name, ex.  ifx1_tcp1
  + N'PROTOCOL= ;'  --Informix protocol, ex.  onsoctcp
  + N'SERVER= ;'    --Informix server, ex. ifx1
  + N'DB_LOCALE=en_US.819; CLIENT_LOCALE=en_US.819;'; --Change to your locale, as needed

EXEC master.dbo.sp_addlinkedserver 
@server = N'UCCX', --Linked Server system name
@srvproduct=N'Ifxoledbc', 
@provider=N'MSDASQL', 
@datasrc=N' ', --Your System DSN Name
@provstr= @provider;

Vì bạn đang xử lý một trường hợp duy nhất, nên chỉ cần khớp với các giá trị được sử dụng để tạo DSN hệ thống của bạn là đủ. Nếu bạn cần thêm các máy chủ được liên kết bổ sung cho các trường hợp khác, điều đó có thể được thực hiện theo chính xác cùng định dạng được mô tả ở trên mà không cần thêm các mục DSN.

Tôi hy vọng điều đó sẽ giúp.


Một phần trong đó là từ bộ nhớ, vì vậy nếu bạn gặp phải bất kỳ vấn đề nào, hãy cho tôi biết và chúng ta có thể cùng nhau giải quyết nó.
chó sói
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.