Hiển thị các bài đăng có nhãn Multitenant. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Multitenant. Hiển thị tất cả bài đăng

Thứ Hai, 8 tháng 9, 2025

Rman recovery point in time Oracle Database 19c

Bài viết này sẽ hướng dẫn các bạn cách để Recovey dữ liệu về một mốc thời gian nào đó trong quá khứ sử dụng RMAN trong Oracle Database 19c.

Sửa bài viết

Rman backup database tự động sử dụng Script shell và crontab Oracle database 19c

Các bước thực hiện: Rman backup database tự động sử dụng Script shell và crontab Oracle database 19c

  • Tạo file script backup và phân quyền thực thi file
  • Thêm vào crontab
  • Thực thi backup tự động
Sửa bài viết

Rman Demo Recovery Table Point in time Oracle database 19c

Các bước thực hiện:

  • Database phải trong chế độ Archivelog mode
  • Tạo dữ liệu test
  • Xoá và recover table
  • Test dữ liệu
Sửa bài viết

Point In Time Recovery trong PDB Database Multitenant

Point-in-Time Recovery (PITR) trong môi trường Oracle Multitenant là một quy trình phức tạp nhưng quan trọng để khôi phục dữ liệu của Pluggable Database (PDB) về một thời điểm cụ thể. Quy trình này giúp khôi phục lại trạng thái dữ liệu trước khi xảy ra lỗi hoặc sự cố. Dưới đây là các bước chi tiết để thực hiện PITR cho một PDB.

Sửa bài viết

Flashback Pluggable Database (PDB) in Oracle Database

Sử dụng Flashback trong môi trường PDB (Pluggable Database) của Oracle có thể giúp bạn khôi phục lại cơ sở dữ liệu về trạng thái trước đó mà không cần phải thực hiện restore từ bản sao lưu. Dưới đây là các bước để cấu hình và sử dụng Flashback trong môi trường PDB.

Sửa bài viết

Backup CDB Container Database và PDB Pluggable Database

Thực hiện backup CDB (Container Database) và PDB (Pluggable Database) trong Oracle có thể được thực hiện bằng công cụ RMAN (Recovery Manager). RMAN là một công cụ mạnh mẽ để quản lý backup và recovery trong Oracle Database. Dưới đây là hướng dẫn chi tiết cách thực hiện backup cho cả CDB và PDB.

Sửa bài viết

Recovery CDB Container Database và PDB Pluggable Database trong Oracle Database

CONTAINER DATABASE (CDB) RECOVERY

Khi tiến hành restore và recovery CDB thì đồng thời chúng ta cũng thực hiện restore và recovery tất cả PDB có trên đó.

Sửa bài viết

Các khái niệm quan trọng nhất trong kiến trúc multitenant Container Database CDB

Trong Oracle Multitenant, có các khái niệm quan trọng liên quan đến các container trong một cơ sở dữ liệu container (CDB):

Sửa bài viết

Thứ Bảy, 6 tháng 9, 2025

Tạo mới Database theo kiến trúc Multitenant CDB, PDB Oracle database

Tạo cơ sở dữ liệu Oracle theo kiến trúc Multitenant Container Database (CDB) và Pluggable Database (PDB) là một quy trình nhiều bước. Dưới đây là các bước chi tiết để tạo một CDB và PDB trên Oracle Database:

Sửa bài viết

Chủ Nhật, 22 tháng 8, 2021

Quản lý Tablespaces trong Container Database (CDB) và Pluggable Database (PDB) trong Oracle Database 12c

Mục đích: Hướng dẫn Quản lý Tablespaces trong Container Database (CDB) và Pluggable Database (PDB) trong Oracle Database 12c

Sửa bài viết

Cấu hình, thay đổi tham số Instance Container Databases (CDB) và Pluggable Databases (PDB) in Oracle Database 12c

Mục đích: Hướng dẫn Cấu hình, thay đổi tham số Instance Container Databases (CDB) và Pluggable Databases (PDB) in Oracle Database 12c

Nội dung:
  • Cấu hình tham số Instance trong CDB (ALTER SYSTEM)
  • Cấu hình tham số Instance trong PDB (ALTER SYSTEM)
  • Thay đổi CDB (ALTER DATABASE)
  • Thay đổi PDB (ALTER PLUGGABLE DATABASE)
  • PDB_SPFILE$

Cấu hình các tham số của Instancetrong CDB (ALTER SYSTEM)

Việc cấu hình các tham số phiên bản cho CDB không khác nhiều so với cấu hình cho các cơ sở dữ liệu non-CDB. Lệnh ALTER SYSTEM được sử dụng để thiết lập các tham số, với một số cấu hình cơ sở dữ liệu được sửa đổi bằng cách sử dụng lệnh ALTER DATABASE.

Khi được kết nối với tư cách là người dùng đặc quyền và trỏ đến root container, bất kỳ lệnh ALTER SYSTEM nào theo mặc định sẽ chỉ đến root container. Điều này có nghĩa là hai lệnh sau là tương đương nhau:

alter system set parameter_name=value;
alter system set parameter_name=value container=current;


ALTER SYSTEM SET OPEN_CURSORS = 200;
ALTER SYSTEM SET OPEN_CURSORS = 200 CONTAINER = CURRENT;

Ngoài hành động mặc định, thay đổi tham số khởi tạo từ root container có thể nhắm mục tiêu tất cả các container bằng cách sử dụng cú pháp sau.

alter system set parameter_name=value container=all;

ALTER SYSTEM SET OPEN_CURSORS = 200 CONTAINER = ALL;

Bằng cách sử dụng, CONTAINER=ALL tức là các PDB đều ảnh hưởng bởi tham số này.  Tuy nhiên nếu chúng ta thay đổi cục bộ tham số này (OPEN_CURSORS=300) ở PDB1 chẳng hạn thì giá trị 200 kia bị lờ đi.

Các PDB có thể ghi đè một số cài đặt tham số bằng cách đưa ra lệnh gọi ALTER SYSTEM cục bộ từ vùng chứa. Xem tài liệu tại đây

Cấu hình tham số Instance Parameters trong PDB (ALTER SYSTEM)

Trong phần trước, tôi đã đề cập rằng các tham số của instance có thể được thiết lập cho tất cả các PDB thuộc CDB bằng cách sử dụng mệnh đề  CONTAINER=ALL của lệnh ALTER SYSTEM từ root container. Ngay cả khi thiết lập kế thừa này, PDB cục bộ có thể ghi đè cấu hình này bằng cách sử dụng ALTER SYSTEM cục bộ bên trong PDB. Chỉ một tập hợp con của các tham số khởi tạo có thể được sửa đổi cục bộ trong PDB. Chúng có thể được hiển thị bằng cách sử dụng truy vấn sau.

column name format a35
column value format a35
 
select name, value
from   v$system_parameter
where  ispdb_modifiable = 'TRUE'
order by name;

Để thực hiện thay đổi PDB cục bộ, hãy đảm bảo rằng bạn được kết nối trực tiếp với một người sử dụng đặc quyền trong PDB (user local) hoặc với một người dùng có đặc quyền của CDB (user common). Như đã đề cập trước đây, nếu mệnh đề CONTAINER không được đưa ra, container hiện tại được ăn vào các thiết lập tham số, vì vậy lệnh ALTER SYSTEM sau đây là giống nhau

conn / as sysdba
alter session set container = pdb1;

alter system set parameter_name=value;
alter system set parameter_name=value container=current;

ALTER SYSTEM SET OPEN_CURSORS = 300;
ALTER SYSTEM SET OPEN_CURSORS = 300 CONTAINER = CURRENT;

Các thay đổi tham số mức instance trong root container được lưu trữ trong SPFILE theo cách bình thường. Khi bạn thay đổi các tham số khởi tạo dành riêng cho PDB trong PDB, chúng không được lưu trữ trong SPFILE. Thay vào đó, chúng được lưu trong bảng hệ thống PDB_SPFILE$, được thảo luận bên dưới. Xem tài liệu tại đây .

Thay đổi CDB (ALTER DATABASE)

Từ góc độ CDB, lệnh ALTER DATABASE tương tự như lệnh của cơ sở dữ liệu non-CDB. Bạn chỉ cần hiểu phạm vi của những thay đổi mà bạn đang thực hiện. Một số lệnh ALTER DATABASE áp dụng cho CDB theo định nghĩa sẽ ảnh hưởng đến tất cả các PDB của CDB. Một só tham số khác chỉ nhắm mục tiêu root container. Phạm vi của lệnh ALTER DATABASE được hiển thị trong bảng trong tài liệu ở đây . Ví dụ:

ALTER DATABASE BACKUP CONTROLFILE TO '+DATA/dbs/backup/control.bkp';

ALTER DATABASE cdb ADD LOGFILE
  GROUP 4 ('/u01/logs/orcl/redo04a.log','/u02/logs/orcl/redo04b.log')
  SIZE 100M BLOCKSIZE 512 REUSE;

ALTER DATABASE DEFAULT TABLESPACE root_tbs;

ALTER DATABASE DATAFILE '/u02/oracle/cdb_01.dbf' ONLINE;

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE root_temp;

Thay đổi PDB (ALTER PLUGGABLE DATABASE)

Việc sửa đổi một PDB được thực hiện bằng cách trỏ đến container có liên quan (alter session set container=) và sử dụng lệnh ALTER PLUGGABLE DATABASE, nhưng vì lý do tương thích ngược, lệnh ALTER DATABASE sẽ hoạt động đối với hầu hết các sửa đổi có thể. Không có gì ngạc nhiên khi các sửa đổi có thể có đối với PDB là một tập hợp con của những sửa đổi có thể có đối với cơ sở dữ liệu CDB hoặc non-CDB.

Hãy nhớ rằng, để nhắm mục tiêu PDB, bạn phải kết nối với dịch vụ trỏ đến PDB tương ứng hoặc kết nối với root container và chuyển sang PDB container. Một số sửa đổi PDB có thể được hiển thị bên dưới.

conn / as sysdba
alter session set container = pdb1;

-- Phiên bản mặc định cho PDB.
alter pluggable database default edition = ora$base;

-- Kiểu tablespace mặc định cho PDB.
alter pluggable database set default bigfile tablespace;
alter pluggable database set default smallfile tablespace;

-- Tablespaces mặc định cho PDB.
alter pluggable database default tablespace users;
alter pluggable database default temporary tablespace temp;

-- Thay đổi global name. Điều này sẽ thay đổi tên container và
- tên của dịch vụ mặc định được đăng ký với listener.
alter pluggable database open restricted force;
alter pluggable database rename global_name to pdb1new;
alter pluggable database close immediate;
alter pluggable database open;

-- Thay đổi múi giờ cho PDB.
alter pluggable database set time_zone='GMT';

-- Thực hiện offline/online cho PDB 
alter pluggable database datafile '/u01/app/oracle/oradata/cdb1/pdb1/pdb1_users01.dbf' offline; alter pluggable database datafile '/u01/app/oracle/oradata/cdb1/pdb1/pdb1_users01.dbf' online; alter pluggable database datafile '/u01/app/oracle/oradata/cdb1/pdb1/pdb1_users01.dbf' resize 1g autoextend on next 1m; -- Ghi log bổ sung cho PDB. alter pluggable database add supplemental log data; alter pluggable database drop supplemental log data;

Ngoài ra, có một cơ chế để kiểm soát kích thước tối đa của PDB và lượngtemp được chia sẻ mà nó có thể sử dụng.

-- Giới hạn tổng dung lượng lưu trữ của PDB (datafile và local temp files).
alter pluggable database storage (maxsize 5g);

-- Giới hạn dung lượng temp được sử dụng trong các temp file được chia sẻ.
alter pluggable database storage (max_shared_temp_size 2g);

-- Kết hợp cả 2 
alter pluggable database storage (maxsize 5g max_shared_temp_size 2g);

-- Xóa bỏ các giới hạn đó
alter pluggable database storage unlimited;

PDB_SPFILE$

Như đã đề cập trước đây, các tham số khởi tạo cho PDB được lưu trữ trong một bảng hệ thống được gọi là PDB_SPFILE$Không có nhiều thông tin về nó trong tài liệu chính, nhưng nó sẽ được thảo luận trong ghi chú MOS sau đây.

Các tài liệu khuyến khích chúng ta sử dụng V$PARAMETER, V$SYSTEM_PARAMETER và V$SPPARAMETER, mà tất cả bao gồm một cột CON_ID, chứ không phải là truy vấn bảng PDB_SPFILE$.

Không rõ 100% bảng PDB_SPFILE$ được quản lý như thế nào Ví dụ: ghi chú MOS này cho biết các tham số đặt lại vẫn còn trong bảng, nhưng được đánh dấu là đã xóa, nhưng dường như không có bất kỳ thứ gì trong row cho biết một giá trị được đánh dấu là đã xóa.

Rõ ràng có những tình huống mà nội dung của bảng PDB_SPFILE$ có thể gây ra vấn đề và cần sự can thiệp thủ công. Trong lưu ý MOS sau đây, khuyến nghị là xóa thủ công một tham số cụ thể khỏi bảng và khởi động lại PDB.

Một kịch bản đã gây ra sự cố cho tôi liên quan đến việc tạo một PDB từ một phiên bản non-CDB. Vào cuối quá trình, tôi đã để lại các thông số mức PDB trong bảng  PDB_SPFILE$ mà tôi không muốn và việc đặt lại chúng ở mức PDB dường như không có bất kỳ tác động nào. Để giải quyết điều này tôi đã làm như sau.

Nhận danh sách các tham số, bao gồm PDB_UID.

set linesize 120
column pdb_name format a10
column name format a30
column value$ format a30

select ps.db_uniq_name,
       ps.pdb_uid,
       p.name as pdb_name,
       ps.name,
       ps.value$
from   pdb_spfile$ ps
       join v$pdbs p on ps.pdb_uid = p.con_uid
order by 1, 2, 3;

Xóa các tham số cấp PDB khỏi bảng, sử dụng giá trị PDB_UID .

delete from pdb_spfile$ where pdb_uid = {your PDB_UID value};
commit;

Khởi động lại  container database.

Nó khá căng và như tôi đã cảnh báo ở trên, đây không phải là một khuyến nghị!

Để biết thêm thông tin, hãy xem:

Hy vọng hữu ích với bạn.

=============================
* 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
=============================
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
Sửa bài viết

Bật và tắt Container Databases (CDB) và Pluggable Databases (PDB) trong Oracle Database 12c

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

Sửa bài viết

Thứ Bảy, 21 tháng 8, 2021

Kết nối tới Container Databases (CDB) và Pluggable Databases (PDB) in Oracle Database 12c/19c/21c

Mục đích: Hướng dẫn cách kết nối đến Container Databases (CDB) và Pluggable Databases (PDB) trong Oracle Database 12c/19c/21c

Sửa bài viết

Chuyển đổi Non-Container Database (CDB) sang Pluggable Database (PDB) trong Oracle Database 12c Release 1 (12.1)

Mục đích:  Chuyển đổi Non-Container Database (CDB) sang Pluggable Database (PDB) trong Oracle Database 12c Release 1 (12.1)/19c, nôi dung bài viết:

Sửa bài viết

Tạo và cấu hình Container Database (CDB) trong Oracle Database 12c Release 1 (12.1)

Mục đích: Tính năng multitenant được giới thiệu từ phiên bản Oracle Database 12.1. Trong bài viết này tôi sẽ giới thiệu cách tạo và cấu hình Container Database (CDB) trong Oracle Database 12c, nội dung bài viết:

Sửa bài viết

ĐỌC NHIỀU

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