All about Oracle Technologies

Showing posts with label 12c. Show all posts
Showing posts with label 12c. Show all posts

Tuesday, 24 May 2016

Giới thiệu các môi trường triển khai Agent dành cho ODI 12c

14:24 Posted by NTP , No comments

Agent trong ODI là gì?

Agent là 1 ứng dụng Java thường được cài đặt trên máy chủ để lắng nghe các yêu cầu và xử lý các yêu cầu này.
Theo hình, khi có 1 tác vụ xử lý dữ liệu được gửi từ ODI Studio, Agent sẽ nhận yêu cầu này, lấy các thông tin từ Master và Work Repository kết hợp chúng lại tạo thành 1 tác vụ chạy hoàn chỉnh. Tác vụ này sẽ được chuyển xuống các dữ liệu nguồn (Source) để xử lý, kết quả sau đó sẽ được chuyển qua lưu tại dữ liệu đích (Target); và cuối cùng là cập nhật các log xử lý về lại Work Repository.

Các loại Agent trong ODI 12c

Phiên bản ODI 12c hỗ trợ 3 chế độ triển khai Agent: JEE, Colocated và Standalone. Bài viết này sẽ lần lượt giới thiệu từng môi trường triển khai để giúp cho các nhà phát triển có thể lựa chọn 1 môi trường triển khai phù hợp.

Loại ODI Agent
Tùy chọn khi cài đặt
Standalone Agent
Standalone Installation
JEE Agent
Colocated Agent
Enterprise Installation
Bảng tóm lượt các loại Agent tương ứng khi cài đặt ODI 12c

Môi trường Standalone Agent

Môi trường Standalone là môi trường đầu tiên của ODI và vẫn được Oracle duy trì cho đến ngày nay. Ích lợi đầu tiên có thể kể đến của môi trường này đó là yêu cầu tài nguyên rất thấp – không đòi hỏi phải có 1 máy chủ ứng dụng riêng  biệt để triển khai vì chương trình ứng dụng chạy trên môi trường này là 1 ứng dụng Java độc lập. Ứng dụng này bao gồm tất cả các tính năng cần thiết để thực hiện các tác vụ tích hợp dữ liệu bao gồm luôn cả việc hỗ trợ tạo Web-service từ các tác vụ này. Agent được cài đặt trong môi trường này có các điểm lợi sau:
  • Agent được cài đặt trực tiếp trên cùng máy chủ Cơ sở dữ liệu (CSDL) do vậy giảm thiểu được thời gian truyền tải dữ liệu qua môi trường mạng khi thực hiện các tác vụ tích hợp dữ liệu.
  • Với các yêu cầu tích hợp dữ liệu là các tập tin dữ liệu (flat file) thì các đoạn script tích hợp dữ liệu không thể truy xuất được các tập tin này qua môi trường mạng được. Chính vì vậy việc cài đặt Agent trên máy chủ chứa file này là 1 lựa chọn phù hợp cho các đoạn script tích hợp có thể thực thi được.

Môi trường JEE Agent

Môi trường Standalone chỉ phù hợp với các mô hình tích hợp dữ liệu nhỏ và đơn giản. Với các mô hình tích hợp dữ liệu lớn và phức tạp, mô hình Standalone này tỏ ra không đáp ứng được. Chính vì vậy Oracle giới thiệu mô hình JEE Agent (JEE Agent có thể được cài đặt cùng với WebLogic Server) để giải quyết các giới hạn của mô hình Standalone gồm:
  • Tính sẵn sàng cao (High Availability): trong môi trường doanh nghiệp, việc đảm bảo các Agent luôn sẵn sàng và chạy liên tục là 1 yêu cầu quan trọng. Điều này càng quan trọng hơn nếu như các Agent này được thiết lập lịch để chạy tự động bởi vì dữ liệu tích hợp sẽ bị thiếu nếu như tại thời điểm lịch chạy tự động các Agent này không hoạt động. Để giải quyết việc này, Oracle đưa ra mô hình Cluster – trong mô hình này các Agent được cài đặt trên nhiều máy chủ trong cùng 1 cụm chạy trên WebLogic Server. Mô hình này đảm bảo được khi 1 Agent trong cụm Cluster không hoạt động khi đến lịch chạy thì vẫn có Agent trên máy chủ khác thực thi tác vụ.
  • Linh hoạt trong việc cấu hình kho dự trữ kết nối (Connection Pooling): so với mô hình Standalone sử dụng kho dữ trữ kết nối ở dạng UCP (Universal Connection Pool) nhưng không linh hoạt trong việc cấu hình các tham số kết nối thì mô hình JEE Agent lại linh hoạt hơn trong việc cho phép cấu hình các tham số này thông qua WebLogic Server. Việc thay đổi các tham số cho Connection Pooling sẽ giúp cho các tác vụ thực hiện tích hợp hệ thống giữ được các kết nối liên tục với CSDL do vậy sẽ tác vụ tích hợp sẽ chạy nhanh hơn và hiệu quả hơn.
  • Quản trị, giám sát và cảnh báo tập trung: thông qua Oracle Enterprise Manager Cloud (OEM), giờ đây các ODI JEE Agent có thể được tập trung quản lý và giám sát dễ dãng hơn.

Môi trường Colocated Agent

Đây là loại Agent mới ở phiên bản ODI 12c. Colocated Agent là sự kết hợp của Standalone Agent và JEE Agent. Cụ thể: các tính năng của Standalone Agent đều có ở Colocated Agent và kết hợp thêm 1 tính năng khác của JEE Agent là có chức năng quản lý thông qua WebLogic Server.

Tổng kết

Về tính năng


Standalone
Colocated
JEE
Nhỏ gọn
√
√

Chạy được trên Exadata
√
√

Agent được phát triển bằng Java
√
√
√
Có thể lập lịch chạy tự động
√
√
√
Quản lý Workflow
√
√
√
Cung cấp Web Services
√
√
√
Quản lý kết nối
√
√
√
Tích hợp LDAP
√
√
√
Tính năng cảnh báo

√*#
√#
Thay đổi cấu hình tham số Connection Pool


√
HA


√
Khả năng Scale-Out


√
(*): Chỉ hoạt động khi Node Manager được cài đặt và đang ở chế độ hoạt động
(#): Tính năng của Oracle Enterprise Manager (không phải tính năng của Agent)

Về mô hình triển khai


Tham khảo:

Friday, 23 October 2015

Hướng dẫn cài đặt Fusion Middleware trên Oracle Database 12c

Bài viết này sẽ giới thiệu về cách thức cài đặt Fusion Middleware trên Oracle Database 12c ở môi trường Windows.

1. Các yêu cầu cần phải có trước khi cài đặt
- Đã cài đặt Oracle Database 12c
- Đã tạo 1 PDB trên Oracle Database 12c
- Kết nối được với PDB đã tạo

2. Các bước cài đặt
Bước 1: chạy file rcu.bat trong đường dẫn ..\rcuHome\BIN
Bước 2: chọn Create để tạo 1 Repository mới
(Hình 1) 

Bước 3: nhập các thông số gồm:
  • Host Name: tên / IP máy chủ Database 
  • Port: cổng kết nối
  • Service Name: tên SID
  • Username: tài khoản đăng nhập Database (tài khoản có quyền SYSDBA)
  • Password: mật khẩu
  • Role: quyền hạn
Lưu ý: với Database 12c thì Service Name phải là tên 1 PDB, nếu ở bước này chúng ta nhập tên của 1 CDB thì Oracle sẽ báo lỗi (ORA-65096: invalid common user or role name) và chúng ta không thể tiếp tục được.

(Hình 2) 
Oracle thông báo việc kiểm tra ở bước này thành công / thất bại.
(Hình 3) 

Bước 4: chọn Create a new Prefix để tạo tiền tố cho 1 Component được chọn bên dưới. Trong bài này, chúng ta sẽ chọn Component là Oracle Data Integrator
(Hình 4) 
Oracle thông báo việc kiểm tra ở bước này thành công / thất bại.
(Hình 5)

Bước 5: nhập thông tin mật khẩu cho Repository được tạo
(Hình 6) 

Bước 6: khai báo các thông số cho Repository
(Hình 7) 

Bước 7: khai báo thông tin Schema Owner và các Tablespace cần thiết
(Hình 8) 
Oracle thông báo việc kiểm tra ở bước này thành công / thất bại.
(Hình 9) 

Bước 8: thực hiện việc tạo Repository
(Hình 10) 

Bước 9: hoàn tất việc cài đặt
(Hình 11)

Common Users và Local Users trong Oracle 12c

(Hình 1)
Trong môi trường Multitenant của Oracle 12c, chúng ta có thể tạo ra 2 nhóm người dùng để truy cập vào CDB và PDB. Nhóm người dùng truy cập vào CDB, Oracle gọi là Common Users và nhóm người dùng truy cập vào PDB được gọi là Local Users.

1. Common Users
- Common User: là tài khoản người dùng có  trên 1 CDB. Tài khoản này có hiệu lực trên cả các PDB hiện có trong 1 CDB và có hiệu lực luôn đối với cả các PDB mới (nếu được tạo thêm) trong cùng CDB.
- Các đặc tính cơ bản của Common User gồm:
  • Có quyền quản trị trên CDB và các PDB thuộc nó
  • Có quyền Plug/Unplug các PDB con 
  • Session hoạt động của Common User là CDB$ROOT
  • Các tài khoản Common User mới được tạo trên CDB phải bắt đầu bằng C## hoặc c##
  • Các đối tượng (object) được tạo ra bởi Common User thì khi đứng trong các PDB sẽ không nhìn thấy được
  • Common User SYS và SYSTEM mặc định của Oracle có quyền thao tác trên tất cả các CDB
- Câu lệnh tạo 1 Common User đơn giản:
1
2
3
CREATE USER c##admin
IDENTIFIED BY welcome1
CONTAINER = ALL;
(Câu lệnh 1) 
- Dòng 3 cho biết là Common User này được sử dụng cho tất cả các container (bao gồm cả CDB lẫn PDB).

2. Local Users
- Local User: là tài khoản người dùng chỉ tồn tại duy nhất trong 1 PDB. Local User vẫn có đầy đủ các quyền quản trị Database nhưng các quyền này chỉ có hiệu lực cục bộ trong PDB của user đó mà thôi.
- Các đặc tính cơ bản của Local User gồm:
  • Local User không có quyền tạo tài khoản Common User
  • Tài khoản Local User là duy nhất trong 1 PDB
  • Nếu được phân quyền, Local User có thể truy xuất và sử dụng tài nguyên của Common User
- Câu lệnh tạo 1 Local User đơn giản:
1
2
3
CREATE USER fmw
IDENTIFIED BY welcome1
CONTAINER = CURRENT;
(Câu lệnh 2)

Thursday, 22 October 2015

Các thao tác với Pluggable Database (PDB) trong Oracle 12c

Qua bài viết Giới thiệu về Multitenant trong Oracle 12c, chúng ta đã nắm được các khái niệm CDB và PDB. Bài viết này sẽ hướng dẫn các thao tác với Pluggable Database (PDB) trong Oracle 12c.

Có rất nhiều cách để tương tác với PDB như:
  • Sử dụng công cụ Database Configuration Assistant (DBCA)
  • Sử dụng SQL Plus
  • Sử dụng EM (Enterprise Manager)
Bài viết này sẽ sử dụng công cụ DBCA để thao tác với PDB.

1. Tạo PDB
Chúng ta chạy các câu lệnh như hình để kiểm tra các PDB đang tồn tại trong CDB như sau:
(Hình 1)

Như trong bài Cách tạo Container Database (CDB) trong Oracle 12c, trong bước chọn cấu hình cho CDB Oracle cho phép chúng ta tạo luôn PDB. Trong phần này chúng ta sẽ tạo ra 1 PDB khác để gắn vào CDB đã có. Các bước như sau:

Từ cửa sổ console, chạy câu lệnh dbca.
Bước 1: chọn Manage Pluggable Databases
(Hình 2)

Bước 2: chọn Create a Pluggable Database
(Hình 3) 

Bước 3: chọn 1 CDB làm root container
(Hình 4) 

Bước 4: chọn Create a new Pluggable Database
(Hình 5) 

Bước 5: thiết lập các thông số cho PDB gồm:
  • Pluggable Database Name: tên PDB
  • PDB Storage: nơi lưu trữ các datafiles cho các Tablespaces: SYSTEM, SYSAUX, TEMP, USERS của PDB.
    • Use Oracle Managed Files: Oracle sẽ tự động chọn nơi quản lý các datafiles này
    • (Hình 6) 

    • Specify Common Location: tùy chọn này cho phép chúng ta chỉ định ra thư mục lưu trữ các datafiles cho PDB.
    • (Hình 7) 
Bước 6: xem lại các thông số cấu hình
(Hình 8)

Bước 7: hoàn tất việc tạo 1 PDB
(Hình 9)

Chúng ta có thể thực hiện các câu lệnh sau để kiểm tra PDB mới được tạo ra.
(Hình 10)

2. Gỡ (Unplug) và xóa PDB
(Hình 11 - Unplug PDB)
Tương tự như việc tạo PDB nhưng ở bước 2 chúng ta sẽ chọn:
  • Unplug a Pluggable Database: để gỡ 1 PDB ra khỏi CDB
  • Delete a Pluggable Database: để xóa 1 PDB khỏi CDB
3. Nhân bản 1 PDB
(Hình 12 - Nhân bản PDB trong cùng 1 CDB)
(Hình 13 - Nhân bản PDB khác CDB)

Trong phần này chúng ta sẽ dùng SQL Plus để clone 1 PDB tên là pdbfmw thành 1 PDB mới tên là pdb1. Các thao tác như hình:
(Hình 14)
Nội dung các bước như sau:
  1. Đăng nhập quyền sysdba vào Database.
  2. Kiểm tra các PDB đang tồn tại. Ở bước này chúng ta thấy rằng PDB pdbfmw đang được mở  ở chế độ READ WRITE. Ở chế độ này chúng ta không thể 1 clone PDB đang chạy được.
  3. Đóng tất cả các instance của PDB pdbfmw này lại.
  4. Mở lại PDB pdbfmw ở chế độ READ ONLY.
  5. Kiểm tra lại chế độ mở của PDB pdbfmw này.
  6. Thực hiện clone pdbfmw thành 1 PDB mới tên là pdb1.
  7. Kiểm tra PDB mới được clone.
Việc clone PDB như hình 11 (clone không có tham số) tương đương với việc chúng ta giao cho Oracle tự quản lý các datafiles của PDB mới này. 

Ngoài thao tác clone PDB không có tham số như trên, chúng ta cũng có thể clone PDB với các tham số khác. Phần này chúng ta sẽ tự tìm hiểu thêm.

Cách tạo Container Database (CDB) trong Oracle 12c

Qua bài viết Giới thiệu về Multitenant trong Oracle 12c, chúng ta đã nắm được các khái niệm CDB và PDB. Bài viết này sẽ hướng dẫn cách tạo Container Database (CDB) trong Oracle 12c.

Có rất nhiều cách để tạo 1 CDB như:
  • Tạo trong lúc cài đặt Oracle Database Software
  • Tạo bằng công cụ Database Configuration Assistant (DBCA)
  • Tạo thông qua SQL Plus
  • Tạo thông qua Enterprise Manager (EM)
Trong bài viết này chúng ta chỉ khảo sát cách tạo CDB thông qua Database Configuration Assistant (DBCA).

Từ cửa sổ console chạy câu lệnh dbca.
Bước 1: chọn Create Database để tạo mới 1 Database
(Hình 1)

Bước 2: cấu hình các thông số cho Database mới. Trong bước này chúng ta lưu ý là Database mới được chọn là loại CDB (tích chọn Create As Container Database). Khi chọn loại Database là CDB thì chúng ta phải khai báo 1 PDB chứa bên trong. Ở đây chúng ta đặt tên cho PDB mới này là pdbfmw.
(Hình 2) 

Bước 3: Oracle sẽ kiểm tra các thông số cấu hình
(Hình 3) 

Bước 4: Oracle tổng hợp lại các thông tin cấu hình ở các bước trên
(Hình 4)

Bước 5: cài đặt thành công
(Hình 5)

Chúng ta có thể kiểm tra CDB và PDB được tạo kèm theo như hình dưới.
(Hình 6)

Giới thiệu về Multitenant trong Oracle 12c R1

Bài viết này sẽ giới thiệu về khái niệm Multitenant được sử dụng trong Oracle 12c R1.

1. Giới thiệu:
Để theo kịp xu hướng Cloud Computing và PaaS (Platform as a Service), từ phiên bản Oracle 12c thì Oracle đã giới thiệu tính năng mới là Pluggable Database. Tính năng này cho phép 1 Database độc lập có thể được di chuyển dễ dàng qua các hệ thống  khác nhau hoặc qua các nền tảng khác nhau hoặc giữa các bản phân phối (release) Database khác nhau.

2. Tổng quan:
Multitenant là 1 khái niệm mới được sử dụng trong phiên bản Oracle 12c và là 1 bước thay đổi lớn trong lịch sử kiến trúc của Oracle. Multitenant bao gồm 2 khái niệm nhỏ là Container Database (CDB) and Pluggable Database (PDB).
(Hình 1)

  • Container Database (CDB): một cách hiểu đơn giản thì CDB là 1 vùng chứa cha (root container) chứa các thành phần quan trọng của 1 Database như: controlfiles, datafiles, undo, tempfiles, redo logs, v.v...
  • Pluggable Database (PDB): PDB chỉ chứa các dữ liệu liên quan của chính Database mà nó lưu trữ như datafiles, tempfiles.
Mối quan hệ giữa CDB và PDB là mối quan hệ 1-nhiều. Trong phiên bản Oracle 12c R1 thì 1 CDB có thể chứa tối đa là 250 PDB.

3.Kiến trúc và tính năng:
(Hình 2)
Do đặc tính của PDB là 1 Database độc lập chứa trong 1 CDB nên Oracle cho phép chúng ta có thể gắn hoặc gỡ (plug/unplug) PDB ra khỏi CDB. Chúng ta có thể sử dụng việc gắn/gỡ PDB trong các trường hợp sau:
  • Chuyển Database sang 1 Platform khác
  • Chuyển Database sang máy chủ có phần cứng khác
  • Chuyển Database từ môi trường này sang môi trường khác như từ Testing sang Production
  • Chuyển Database sang môi trường hệ thống khác
  • Tăng độ sẵn sàng (HA) của Database khi di chuyển qua lại giữa các hệ thống
Ngoài những thuận tiện kể trên thì việc gắn/gỡ PDB cũng giúp chúng ta nâng cấp hoặc cập nhật các bản vá dễ dàng cho Oracle Database System mà không sợ ảnh hưởng đến các PDB.

Bên cạnh đó việc sao lưu và phục hồi cũng dễ dàng hơn. Chúng ta có thể sao lưu/phục hồi cho cả CDB bằng RMAN hoặc Data Guard hoặc thực hiện sao lưu/phục hồi cho từng PDB riêng lẻ.

4. Cây thừa kế các đối tượng
Trong các phiên bản Oracle 11g trở về trước thì cấu trúc cây thừa kế các đối tượng như sau:
DBA_ : All objects in the database.
|
--ALL_ : Objects accessible by the current user, including those owned by the current user.
  |
  --USER_ : Objects owned by the current user.

Trong phiên bản Oracle 12c, do có khái niệm Multitenant nên cây thừa kế các đối tượng sẽ như sau:
CDB_ : All objects in all containers (root and all PDBs).
|
--DBA_ : All objects in the current container (root or PDB).
  |
  --ALL_ : Objects accessible by the current user in the current container (root or PDB), including those owned by the current user.
    |
    --USER_ : Objects owned by the current user in the current container (root or PDB).