Thứ Năm, 15 tháng 1, 2026

Multitenant: Khởi động và tắt cơ sở dữ liệu vùng chứa (CDB) và cơ sở dữ liệu có thể cắm (PDB) trong Oracle Database 12c Release 1 (12.1)

Tùy chọn đa người dùng (Multitenant) được giới thiệu trong Oracle Database 12c cho phép một cơ sở dữ liệu vùng chứa (CDB) duy nhất lưu trữ nhiều cơ sở dữ liệu có thể cắm riêng biệt (PDB). Bài viết này trình bày cách khởi động và tắt cơ sở dữ liệu vùng chứa (CDB) và cơ sở dữ liệu có thể cắm (PDB).

  • Cơ sở dữ liệu container (CDB)
  • Cơ sở dữ liệu có thể cắm thêm (PDB)
    • Các lệnh SQL*Plus
    • CƠ SỞ DỮ LIỆU CÓ THỂ CẮM VÀO
    • Khởi động tự động cơ sở dữ liệu có thể cắm thêm (PDB)
    • Bảo lưu trạng thái khởi động PDB (từ phiên bản 12.1.0.2 trở đi)

Các bài viết liên quan.

  • Đa người dùng: Tất cả bài viết
  • Đa người dùng: Khởi động và tắt các CDB và PDB
  • Chế độ chỉ đọc lai cho PDB trong Oracle Database 23ai

Container Database (CDB)

Việc khởi động và tắt cơ sở dữ liệu container vẫn giống như đối với các phiên bản thông thường. Các lệnh SQL*Plus STARTUPcó SHUTDOWNsẵn khi kết nối với CDB với tư cách người dùng có quyền quản trị. Một số giá trị điển hình được hiển thị bên dưới.

STARTUP [NOMOUNT | MOUNT | RESTRICT | UPGRADE | FORCE | READ ONLY]
SHUTDOWN [IMMEDIATE | ABORT]

Pluggable Database (PDB)

Các cơ sở dữ liệu có thể cắm thêm có thể được khởi động và dừng bằng các lệnh SQL*Plus hoặc lệnh  ALTER PLUGGABLE DATABASE tương ứng.

Các lệnh SQL*Plus

Các lệnh SQL*Plus sau đây có sẵn để khởi động và dừng cơ sở dữ liệu có thể cắm thêm, khi kết nối với cơ sở dữ liệu đó với tư cách người dùng có quyền quản trị.
STARTUP FORCE;
STARTUP OPEN READ WRITE [RESTRICT];
STARTUP OPEN READ ONLY [RESTRICT];
STARTUP UPGRADE;
SHUTDOWN [IMMEDIATE];

Một số ví dụ được trình bày bên dưới.

STARTUP FORCE;
SHUTDOWN IMMEDIATE;

STARTUP OPEN READ WRITE RESTRICT;
SHUTDOWN;

STARTUP;
SHUTDOWN IMMEDIATE;

ALTER PLUGGABLE DATABASE

Lệnh này ALTER PLUGGABLE DATABASEcó thể được sử dụng từ CDB hoặc PDB.

Các lệnh sau đây có sẵn để mở và đóng PDB hiện tại khi kết nối với PDB với tư cách người dùng có quyền quản trị.

ALTER PLUGGABLE DATABASE OPEN READ WRITE [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE OPEN READ ONLY [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE OPEN UPGRADE [RESTRICTED];
ALTER PLUGGABLE DATABASE CLOSE [IMMEDIATE];

Một số ví dụ được trình bày bên dưới.

ALTER PLUGGABLE DATABASE OPEN READ ONLY FORCE;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;

ALTER PLUGGABLE DATABASE OPEN READ WRITE;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;

Các lệnh sau đây có sẵn để mở và đóng một hoặc nhiều PDB khi kết nối với CDB với tư cách người dùng có quyền quản trị.

ALTER PLUGGABLE DATABASE <pdb-name-clause> OPEN READ WRITE [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE <pdb-name-clause> OPEN READ ONLY [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE <pdb-name-clause> OPEN UPGRADE [RESTRICTED];
ALTER PLUGGABLE DATABASE <pdb-name-clause> CLOSE [IMMEDIATE];

Điều khoản đó <pdb-name-clause>có thể là bất kỳ điều khoản nào sau đây:

  • Một hoặc nhiều tên PDB, được chỉ định dưới dạng danh sách phân cách bằng dấu phẩy.
  • Từ ALLkhóa dùng để chỉ tất cả các PDB.
  • Các ALL EXCEPTtừ khóa, theo sau là một hoặc nhiều tên PDB được phân tách bằng dấu phẩy, dùng để chỉ định một tập hợp con của các PDB.

Một số ví dụ được trình bày bên dưới.

ALTER PLUGGABLE DATABASE pdb1, pdb2 OPEN READ ONLY FORCE;
ALTER PLUGGABLE DATABASE pdb1, pdb2 CLOSE IMMEDIATE;

ALTER PLUGGABLE DATABASE ALL OPEN;
ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE;

ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 OPEN;
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 CLOSE IMMEDIATE;

Khởi động tự động cơ sở dữ liệu có thể cắm thêm (PDB)

Bản vá 12.1.0.2 đã bổ sung khả năng bảo toàn trạng thái khởi động của PDB, vì vậy có lẽ bạn không nên triển khai trình kích hoạt theo cách đã thảo luận trong phần này.

Trước phiên bản 12.1.0.2, khi CDB được khởi động, tất cả các PDB vẫn ở chế độ gắn kết. Không có cơ chế mặc định nào để tự động khởi động chúng khi CDB được khởi động. Cách để thực hiện điều này là sử dụng một trình kích hoạt hệ thống trên CDB để khởi động một số hoặc tất cả các PDB.

CREATE OR REPLACE TRIGGER open_pdbs 
  AFTER STARTUP ON DATABASE 
BEGIN 
   EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN'; 
END open_pdbs;
/

Bạn có thể tùy chỉnh trình kích hoạt nếu không muốn tất cả các PDB của mình khởi chạy.

Bảo lưu trạng thái khởi động PDB (từ phiên bản 12.1.0.2 trở đi)

Bản vá 12.1.0.2 đã giới thiệu khả năng bảo toàn trạng thái khởi động của PDB thông qua việc khởi động lại CDB. Điều này được thực hiện bằng ALTER PLUGGABLE DATABASElệnh.

Chúng ta sẽ bắt đầu bằng cách xem xét kết quả bình thường của việc khởi động lại CDB. Lưu ý rằng các PDB đang ở READ WRITEchế độ trước khi khởi động lại, nhưng lại ở MOUNTEDchế độ sau khi khởi động lại.

SELECT name, open_mode FROM v$pdbs;

NAME                           OPEN_MODE
------------------------------ ----------
PDB$SEED                       READ ONLY
PDB1                           READ WRITE
PDB2                           READ WRITE

SQL> 


SHUTDOWN IMMEDIATE;
STARTUP;


SELECT name, open_mode FROM v$pdbs;

NAME                           OPEN_MODE
------------------------------ ----------
PDB$SEED                       READ ONLY
PDB1                           MOUNTED
PDB2                           MOUNTED

SQL>

Tiếp theo, chúng ta mở cả hai cơ sở dữ liệu có thể cắm thêm, nhưng chỉ lưu trạng thái của PDB1.

ALTER PLUGGABLE DATABASE pdb1 OPEN;
ALTER PLUGGABLE DATABASE pdb2 OPEN;
ALTER PLUGGABLE DATABASE pdb1 SAVE STATE;

Giao diện này DBA_PDB_SAVED_STATEShiển thị thông tin về trạng thái đã lưu của các vùng chứa.

COLUMN con_name FORMAT A20
COLUMN instance_name FORMAT A20

SELECT con_name, instance_name, state FROM dba_pdb_saved_states;

CON_NAME             INSTANCE_NAME        STATE
-------------------- -------------------- --------------
PDB1                 cdb1                 OPEN

SQL>

Khởi động lại CDB lúc này cho kết quả khác.

SELECT name, open_mode FROM v$pdbs;

NAME                           OPEN_MODE
------------------------------ ----------
PDB$SEED                       READ ONLY
PDB1                           READ WRITE
PDB2                           READ WRITE

SQL> 


SHUTDOWN IMMEDIATE;
STARTUP;


SELECT name, open_mode FROM v$pdbs;

NAME                           OPEN_MODE
------------------------------ ----------
PDB$SEED                       READ ONLY
PDB1                           READ WRITE
PDB2                           MOUNTED

SQL>

Trạng thái đã lưu có thể bị hủy bỏ bằng câu lệnh sau.

ALTER PLUGGABLE DATABASE pdb1 DISCARD STATE;

COLUMN con_name FORMAT A20
COLUMN instance_name FORMAT A20

SELECT con_name, instance_name, state FROM dba_pdb_saved_states;

no rows selected

SQL>

Dưới đây là danh sách ngắn gọn một số lưu ý về cách sử dụng được giải thích trong tài liệu .

  • Trạng thái chỉ được lưu và hiển thị trong giao DBA_PDB_SAVED_STATESdiện nếu vùng chứa ở chế độ READ ONLYhoặc READ WRITEALTER PLUGGABLE DATABASE ... SAVE STATELệnh không báo lỗi khi chạy trên vùng chứa ở MOUNTEDchế độ , nhưng không có gì được ghi lại, vì đây là trạng thái mặc định sau khi khởi động lại CDB.
  • Giống như các ví dụ khác của ALTER PLUGGABLE DATABASElệnh này, các PDB có thể được xác định riêng lẻ, dưới dạng danh sách phân tách bằng dấu phẩy, bằng cách sử dụng từ khóa ALLhoặc ALL EXCEPT.
  • Mệnh đề này INSTANCEScó thể được thêm vào khi sử dụng trong môi trường RAC. Mệnh đề có thể xác định các phiên bản riêng lẻ, dưới dạng danh sách được phân tách bằng dấu phẩy, sử dụng từ khóa ALLhoặc ALL EXCEPT. Bất kể mệnh INSTANCESđề nào, SAVE/DISCARD STATEcác lệnh chỉ ảnh hưởng đến phiên bản hiện tại.

Để biết thêm thông tin chi tiết, vui lòng xem:

Hi vọng điều này sẽ hữu ích

=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master