GIỚI THIỆU ORACLE NETWORK ENVIRONMENT
Bài viết "Configuration The Oracle Network Environment" sẽ cung cấp cho bạn những kiến thức cơ bản về cách cấu hình môi trường mạng Oracle.
Trong bài viết, bạn sẽ được hướng dẫn sử dụng các công cụ quản lý như enterprise manager cloud control và oracle net manager để tạo thêm LISTENER, tạo Alias service oracle net, control listener oracle net, và sử dụng tiện ích control listener để quản lý listener oracle net.
Bạn cũng sẽ học được cách sử dụng tnsping để kiểm tra kết nối oracle net và xác định khi nào nên sử dụng máy chủ chia sẻ và khi nào nên sử dụng máy chủ riêng.
Với những kiến thức này, bạn sẽ có thể cấu hình môi trường mạng Oracle của mình một cách hiệu quả và đáp ứng được các yêu cầu kỹ thuật của công việc.
TỔNG QUAN VỀ ORACLE NET SERVICES
Oracle Net Services cho phép các kết nối mạng từ một ứng dụng khách hoặc các ứng dụng middle-tier đến máy chủ Oracle. Sau khi network session được thiết lập, Oracle Net hoạt động như một đơn vị vận chuyển dữ liệu cho cả ứng dụng khách(Client application) và máy chủ cơ sở dữ liệu(Server Database).
Nó có trách nhiệm thiết lập và duy trì kết nối giữa ứng dụng khách và máy chủ cơ sở dữ liệu, cũng như trao đổi các tin nhắn giữa chúng. Oracle Net (hoặc một phần mềm giả lập Oracle Net, như Java Database Connectivity) được đặt trên mỗi máy tính cần truyền thông với máy chủ cơ sở dữ liệu.
Trên máy tính client, Oracle Net là một thành phần background đối với các kết nối ứng dụng đến cơ sở dữ liệu.
Trên máy chủ cơ sở dữ liệu, Oracle Net bao gồm một active process được gọi là Oracle Net Listener, có trách nhiệm điều phối các kết nối giữa cơ sở dữ liệu và các ứng dụng bên ngoài.
Chức năng phổ biến nhất của Oracle Net Services là để cho phép kết nối đến cơ sở dữ liệu. Bạn có thể cấu hình các dịch vụ mạng bổ sung để cho phép truy cập vào thư viện mã nguồn bên ngoài (EXTPROC) và kết nối các nguồn dữ liệu không phải Oracle (chẳng hạn như Sybase, Informix, DB2 và SQL Server) thông qua Oracle Heterogeneous Services
BÀI VIẾT LIÊN QUAN
TỔNG QUAN VỀ ORACLE NET LISTENER
Oracle Net Listener (hoặc đơn giản là listener) là cổng vào Oracle instance cho tất cả các kết nối người dùng NoLocal. Một listener đơn có thể phục vụ nhiều cơ sở dữ liệu và hàng ngàn kết nối khách hàng.
Bạn có thể sử dụng Enterprise Manager Cloud Control hoặc Oracle Net Manager để cấu hình listener và chỉ định vị trí file Log.
Các quản trị viên cao cấp cũng có thể cấu hình Oracle Net Services bằng cách chỉnh sửa các tệp cấu hình bằng tay, nếu cần, bằng trình soạn thảo văn bản như vi hoặc gedit.
Để một ứng dụng kết nối đến một dịch vụ thông qua Oracle Net Listener, ứng dụng phải có thông tin về dịch vụ đó, bao gồm địa chỉ hoặc host nơi listener đó đặt, giao thức mà listener chấp nhận và port mà listener giám sát.
Sau khi listener được xác định, thông tin cuối cùng mà ứng dụng cần là tên của dịch vụ mà nó muốn kết nối. Giải quyết tên Oracle Net là quá trình xác định thông tin kết nối này
KẾT NỐI ĐẾN CƠ SỞ DỮ LIỆU ORACLE
Một cơ sở dữ liệu Oracle là đại diện cho một dịch vụ đối với một client. Một cơ sở dữ liệu có thể có một hoặc nhiều dịch vụ liên kết với nó. Các cơ sở dữ liệu được xác định bằng một service name được chỉ định bởi tham số SERVICE_NAMES trong tệp tham số khởi tạo.
Service name mặc định là tên toàn cục của cơ sở dữ liệu, đó là một tên bao gồm tên cơ sở dữ liệu (giá trị tham số DB_NAME) và tên miền (giá trị tham số DB_DOMAIN). Để kết nối đến một service database, client sử dụng một mô tả kết nối (connect descriptor) cung cấp vị trí của cơ sở dữ liệu và service name của cơ sở dữ liệu.
Client có thể sử dụng mô tả kết nối hoặc một tên được giải quyết thành mô tả kết nối. Ví dụ sau đây cho thấy một mô tả kết nối cho phép khách hàng kết nối đến một dịch vụ cơ sở dữ liệu có tên:
finance.us.flowers.com
Người dùng bắt đầu yêu cầu kết nối đến cơ sở dữ liệu Oracle bằng cách gửi một chuỗi kết nối. Một chuỗi kết nối bao gồm tên người dùng và mật khẩu, cùng với một định danh kết nối(Connect identifier). Định danh kết nối có thể là chính mô tả kết nối hoặc Name có thể giải quyết thành mô tả kết nối.
Một trong những định danh kết nối phổ biến nhất là Net Service Name, là một tên đơn giản cho một service. Khi sử dụng tên dịch vụ mạng, xử lý kết nối được thực hiện bằng cách ánh xạ tên dịch vụ mạng thành mô tả kết nối. Thông tin ánh xạ có thể được lưu trữ trong một hoặc nhiều kho thông tin và được giải quyết bằng phương pháp đặt tên
Sau khi quá trình giải quyết tên Oracle Net hoàn tất, yêu cầu kết nối được chuyển tiếp từ người dùng hoặc ứng dụng trung gian (gọi tắt là quá trình người dùng) đến bộ lắng nghe (listener).
Bộ lắng nghe nhận một gói kết nối (CONNECT packet) và kiểm tra xem gói kết nối đó có yêu cầu tên dịch vụ Oracle Net hợp lệ hay không.
Nếu không yêu cầu tên dịch vụ (như trong trường hợp yêu cầu tnsping), bộ lắng nghe sẽ xác nhận yêu cầu kết nối và không làm gì thêm. Nếu yêu cầu tên dịch vụ không hợp lệ, bộ lắng nghe truyền mã lỗi đến quá trình người dùng
Nếu CONNECT packet yêu cầu một tên dịch vụ hợp lệ, listener sẽ tạo một tiến trình mới để xử lý kết nối. Tiến trình mới này được gọi là tiến trình máy chủ (server process).
Listener kết nối đến tiến trình và chuyển tất cả thông tin khởi tạo, bao gồm thông tin địa chỉ cho User process. Tại điểm này, listener không còn xử lý kết nối và tất cả công việc được chuyển sang tiến trình máy chủ.
Tiến trình máy chủ kiểm tra các thông tin xác thực của người dùng (thường là mật khẩu), và nếu thông tin xác thực hợp lệ, một User session sẽ được tạo ra.
Quá trình xử lý của một Dedicated server process khi đã thiết lập kết nối với một user bao gồm các bước sau:
- Phân tích và thực thi các câu lệnh SQL được đưa ra qua từ ứng dụng
- Kiểm tra cache buffer của database để tìm các khối dữ liệu cần thiết để thực hiện các câu lệnh SQL
- Đọc các khối dữ liệu cần thiết từ các tệp trên đĩa vào cache buffer của khu vực System Global Area (SGA) của database, nếu các khối này chưa có sẵn trong SGA
- Quản lý tất cả các hoạt động sắp xếp. Khu vực Sort là một khu vực memory được sử dụng để thực hiện việc sắp xếp, nó được chứa trong một phần của bộ nhớ được liên kết với Program Global Area (PGA).
- Trả kết quả cho user process, sao cho ứng dụng có thể xử lý thông tin này.
- Đọc các tùy chọn Auditing và báo cáo quá trình user process đến đích Audit.
PHƯƠNG THỨC KẾT NỐI NAMING(NAMING METHODS)
Oracle Net cung cấp hỗ trợ cho các phương thức đặt tên(Naming methods) sau:
Easy connect naming: Phương thức đặt tên easy connect cho phép khách hàng kết nối đến máy chủ Cơ sở dữ liệu Oracle bằng cách sử dụng một chuỗi kết nối TCP/IP bao gồm tên máy chủ và tên dịch vụ (nếu có) và tùy chọn cổng như sau:
CONNECT username/password@host[:port][/service_name]
Phương thức đặt tên easy connect không yêu cầu cấu hình.
Local naming: Phương thức đặt tên local lưu trữ các mô tả kết nối (xác định bằng tên dịch vụ mạng của chúng) trong tệp cấu hình địa phương có tên là tnsnames.ora trên máy client.
Directory naming: Để truy cập một dịch vụ cơ sở dữ liệu, phương thức đặt tên thư mục lưu trữ các định danh kết nối trong một máy chủ thư mục tập trung tuân thủ giao thức truy cập thư mục nhẹ (LDAP).
External naming: Phương thức đặt tên ngoài lưu trữ các tên dịch vụ mạng trong một dịch vụ đặt tên bên ngoài được hỗ trợ. Các dịch vụ bên thứ ba được hỗ trợ bao gồm:
- Dịch vụ đặt tên bên ngoài Network Information Service (NIS)
- Distributed Computing Environment (DCE) Cell Directory Services (CDS)
EASY CONNECT
Với Easy Connect, bạn cung cấp tất cả thông tin cần thiết cho kết nối Oracle Net như một phần của chuỗi kết nối. Chuỗi kết nối Easy Connect có dạng như sau:
<username>/<password>@<hostname>:<listener port>/<service name>
Cổng nghe(listener port) và tên dịch vụ(service name) là tùy chọn. Nếu không cung cấp cổng nghe, Oracle Net giả định rằng đang sử dụng cổng mặc định là 1521. Nếu không cung cấp tên dịch vụ, Oracle Net giả định rằng tên dịch vụ cơ sở dữ liệu và tên máy chủ được cung cấp trong chuỗi kết nối là giống nhau.
Giả sử rằng listener sử dụng giao thức TCP để lắng nghe trên cổng 1521 và các tham số instance SERVICE_NAMES=db và DB_DOMAIN=us.oracle.com, chuỗi kết nối được hiển thị trong trang có thể được rút gọn:
SQL> connect hr/hr@db.us.oracle.com
LOCAL NAMING
Với phương pháp đặt tên cục bộ, người dùng cung cấp một bí danh cho dịch vụ Oracle Net. Oracle Net kiểm tra bí danh này trong một danh sách cục bộ các dịch vụ đã biết và nếu tìm thấy một cái phù hợp, nó chuyển đổi bí danh thành tên host, Protocol, port và service name.
Một lợi ích của đặt tên cục bộ là người dùng cơ sở dữ liệu chỉ cần nhớ một bí danh ngắn thay vì chuỗi kết nối dài như yêu cầu của Easy Connect.
Danh sách các dịch vụ đã biết phải được lưu trữ trong tệp cấu hình văn bản sau đây:
<oracle_home>/network/admin/tnsnames.ora
Đây là vị trí mặc định của tệp tnsnames.ora, nhưng tệp có thể được đặt ở một vị trí khác bằng cách sử dụng biến môi trường TNS_ADMIN.
Phương pháp đặt tên cục bộ phù hợp cho các tổ chức trong đó các cấu hình dịch vụ Oracle Net không thay đổi thường xuyên.
DIRECTORY NAMING
Với directory naming, người dùng cung cấp một alias cho dịch vụ Oracle Net. Oracle Net kiểm tra alias này với một danh sách các dịch vụ được biết đến bên ngoài và, nếu tìm thấy khớp, chuyển đổi alias thành host, giao thức, cổng và tên dịch vụ. Giống như local naming, người dùng cơ sở dữ liệu chỉ cần nhớ một alias ngắn gọn.
Một lợi thế của directory naming là tên dịch vụ có sẵn để người dùng kết nối ngay khi tên dịch vụ mới được thêm vào thư mục LDAP. Với local naming, người quản trị cơ sở dữ liệu (DBA) phải phân phối các tệp tnsnames.ora đã được cập nhật chứa thông tin tên dịch vụ thay đổi trước khi người dùng có thể kết nối đến dịch vụ mới hoặc đã được thay đổi.
Directory naming thích hợp cho các tổ chức trong đó cấu hình dịch vụ Oracle Net thay đổi thường xuyên
EXTERNAL NAMING
Phương pháp đặt tên bên ngoài (External naming) lưu trữ các tên dịch vụ mạng (Net Service names) trong các dịch vụ đặt tên (naming service) không phải của Oracle được hỗ trợ. Các dịch vụ bên thứ ba được hỗ trợ bao gồm:
- Dịch vụ đặt tên thông tin mạng (Network Information Service - NIS)
- Dịch vụ Cell Directory Services (CDS) của môi trường tính toán phân tán (Distributed Computing Environment - DCE)
Về mặt khái niệm, phương pháp đặt tên bên ngoài tương tự như phương pháp đặt tên thư mục (directory naming)
CÁC CÔNG CỤ DÙNG ĐỂ CẤU HÌNH VÀ QUẢN LÝ ORACLE NET SERVICES
Sử dụng các công cụ và ứng dụng sau để quản lý cấu hình Oracle Network của bạn:
- Enterprise Manager Cloud Control: Cung cấp môi trường tích hợp để cấu hình và quản lý Oracle Net Services. Sử dụng Enterprise Manager để cấu hình Oracle Net Services cho bất kỳ Oracle home nào trên nhiều hệ thống tập tin và quản trị trình nghe.
- Oracle Net Manager: Cung cấp giao diện đồ họa (GUI) thông qua đó bạn có thể cấu hình Oracle Net Services cho một Oracle home trên một máy khách cục bộ hoặc một máy chủ.
- Oracle Net Configuration Assistant: Được khởi chạy bởi Oracle Universal Installer khi bạn cài đặt phần mềm Oracle. Trong quá trình cài đặt cơ sở dữ liệu thông thường, Oracle Net Configuration Assistant tự động cấu hình một trình nghe có tên là LISTENER có một địa chỉ giao thức lắng nghe TCP/IP cho cơ sở dữ liệu. Nếu bạn thực hiện một cài đặt tùy chỉnh, Oracle Net Configuration Assistant sẽ yêu cầu bạn cấu hình tên trình nghe và địa chỉ giao thức theo lựa chọn của bạn.
- Listener Control Utility: Được sử dụng để bắt đầu, dừng và xem trạng thái của quá trình trình nghe.
Định nghĩa các thành phần của Oracle Net Services:
Các thành phần của Oracle Net Services sau đây có thể được cấu hình bằng cách sử dụng Enterprise Manager Cloud Control và Oracle Net Manager:
- Listener: Cấu hình listener bao gồm chỉ định tên của listener, các địa chỉ giao thức mà nó chấp nhận yêu cầu kết nối và các dịch vụ (dịch vụ cơ sở dữ liệu hoặc dịch vụ không phải cơ sở dữ liệu) mà nó lắng nghe.
- Naming (net service name).
- Naming methods.
- Profiles
Oracle Net Configuration Assistant cấu hình listener, các phương pháp đặt tên, sử dụng máy chủ thư mục và một tệp tnsnames.ora địa phương trong quá trình cài đặt phần mềm Oracle Database.
Enterprise manager cloud control
Để quản trị Oracle Net Services trong Enterprise Manager Cloud Control, chọn Quản trị Net Services trong menu Máy chủ cho máy chủ mục tiêu của bạn.
Trang Quản trị Net Services cho phép bạn cấu hình Oracle Net Services cho bất kỳ Oracle home nào trên nhiều hệ thống tệp.
Nó cũng cung cấp các chức năng quản trị thông thường cho listeners như start và stop một listener, và thay đổi các đặc điểm của việc theo dõi và ghi nhật ký.
Bạn cũng có thể xem báo cáo trạng thái kiểm soát của một listener.
Bạn cũng có thể chỉ định vị trí ORACLE_HOME nơi các tệp cấu hình Oracle Net Services được lưu trữ bằng cách chọn " “File Location".
Oracle Net manager
Sử dụng Oracle Net Manager để cấu hình các dịch vụ Oracle Net cho một Oracle home trên một máy khách hoặc máy chủ địa phương.
Bạn có thể gọi Oracle Net Manager theo các cách sau:
- Trên Linux, nhập netmgr tại dấu nhắc hệ thống điều hành.
- Trên Microsoft Windows, chọn: -Programs từ the Start menu -> Oracle - HOME_NAME -> Configuration and Migration Tools -> Net Manager
Oracle net configuration Assistant
Oracle Net Configuration Assistant được thực thi bởi Oracle Universal Installer trong quá trình cài đặt phần mềm Oracle Database. Nó cấu hình các thành phần mạng cơ bản sau đây:
- Tên và địa chỉ giao thức của trình nghe (listener)
- Các phương pháp đặt tên
- Tên dịch vụ mạng (net service names)
- Sử dụng máy chủ thư mục (directory server usage): Cấu hình máy chủ thư mục cho các tính năng được kích hoạt thông qua thư mục.
Listener control utility
Tiện ích Listener Control cho phép bạn điều khiển listener. Với lệnh lsnrctl, bạn có thể:
- Start listener
- Stop listener
- Kiểm tra trạng thái của listener
- Khởi tạo lại listener từ các tham số tệp cấu hình
- Cấu hình nhiều listener một cách động
- Thay đổi mật khẩu listener
Cú pháp lệnh cơ bản cho tiện ích này là:
LSNRCTL> command [listener_name]
Listener control utility
Khi một dịch vụ cơ sở dữ liệu có thể truy cập thông qua nhiều địa chỉ giao thức của trình nghe, bạn có thể chỉ định thứ tự mà các địa chỉ được sử dụng.
Các địa chỉ có thể được chọn ngẫu nhiên hoặc thử lần lượt. Trong trường hợp có nhiều hơn một trình nghe có sẵn, chẳng hạn như cấu hình Oracle Real Application Clusters (RAC), Oracle Net có thể tận dụng tính năng chuyển tiếp và cân bằng tải trình nghe cũng như định tuyến nguồn Oracle Connection Manager.
Nếu kích hoạt chuyển tiếp thời gian kết nối (connect-time failover), bí danh có hai hoặc nhiều địa chỉ trình nghe được liệt kê. Nếu địa chỉ đầu tiên không khả dụng, địa chỉ thứ hai sẽ được thử.
Oracle Net tiếp tục thử địa chỉ theo thứ tự được liệt kê cho đến khi đạt được trình nghe hoạt động hoặc đến khi tất cả các địa chỉ đã được thử nhưng không thành công.
Transparent Application Failover (TAF) là tính năng phía client cho phép khách hàng kết nối lại với các cơ sở dữ liệu còn sống sót trong trường hợp một Instance cơ sở dữ liệu bị lỗi. Thông báo được sử dụng bởi máy chủ để kích hoạt các cuộc gọi lại TAF trên phía client.
Khi cân bằng tải được kích hoạt, Oracle Net chọn một địa chỉ ngẫu nhiên từ danh sách các địa chỉ. Tính năng cân bằng tải kết nối thời gian chạy cải thiện hiệu suất kết nối bằng cách cân bằng số lượng kết nối hoạt động giữa nhiều trình điều phối. Trong một môi trường RAC, cân bằng tải lưu trữ kết nối cũng có khả năng cân bằng số lượng kết nối hoạt động giữa nhiều thể hiện
KIỂM TRA ORACLE NET CONNECTIVITY
tnsping là công cụ tương đương với tiện ích ping TCP/IP của Oracle Net. Nó cung cấp một kiểm tra nhanh chóng để xác minh rằng đường mạng tới một đích đến là tốt. Ví dụ, nhập tnsping orcl trong một cửa sổ dòng lệnh
Công cụ này xác nhận rằng tên máy chủ, cổng và giao thức đến được một trình nghe. Nó không thực sự kiểm tra xem trình nghe có xử lý tên dịch vụ hay không. Tiện ích tnsping cũng tiết lộ vị trí của các tệp cấu hình. Trong một hệ thống có nhiều vị trí ORACLE_HOME, điều này có thể hữu ích.