All about Oracle Technologies

Showing posts with label CDB. Show all posts
Showing posts with label CDB. Show all posts

Friday, 23 October 2015

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á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).