Tạo kết nối từ Oracle Client tới Database Server
Giới thiệu
Việc thiết lập kết nối từ máy Client tới Oracle Database Server giúp các chương trình trên máy trạm có thể giao tiếp với server để truy xuất dữ liệu, hoặc người lập trình viên cũng có thể sử dụng các tool như Oracle SQL Developer, PL/SQL Developer để thao tác với các bản ghi trên máy chủ cơ sở dữ liệu. Trong các bài viết trước tôi đã giới thiệu tới các bạn cách cài đặt Oracle Database 11g R2 trên Windows Server 2008 và Oracle Client 11g R2 trên Windows 7 Ultimate, bài hôm nay tôi sẽ cùng các bạn tạo kết nối từ Oracle Client tới Oracle Database Server để hai phần mềm này “nói chuyện” được với nhau.
Các bước thực hiện
Trước tiên bạn vào menu Start của máy trạm Windows 7, sau đó bạn tìm tới thư mục Oracle \ Configuration and Migration Tools và chọn tiện ích tên là Net Configuration Assistant như hình dưới.

Màn hình Oracle Net Configuration Assistant: Welcome hiện ra, bạn chọn Local Net Service Name configuration và chọn Next để tiếp tục.

Bạn chọn Add ở màn hình tiếp theo – Net Service Nam Configuration và Next để tiếp tục.

Màn hình Service Name hiện ra, bạn gõ tên Service Nam = orcl vào ô textbox sau đó chọn Next để tiếp tục.
Service Name chính là Global database name mà bạn đã thiết lập trong quá trình cài đặt Oracle Database 11g R2. Theo như bài viết tôi đã đề cập thì Service Name của chúng ta trong trường hợp này sẽ là orcl.

Chọn Next ở màn hình Select Protocols.

Màn hình TCP/IP Protocol hiện ra, bạn nhập vào IP của máy Oracle Database Server và chọn cổng (port) mặc định là 1521, sau đó chọn Next để tiếp tục.

Bạn chọn Yes, perform a test tại màn hình Net Service Name Configutation, Test.

Bạn chọn Change Login ở màn hình tiếp theo,

Khi hộp thoại Change Login hiện ra, bạn nhập thông tin Username \ Password đã tạo ra trước đó, tôi chọn Username = sample_schema, Password = oracle_pass là những thông tin về schema được tạo ra trong bài viết Tạo mới 1 Schema trong Oracle, nhấn OK để tiếp tục.

Màn hình Connecting với kết quả Connecting…Test successful hiện ra thông báo quá trình kết nối tới Oracle Database Server có Global name là orcl đã thành công. Bạn chọn Next để chuẩn bị hoàn tất.

Chọn Next ở màn hình Net Service Name.

Nhấn chọn No tại màn hình Another Net Service Name, nhấn Next để tiếp tục.

Chọn Next tại màn hình Net Service Name Configuration Done.

Chọn Finish để hoàn tất toàn bộ các bước thiết lập kết nối từ Oracle Client 11g R2 tới Oracle Database Server 11g R2.

Kết quả
Trong bài viết này tôi đã cùng các bạn tạo kết nối từ Oracle Client tới Database Server, nếu bạn gặp khó khăn trong quá trình thực hiện hướng dẫn trên xin bạn vui lòng liên hệ với tôi qua mục Comment bên dưới hoặc qua form liên lạc.

dred says:
useful information, thanks you ^_^
trongnguyen says:
You are welcome, Dred
Oracle Client tới Database Server - báo lỗi kết nối says:
The operation has timed out
at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at SSOService.HandShake.CheckHandShake(String strGUID)
at Libs.WebServiceHost.HandShake()
Zeus says:
Hi bac Trong!
Em da lam theo huong dan cua bac va da thiet lap thanh cong. Nhung em vao SQLPlus, dang nhap ten user va pass sample nhung deu bao loi TNS: protocol adapter error. Database e da bat
SQL> startup
ORACLE instance started.
Total System Global Area 422670336 bytes
Fixed Size 1300352 bytes
Variable Size 314574976 bytes
Database Buffers 100663296 bytes
Redo Buffers 6131712 bytes
Database mounted.
Database opened.
Loi nhu vay la sao ha bac. Bac giup e voi.
Thanks bac!
trongnguyen says:
Hello em, em đã tạo schema sample, pass là sample rồi đúng ko?
Em thử vào SQLPlus và đăng nhập bằng quyền sys as sysdba (không cần password) sau đó em chạy lệnh sau: select username from all_users order by username; xem có hiện ra user sample trong danh sách các user name trả về không nha.
thuy says:
em cài đặt, tạo user “sample_schema”, đăng nhập thành công bằng sqlplus rồi, nhưng khi login thfi test connect lại ditn’t success ?? em đã kiểm tra kỹ user và pass rồi mà ko được.
vậy là sao ạ ?
em cảm ơn!
trongnguyen says:
Chào em, em đã tạo Net Service Name như phần đầu trong hướng dẫn này của anh chưa em?
thuy says:
em tạo rồi mà anh ? đến bước ở hình 10 trong phần hướnng dẫn này đó, thì nó test báo ko thành công anh ạ? Em đang thắc mắc có phải vì em cài bản client trong khi em cài để tự học tức là máy em vừa là server luôn? bước đặt HOSTNAME là IP của server thì em đặt là 127.0.0.1 hoặc localhost (máy em) cso được ko ? hay em phải cài bản oracle khác ?
trongnguyen says:
Chào em, nếu đã cài Oracle Server rồi thì em không cần cài bản Client nữa em ah. Em có thể cài đặt các tool như SLQ Navigator, Toad hay PLSQL để thực hành việc tạo bảng, CRUD (create – read – update – delete) data, hay import / export data em ah.
Chúc em thành công
Shine says:
Chào a!em đã làm như a hướng dẫn nhưng đến bước login vào kiểm tra connecting thì nó báo
The test did not succeed..hix!a giúp e với!
trongnguyen says:
Chào em, em đã khởi động Oracle Server khi thực hiện kết nối chưa em?
namba says:
Anh ơi, làm sao để khởi động Oracle Server ạ?
trongnguyen says:
Em ơi em login vào SQL*Plus và dùng lệnh STARTUP là sẽ start được Oracle Database em ah!
namba says:
Em đã kết nối được rồi. Cảm ơn anh nhiều. Có điều khi em viết ứng dụng bằng Win Form, ở máy thật cài Win 7 và Database em thao tác thế này:
System.Data.OracleClient.OracleConnection con;
con = new OracleConnection(“Data Source = ShopOnline; Persist Security Info = True; User ID=schema; Password=123″);
try
{
con.Open();
textBox1.Text = “Ket noi thanh cong”;
}
catch(OracleException ora)
{
textBox1.Text = “Loi: ” + ora.Message;
}
Thì chương trình báo: Loi: ORA-12154: TNS:could not resolve the connect identifier specified
Em phải cấu hình lại TNS ra sao hay thay đổi chuỗi kết nối như thế nào để nó kết nối được ạ?
Minh Nguyen says:
Em mới học oracle và cài oracle client, anh cho em hỏi có địa chỉ oracle server miễn phí nào cho mình dùng không anh? nếu có anh cho em một cái địa chỉ với nhé
trongnguyen says:
Chào em, em có thể thiết lập các máy ảo và tự cài Oracle Server (bản 10, hay 11g) trên máy và thực hành kết nối, CRUD(create, read, update, delete) dữ liệu vì những lý do sau:
- Tăng cường tốc độ kết nối từ Client tới Server (do trong cùng mạng LAN)
- Chủ động hoàn thiện các thao tác liên quan tới Database như cài đặt, tạo bảng, import | export dữ liệu
- Mức độ ổn định cao, do em tự quyết định khi nào start | shutdown Oracle Server của em
- An ninh dữ liệu
Em có thể tham khảo thêm bài viết về cài đặt Oracle Server của anh tại đây: http://siteground193.com/~nguyenh4/cong-nghe/cai-dat-oracle-database-11g-release2-windows2008-3/
Còn về testing server cho Oracle Client thì anh chưa thấy đề cập em ah.
Chúc em thành công
thaihoc says:
Anh cho em hỏi sao em cài xong hết rồi mà khởi động OEM ko đc?
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\LoVEFoRYoU>emctl start dbconsole
Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to da
tabase unique name.
C:\Users\LoVEFoRYoU>
trongnguyen says:
Chào em!
Khi cài đặt Oracle DB em đã lựa chọn cài OEM chưa?
Tester says:
Chào a Trọng!
Em có mô hình thế này:
Oracle 11gR2 DB trên máy ảo VMware
Oracle 11g client trên Windows 7.
Mọi cái setup đều successful. Nhưng khi test kết nối nó lại ko đc. Nó báo:
Connecting…ORA-12170: TNS:Connect timeout occurred
The test did not succeed.
Em cũng đã tạo ra file tnsnames.ora với cấu hình:
(đã thay đổi: SV2008R2EN= IP của máy chủ )
sample_schema =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = SV2008R2EN)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = sample_schema)
)
)
Đã ping server trên máy ảo và máy host đều thông cả.
Anh có notes gì nữa ko để giúp em fix lỗi này với.
trongnguyen says:
Chào em!
Em thử xóa file tnsnames.ora (e nhớ backup trước nha) và thực hiện theo thao tác trong bài của anh xem(các thao tác đó sẽ override setting cũ), anh ko thấy username & pass ở trên để test được luôn.
Tester says:
Đã kiểm tra mọi cái trên máy server ảo đều running.
anninhmangvietnam89@yahoo.com says:
tuyệt vời. 1 bài viết quá hay. kiến thức của bạn có lẽ là rất tuyệt vời
trongnguyen says:
Cảm ơn bạn đã động viên, cheers