I. Khái niệm của schema và Pluggable
1. Khái niệm của schema
Trong Oracle Database, schema là một đối tượng quan trọng trong việc tổ chức và quản lý các đối tượng dữ liệu trong cơ sở dữ liệu. Schema được xem như một không gian lưu trữ ảo, chứa các đối tượng như bảng, view, procedure, function, package và trigger.
Mỗi schema được định nghĩa bởi một tài khoản người dùng, và có thể có nhiều tài khoản người dùng được phép truy cập vào cùng một schema. Một schema có thể tương ứng với một ứng dụng hoặc một phần của ứng dụng, và cũng có thể chứa các đối tượng dữ liệu liên quan đến các ứng dụng khác nhau.
Một số khái niệm quan trọng liên quan đến schema bao gồm: owner của schema (chủ sở hữu), nơi lưu trữ các đối tượng của schema (tablespace), và quyền truy cập của người dùng vào schema (privileges). Việc sử dụng schema đúng cách giúp cho việc quản lý cơ sở dữ liệu dễ dàng hơn và giảm thiểu sự phức tạp trong việc phân quyền truy cập dữ liệu.
2. Khái niệm của pluggable
Trong Oracle Database 12c và các phiên bản sau đó, Pluggable Database (PDB) là một đơn vị dữ liệu độc lập, được thiết kế để cung cấp tính linh hoạt và tiết kiệm chi phí cho các tổ chức và doanh nghiệp. Mỗi PDB có thể được triển khai và quản lý như một cơ sở dữ liệu riêng biệt, nhưng được chia sẻ các thành phần chung với Cơ sở dữ liệu gốc (Root Database).
Các PDB có thể được kết nối và ngắt kết nối từ Cơ sở dữ liệu gốc tùy ý, cho phép các nhà quản trị cơ sở dữ liệu di chuyển các đơn vị dữ liệu này qua các hệ thống khác nhau một cách dễ dàng hơn, hoặc triển khai một số PDB trên một máy chủ và một số khác trên máy chủ khác để phân chia tải.
Mỗi PDB có thể có một hoặc nhiều schema, tương tự như cơ sở dữ liệu truyền thống, nhưng có thể chia sẻ các thành phần hệ thống chung với cơ sở dữ liệu gốc. Sử dụng PDB, các nhà quản trị cơ sở dữ liệu có thể tạo ra một số lượng lớn các ứng dụng và dịch vụ trên một hạ tầng cơ sở dữ liệu duy nhất, đồng thời vẫn đảm bảo tính an toàn và hiệu suất cho các ứng dụng riêng biệt.
II. Sự khác nhau giữa schema và pluggable
Sự khác nhau chính giữa schema và pluggable database trong Oracle Database là cách chúng được sử dụng để quản lý dữ liệu.
Một schema trong Oracle là một tập hợp các đối tượng cơ sở dữ liệu như bảng, view, index, trigger và quyền được phân bổ cho một người dùng cụ thể hoặc một vai trò. Một người dùng hoặc một vai trò có thể có nhiều schema, mỗi schema có thể chứa các đối tượng dữ liệu khác nhau.
Một pluggable database (PDB) là một cơ sở dữ liệu độc lập, có thể cắm và rút ra từ một cơ sở dữ liệu (root database) của Oracle. Nó được coi là một "container database" (CDB) chứa nhiều PDB, mỗi PDB có thể có các schema, bảng và đối tượng dữ liệu của riêng nó. Khi tạo một PDB, nó được coi là một cơ sở dữ liệu hoàn chỉnh và có thể được sao chép hoặc di chuyển sang một cơ sở dữ liệu khác.
Do đó, schema được sử dụng để quản lý các đối tượng dữ liệu cụ thể cho một người dùng hoặc vai trò, trong khi pluggable database được sử dụng để quản lý các cơ sở dữ liệu độc lập có chứa các schema, bảng và đối tượng dữ liệu riêng biệt. Sự khác biệt này cho phép người dùng và quản trị viên cơ sở dữ liệu có thể quản lý các đối tượng dữ liệu của riêng họ một cách dễ dàng và linh hoạt hơn
III. Các lưu ý khi sử dụng schema và pluggable trong Oracle Database
Dưới đây là một số lưu ý khi sử dụng schema và pluggable trong Oracle Database:
- Khi sử dụng schema, nên tạo các user khác nhau cho từng ứng dụng và cấp phân quyền truy cập sao cho phù hợp với mục đích sử dụng. Tránh sử dụng user và quyền quản trị mặc định để bảo vệ dữ liệu
- Nên sử dụng pluggable database trong trường hợp có nhiều ứng dụng cần sử dụng cùng một hệ thống Oracle. Với pluggable database, mỗi ứng dụng được đóng gói vào một container riêng biệt, giúp tăng tính cô lập và bảo mật của hệ thống.
- Khi sử dụng pluggable database, cần cân nhắc vấn đề tài nguyên, vì mỗi pluggable database sẽ có riêng các tài nguyên (memory, CPU, disk space) được phân bổ. Nên đánh giá kỹ càng trước khi tạo ra nhiều pluggable database trên cùng một hệ thống Oracle.
- Cần đảm bảo rằng tất cả các database (schema hoặc pluggable) đều được đồng bộ hóa thường xuyên để đảm bảo tính nhất quán và độ tin cậy của hệ thống.
- Trong trường hợp cần di chuyển hoặc sao chép database, nên đảm bảo rằng cả schema và pluggable đều được di chuyển hoặc sao chép đầy đủ và chính xác, bao gồm cả các quyền và phân quyền truy cập.