Mục đích: Hướng dẫn cách Bật và tắt Container Databases (CDB) và Pluggable Databases (PDB) trong Oracle Database 12c
- Container Database (CDB)
- Pluggable Database (PDB)
- Sử dụng SQL*Plus
- ALTER PLUGGABLE DATABASE
- Tự động bật Pluggable Database (PDB)
- Duy trì trạng thái PDB (từ 12.1.0.2 trở đi)
Container Database (CDB)
Giống như bình thường non-cdb hoặc 10g, 11g
$ sqlplus / as sysdba --Start Cú pháp: STARTUP [NOMOUNT | MOUNT | RESTRICT | UPGRADE | FORCE | READ ONLY] SQL> startup -- sẽ tự động nomount, mount và open SQL> startup nomount SQL> startup mount SQL> startup force SQL> startup open read only --Shutdown SQL> SHUTDOWN IMMEDIATE SQL> shutdown ABORT
Pluggable Database (PDB)
Pluggable databases có thể được bật và tắt khi sử dụng các lệnh SQL*Plus hoặc lệnh ALTER PLUGGABLE DATABASE
Sử dụng SQL*Plus
Các lệnh SQL*Plus để bật và tắt pluggable database, khi được kết nối với pluggable database với tư cách là người dùng có quyền (ví dụ như sysdba)$ sqlplus / as sysdba
SQL> SHOW CON_NAME
CON_NAME
------------------------------
CDB$ROOT
SQL>
SQL> SHOW CON_ID
CON_ID
------------------------------
1
SQL> ALTER SESSION SET CONTAINER=pdb1;
SQL> SHOW CON_NAME
CON_NAME
------------------------------
PDB1
STARTUP FORCE;
STARTUP OPEN READ WRITE [RESTRICT];
STARTUP OPEN READ ONLY [RESTRICT];
STARTUP UPGRADE;
SHUTDOWN [IMMEDIATE];
Hoặc kết nối vào pdb1 khi đang ở CDB$ROOT ta thực hiện câu lệnh:
SQL> connect system/oracle@pdb1
Một số ví dụ được hiển thị bên dưới.
STARTUP FORCE; SHUTDOWN IMMEDIATE; STARTUP OPEN READ WRITE RESTRICT; SHUTDOWN; STARTUP; SHUTDOWN IMMEDIATE;
ALTER PLUGGABLE DATABASE
Lệnh ALTER PLUGGABLE DATABASE có thể được sử dụng cho cả CDB hoặc PDB.
Các lệnh sau có sẵn để mở và đóng PDB hiện tại khi được kết nối với PDB với tư cách là người dùng đặc quyền.
SQL> ALTER SESSION SET CONTAINER=pdb1; SQL> SHOW CON_NAME CON_NAME ------------------------------ PDB1 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 hiển thị 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 để mở và đóng một hoặc nhiều PDB khi được kết nối với CDB với tư cách là người dùng đặc quyền.
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];
Mệnh đề <pdb-name-clause>:
- Một hoặc nhiều PDB, được chỉ định dưới dạng danh sách được phân tách bằng dấu phẩy.
Từ khóa ALL
để chỉ tất cả PDB.Từ khóa ALL EXCEPT (thực hiện mở/đóng tắt cả ngoài trừ)
, theo sau là một hoặc nhiều PDB trong danh sách được phân tách bằng dấu phẩy, để chỉ ra một tập hợp con của các PDB.
Một số ví dụ được hiển thị 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; --Open mọi PDB trừ pdb1 ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 CLOSE IMMEDIATE; --Close mọi PDB trừ pdb1
Pluggable Database (PDB) tự động bật
Patchset 12.1.0.2 đã giới thiệu khả năng duy trì trạng thái bật của các PDB, vì vậy bạn có thể không nên triển khai tính năng được thảo luận trong phần này.
Trước 12.1.0.2, khi CDB được khởi động, tất cả các PDB vẫn ở chế độ mount. Không có cơ chế mặc định nào để tự động bật chúng khi CDB được bật. Cách để đạt được điều này là sử dụng trigger trên CDB để bật một số hoặc tất 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 trigger nếu bạn không muốn tất cả các PDB được bật.
Duy trì trạng thái khi bật PDB (từ 12.1.0.2)
Patchset 12.1.0.2 đã giới thiệu khả năng duy trì trạng thái bật của các PDB khi CDB khởi động lại. Điều này được thực hiện bằng cách sử dụng lệnh ALTER PLUGGABLE DATABASE
.
Chúng ta sẽ bắt đầu bằng cách xem kết quả bình thường của quá trình CDB khởi động lại. Lưu ý rằng các PDB đang ở chế độ READ WRITE
trước khi khởi động lại, nhưng ở chế độ MOUNTED
sau đó.
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 pluggable database, 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;
View DBA_PDB_SAVED_STATES
hiển thị thông tin về trạng thái đã lưu của container.
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 bây giờ cho chúng ta một 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 --> do pdb1 SAVE STATE ở bước trên PDB2 MOUNTED --> do pdb2 không SAVE STATE
SQL>
Trạng thái đã lưu có thể được loại bỏ bằng cách sử dụ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 về một số lưu ý sử dụng được giải thích trong documentation.
- Trạng thái chỉ được lưu và hiển thị trong
DBA_PDB_SAVED_STATES
nếu container đang ở chế độREAD ONLY
hoặcREAD WRITE
. Cáclệnh ALTER PLUGGABLE DATABASE ... SAVE STATE
lưu lại trạng thái hiện tại để không ở chế độ
MOUNTED
, nhưng không đượ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 về lệnh
ALTER PLUGGABLE DATABASE
, các PDB có thể được xác định 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óaALL
hoặcALL EXCEPT
. Mệnh đề INSTANCES
có 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 trường hợp 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óaALL
hoặcALL EXCEPT
. Bất kể mệnh đềINSTANCES
nào, các lệnhSAVE/DISCARD STATE
chỉ ảnh hưởng đến instance hiện tại.
Tham khảo thêm:
- Introduction to the Multitenant Architecture
- Overview of the Multitenant Architecture
- Managing a Multitenant Environment
- ALTER PLUGGABLE DATABASE
- Using the STARTUP SQL*Plus Command on a PDB
- Preserving or Discarding the Open Mode of PDBs When the CDB Restarts
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* 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
hoặc
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 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: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Đị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
=============================
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,khóa học pl/sql, 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, 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 dataguard, oracle goldengate, mview, oracle exadata, oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, oracle oca, oracle ocp, oracle ocm