SQL SERVER BUSINESS INTELLIGENCE & WINDOWS SERVICE
DBLINK BETWEEN MS SQL SERVER & ORACLE
1. DBLINK BETWEEN MS SQL SERVER & ORACLE
(minhtri.itp@gmail.com)
I. CÀI ĐẶT......................................................................................................................................2
i. YÊU CẦU HỆ THỐNG.......................................................................................................2
ii. CÀI ĐẶT & CẤU HÌNH.....................................................................................................2
C. THAM KHẢO...................................................................................................................17
2. I. CÀI ĐẶT
i. YÊU CẦU HỆ THỐNG
Tuỳ theo hiện trạng hệ thống tuy nhiên cấu hình thực tế của hệ thống được sử
dụng để viết tài liệu này như sau:
1. Máy chủ Oracle
• Windows server 2008 64 bit
• Oracle database version 11 g
2. Máy chủ SQL Server
• Windows server 2008 64 bit
• Oracle client for dot Net Provider version 11g
• MS SQL server 2008 R2 64 bit
• ODBC
ii. CÀI ĐẶT & CẤU HÌNH
Tài liệu này chỉ tập trung vào nội dung chính là tạo DB Link nên sẽ bỏ qua việc
cài đặt MSSQL server hay Oracle DB
1. Cài đặt Oracle client trên máy chủ đã cài đặt MSSQL SERVER
Tham khảo các tài liệu:
http://docs.oracle.com/cd/E11882_01/install.112/e24187.pdf
http://intranet.aremis.com/Joomla_PRD/components/com_agora/img/mem
bers/63/Install-Oracle-Instant-Client-on-Windows-7---64-bit-pdf.pdf
Sau khi cài đặt thành công thực hiện kiểm tra lại bằng cách mở trình quản
lý SQL Server Management Studio lên. Tìm đến node “Server Objects”
=>”Linked Servers” =>”Provides”=>”OraOLEDB.Oracle” nếu provider
OraOLEDB.Oracle được hiển thị trong danh sách như hình mô tả sau thì
việc cài đặt Oracle Client đã thành công.
3. (Hình mô tả OraOLEDB.Oracle được cài đặt thành công)
Tiếp theo chúng ta cần tạo mới service naming để kết nối tới database
Oracle bằng cách vào Application menu chọn “Net Manager” theo hình
hướng dẫn sau.
4. (Hình minh họa gọi trình quản lý Net Manager)
Sau khi trình quản lý Net Manager được mở lên chúng ta click chọn vào
node Service Naming tiếp theo click chọn nút dấu “+” màu xanh để thêm
một Service Naming mới.
5. (Hình mình họa tạo Service naming)
Tiếp theo hộp thoại Net Service Name sẽ hiển thị chúng ta nhập service
name rồi click next để tiếp tục (Service name này đặt như thế nào cũng
được miễn là không trùng và nó được sử dụng để kết nối đến DB server
oracle thông qua tên này
6. (Hình mình họa chọn Net Service Name)
Tiếp sau đó hộp thoại chọn giao thức kết nối sẽ hiển thị. Chúng ta chọn
mặc định là TCP/IP và click next để tiếp tục.
(Hình minh họa chọn giao thức kết nối)
7. Sau đó chúng ta nhập Host Name (địa chỉ ip của máy chủ CSDL oracle),
Port Number (tuỳ theo thiết lập của oracle db server, mặc định là 1521).
Click Next để tiếp tục.
(Hình minh họa khai báo thông tin Host Name, Port Number)
Tiếp theo chúng ta khai báo thông tin service name của db oracle (đối với
các phiên bản oracle <=8 thông tin này chính là sysid)
8. (Hình minh họa khai báo thông tin service name)
Bước cuối cùng chúng ta sẽ kiểm tra lại kết nối đến oracle db server bằng
cách click chuột vào button “Test”
(Hình minh họa kiểm tra kết nối đến db oracle)
9. Điều lưu ý khi click vào Test chắc chắn không thành công là 90 % bởi vì
chúng ta chưa khai báo tài khoản login vào oracle db server.
Chúng ta sẽ chọn Change login và nhập vào username và password truy
cập vào db server. Sau đó click Test để kiểm tra lại.
(Hình minh họa kiểm tra kết nối)
10. (Hình minh họa kiểm tra kết nối thành công)
Tiếp theo chúng ta click chọn close và Finish để kết thúc việc tạo service
naming. Lưu ý để sử dụng lại service naming này trong các lần kết nối sau
chúng ta phải lưu lại các thông tin bằng cách vào menu file và chọn Save
Network Configuration. Đến đây thì quá trình tạo Service naming đã kết
thúc. Chúng ta có thể kết nối để Oracle DB server thông qua service name
này.
(Hình minh họa Save Network Configuration)
Tiếp theo chúng ta cần tạo driver ODBC để cho phép SQL kết nối đến Oracle server
thông qua ODBC này.
11. (Hình minh họa gọi trình quản lý ODBC)
Sau khi hộp thoại của trình quản lý ODBC được mở lên chúng ta chọn Tab System
DNS. Sau đó click Add để thêm system DNS cho oracle DB server
12. (Hình minh họa thêm mới system DNS)
Tiếp theo hộp thoại Create New Data Source sẽ hiển thị chúng ta chọn driver là
Oracle in OraDb11g_home1 (Tuỳ theo phiên bản của Oracle mà driver này sẽ khác)
(Hình minh họa chọn Oracle dirver)
13. Tiếp theo click Finish để tiến hành cấu hình driver ODBC. Chúng ta nhập các thông
tin Data Source Name (tên do chúng ta tự đặt được sử dụng đển SQL server kết nối
đế Oracle), TNS Service Name là service naming mà chúng ta vừa tạo ở trên, User ID
là user name kết nối đến Oracle DB server.Sau đó click Test Connection và nhập vào
password của user tương ứng để kiểm tra kết nối.
(Hình minh họa khai báo thông tin driver ODBC)
(Hình minh họa kiểm tra kết nối ODBC)
14. (Hình minh họa kiểm tra kết nối thành công)
Tiếp theo click Ok để kết thúc quá trình cấu hình ODBC driver.
Bước kế tiếp chúng ta sẽ tiến hành tạo DB Link trên SQL Server.
Yêu cầu đầu tiên để tạo được kết nối DB Link thành công chúng ta cần enable thuộc
tính Allow Inprocess của provider OraOLEDB.Oracle . Bằng cách click chuột phải
vào provider này chọn Properties sau đó click chọn Allow Inprocess.
(Hình minh họa enable Allow Inprocess)
Tiếp theo chúng ta sẽ tiến hành tạo DB Link bằng cách click chuột phải vào “Linked
Servers” và chọn “New Linked Servers …”. Sau khi hộp thoại New Linked Server
15. được mở lê chúng ta nhập các thông tin Linked Server (Tên tuỳ ý không trùng và
được dùng trong truy vấn đến db thật), Server type chọn Other data source, Provider
chọn “Oracle Provider for OLE DB”.
Product name chọn Oracle, Data source chọn tên Data Source Name của ODBC vừa
tạo ở trên.
(Hình minh họa khai báo các thông tin cho DB Link)
Tiếp theo chúng ta chọn tab Security và tiếp tục chọn “Be made using this security
context) và nhập thông tin user name và mật khẩu kết nối đến Oracle database
server.Tiếp theo nhấn OK để kết thúc quá trình cài đặt.
16. (Hình minh họa khai báo tài khoản kết nối đến Oracle DB server)
Lưu ý ngoài các thực hiện tạo DB Link với giao diện trực quan ở trên chúng ta có thể
tạo DB Link thông qua dòng lệnh.
Cách thực hiện xem mục tham khảo
VD:
EXEC sp_addlinkedserver @server = ‘TestOraLink’, @srvproduct = ‘Oracle’,
@provider = ‘OraOLEDB.Oracle’, @datasrc = ‘MyServiceAlias’
EXEC sp_addlinkedsrvlogin ‘TestOraLink’, false, ‘localuser’, ‘remoteuser,
‘remoteuserpass’
17. Sau khi cài đặt thành công DB Link chúng ta có thể test lại bằng cách truy vấn thông
qua DB Link
Lưu ý: Việc dùng DB Link từ SQL server sang Oracle sẽ có một số trường hợp
dữ liệu không tương thích. Do kiểu dữ liệu và các quản lý của 2 DBMS này là
khác nhau. Nên việc sử dụng DB Link cần xem xét để làm tương thích cấu trúc
db trước khi tạo.
VD : Kiểm tra hoạt động của db link.
SELECT [EMPLOYEE_ID]
FROM [TESTDB]..[TEST_USER].[EMPLOYEE]
SELECT * FROM OPENQUERY(TESTDB,'SELECT *
FROM TEST_USER.EMPLOYEE');
C. THAM KHẢO
http://fuzzydata.wordpress.com/2007/05/22/sql-server-to-oracle-linked-servers-
part-1/
http://support.microsoft.com/kb/251238/en-us
http://nadvi.blogspot.com/2013/03/mssql-linked-server-error-ole-db.html