Tuesday, December 8, 2009

How to configure SQL Server Linked Server to Oracle

Nếu trong hệ thống của bạn sử dụng cả SQL Server và Oracle, thì đây là cách cho phép bạn thực hiện tạo 1 linked server từ SQL Server vào Oracle. Từ đó, bạn có thể thực hiện  các lệnh truy vấn trên Oracle và sử dụng dữ liệu nhận được trên SQL Server.

Các bước thực hiện như sau:

Bước 1: Cài đặt Oracle client trên SQL Server host

Bạn có thể download trình cài đặt Oracle client từ trang web của Oracle. Bạn nên sử dụng Oracle client phiên bản tương tự phiên bản của Oracle server.

Bước 2: Cấu hình kết nối đến Oracle Instance

Sử dụng “Oracle Net Configuration Assistant” để cấu hình kết nối đến Oracle server, hoặc bạn có thể thêm cấu hình vào file tnsnames.ora, format của cấu hình kết nối đến Oracle server như sau:

OracleServiceNameAlias = 
(DESCRIPTION = 
(ADDRESS_LIST = 
(ADDRESS = (PROTOCOL = TCP)(HOST = your-host-name-or-ip)(PORT = listener-port-usually-1521)) 
) 
(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = oracle-service-name) 
) 
)

Trong đó:

  • OracleServiceNameAlias: Do bạn tự đặt, được sử dụng như là Data Source khi cấu hình Linked Server.
  • your-host-name-or-ip: Là hostname hoặc địa chỉ ip của Oracle server mà bạn kết nối đến.
  • listener-port-usually-1521: Là port của Oracle server (cổng ngầm đinh của Oracle là 1521).
  • oracle-service-name: là service name của Oracle server

Bước 3: Test cấu hình đã được thiết lập

Bạn hãy dùng Command Prompt, đánh vào dòng lệnh sau: tnsping OracleServiceNameAlias

Ví dụ:

 C:\>tnsping OralceServiceNameAlias 
...
Used TNSNAMES adapter to resolve the alias 
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = OralceServiceNameAlias))) 
OK (10 msec)

Khi bạn thấy dòng trên, thì bạn cấu hình đã OK.

Bước 4: Create link from SQL Server to Oracle

Bạn sử dụng SQL Server Management Studio và chạy các câu lệnh sau:

EXEC sp_addlinkedserver @server = 'MyOracleLink', @srvproduct = 'Oracle', @provider = 'MSDAORA', @datasrc = 'OralceServiceNameAlias' 
EXEC sp_addlinkedsrvlogin 'MyOracleLink', false, 'NULL', 'ora_username', 'ora_password'

Trong đó:

  • sp_addlinkedserver thực hiện đăng ký link server vào SQL Server
  • @server=Tên của Linked Server, tên này phải chưa tồn tại trong danh sách Linked Servers
  • @srvproduct= Tên của data source kết nối đến (tùy chọn)
  • @provider = Provider sẽ sử dụng, ở đây MSDAORA = Microsoft OLE DB Provider for Oracle
  • @datasrc  = Tên của Oracle Instance Alias mà bạn đã cấu hình ở bước 2.
  • sp_addlinkedsrvlogin đăng ký account đăng nhập vào Oracle, sử dụng account ora_username/ora_password.

Bước 5: Tạo câu lệnh để test dữ liệu

SELECT * FROM OPENQUERY(MyOracleLink, 'SELECT * FROM TableTest')

Như vậy, với câu lệnh trên thực hiện được, thì quá trình cấu hình Linked Server đã hoàn tất.

No comments:

Post a Comment