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

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

Quản trị Temporary Tablespace trong môi trường Oracle Multitenant (CDB và PDB)

Quản trị Temporary Tablespace trong môi trường Oracle Multitenant (CDB và PDB) là một phần quan trọng để đảm bảo hiệu suất và khả năng mở rộng của cơ sở dữ liệu. Temporary tablespace được sử dụng để lưu trữ dữ liệu tạm thời, chẳng hạn như các kết quả trung gian của các phép toán sorting, hashing, và một số hoạt động khác.

Sửa bài viết

CDB và PDB trong Oracle database 19c

CDB và PDB trong Oracle Database 19c: Giải thích chi tiết

Sửa bài viết

Các thành phần giữa CDB và PDB trong kiến trúc Multitenant

Trong kiến trúc Oracle Multitenant, một Pluggable Database (PDB) chia sẻ một số thành phần với Container Database (CDB) và cũng có các thành phần riêng của mình. Dưới đây là sự phân chia cụ thể giữa các thành phần chung và riêng:

Sửa bài viết

Kiến trúc Oracle Multitenant


Oracle Multitenant là một tính năng của Oracle Database, được giới thiệu từ phiên bản 12c, cho phép bạn quản lý nhiều cơ sở dữ liệu trong một môi trường đơn lẻ, gọi là Container Database (CDB). Trong môi trường này, mỗi cơ sở dữ liệu được gọi là một Pluggable Database (PDB).

Sửa bài viết

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

Quản trị Pluggable Database (PDB) trong Oracle Multitenant

Quản trị Pluggable Database (PDB) trong Oracle Multitenant bao gồm các tác vụ như tạo, mở, đóng, di chuyển, sao chép, và xóa PDB. Dưới đây là hướng dẫn chi tiết về cách thực hiện các tác vụ quản trị PDB thông qua SQL*Plus và Oracle SQL Developer.

Sửa bài viết

Chuyển cơ sở dữ liệu Non-CDB sang PDB trong Oracle Multitenant

Chuyển cơ sở dữ liệu từ một Non-CDB sang PDB trong Oracle Multitenant là một quá trình phức tạp nhưng cần thiết khi bạn muốn tận dụng lợi thế của kiến trúc Multitenant. Dưới đây là các bước chi tiết để thực hiện việc này.

Sửa bài viết

Tạo Database mới bằng DBCA trong Oracle database 19c

Trong hướng dẫn này chúng ta sẽ cùng nhau tạo một CSDL mới trong Oracle thông qua DBCA trong oracle database 19c.

Sửa bài viết

Tạo Container Database mới bằng DBCA trong Oracle database 19c

Trong Oracle Database, Container Database (CDB) là một kiểu cơ sở dữ liệu mới giới thiệu từ phiên bản 12c trở đi, giới thiệu khái niệm Multitenant Database. CDB là một cấu trúc cơ sở dữ liệu chứa nhiều Pluggable Databases (PDBs), tạo ra một mô hình kiến trúc đa-tenant.

Sửa bài viết

Thứ Sáu, 5 tháng 9, 2025

Kết nối vào Pluggable Database như thế nào?

Để kết nối vào một Pluggable Database (PDB) trong Oracle, bạn cần thực hiện một số bước nhất định.

Kết nối vào Pluggable Database như thế nào?

Sửa bài viết

Chủ Nhật, 9 tháng 6, 2024

Sự khác biệt giữa Oracle 12c và Oracle 19c là gì? Các phiên bản Oracle

Oracle là một trong những hệ thống cơ sở dữ liệu nổi tiếng nhất thế giới, được tin dùng bởi nhiều doanh nghiệp lớn trong việc vận hành tổ chức.

Sửa bài viết

Thứ Năm, 20 tháng 7, 2023

Thay đổi VARCHAR2 thành 32K – Từ Phiên bản Oracle Database 12c

Oracle đã thực hiện một vài thay đổi đối với cơ sở dữ liệu để cho phép các doanh nghiệp giảm chi phí chuyển sang Oracle 12c. Một trong những thay đổi này là giới hạn kích thước đã được đặt trên các loại dữ liệu VARCHAR2, NVARCHAR2 và RAW. Trong các phiên bản trước đây của cơ sở dữ liệu Oracle, kích thước tối đa cho các loại dữ liệu này là 4.000 byte (kiểu varchar2, nvarchar2). Trong Oracle 12c, các loại dữ liệu này hiện có thể được tăng lên 32.767 byte.

Sửa bài viết

Chủ Nhật, 9 tháng 7, 2023

Cấu hình, quản trị Enterprise Manager Database Express 12c trong Oracle Database 12c

GIỚI THIỆU

Enterprise Manager Database Express 12c giúp chúng ta giám sát, quản trị, cấu hình thuận tiện hơn. 

Những điều quan trọng cần nhớ về Enterprise Manager Database Express:

  • EM DB Express không phải là Cloud Control (cài riêng bên ngoài) hoặc Grid Control (EM 11g)
  • EM DB Express không phải là sự thay thế cho DB Control từ 11g, vì nó có ít chức năng hơn đáng kể để nhẹ hơn
  • Một DBA sẽ không thể quản trị cơ sở dữ liệu chỉ bằng EM DB Express mà phải thêm các script, tool riêng

Nếu tổ chức của bạn sử dụng Cloud Control, điều đó nên, có lẽ bạn sẽ không bao giờ sử dụng EM Database Express. Mặt khác, nếu bạn đang dùng xung quanh với cơ sở dữ liệu và muốn có một giao diện đẹp để thực hiện một số tác vụ thì EM Database Express có thể là câu trả lời của bạn.

Sửa bài viết

Thứ Tư, 17 tháng 5, 2023

[VIP5] Khi nào cần tạo lại online redo log, sizing như thế nào cho chuẩn trong Oracle Database?

Trong quá trình quản lý redo log, bạn có thể sẽ có những lăn tăn:
  • Sizing redo log như thế nào để phù hợp?
  • Tạo lại online redo log và cách tạo lại trong giờ hành chính có an toàn không?
  • Các lỗi có thể sẽ gặp nếu không sizing chuẩn: Treo DB khi DML dồn dập.

Hãy đọc hết bài viết này để tìm được câu trả lời thỏa đáng.

Vấn đề gặp phải

-- Monitor Alert log xuất hiện cảnh báo:
Thread 2 cannot allocate new log, sequence 362494
Checkpoint not complete

-- Số lần switch log quá nhiều, lên đến 95 lần/1 giờ:
-- Monitor số lần switch log theo từng giờ và so sánh với các ngày trước trong 31 ngày gần nhất
select
to_char(COMPLETION_TIME,'YYYY-MM-DD') day,
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'00',1,0)),'999') "00h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'01',1,0)),'999') "01h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'02',1,0)),'999') "02h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'03',1,0)),'999') "03h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'04',1,0)),'999') "04h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'05',1,0)),'999') "05h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'06',1,0)),'999') "06h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'07',1,0)),'999') "07h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'08',1,0)),'999') "08h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'09',1,0)),'999') "09h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'10',1,0)),'999') "10h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'11',1,0)),'999') "11h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'12',1,0)),'999') "12h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'13',1,0)),'999') "13h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'14',1,0)),'999') "14h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'15',1,0)),'999') "15h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'16',1,0)),'999') "16h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'17',1,0)),'999') "17h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'18',1,0)),'999') "18h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'19',1,0)),'999') "19h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'20',1,0)),'999') "20h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'21',1,0)),'999') "21h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'22',1,0)),'999') "22h",
to_char(sum(decode(substr(to_char(COMPLETION_TIME,'HH24'),1,2),'23',1,0)),'999') "23h",
round(sum(BLOCKS*BLOCK_SIZE)/1024/1024/1024,0)||' GB' "Total GB in a day",COUNT(*) "Total switch log in a day"
from v$archived_log
where to_date(COMPLETION_TIME) > sysdate-40
and dest_id=1
group by to_char(COMPLETION_TIME,'YYYY-MM-DD') 
order by day desc;


Nguyên nhân:

Size redo log quá nhỏ, các group đều ở trạng thái CURENT, ACTIVE

Khắc phục:

Sizing lại online redo log, do size online redo log quá nhỏ, tính toán lượng archived log sinh ra 1 ngày đảm bảo 1h từ 3 lần switch log, tất nhiên 4-6 lần vẫn OK., dùng 1 trong 2 cách sau:

    * Tăng size của online redo logs: Phải tạo lại chứ ko resize được

    * Bổ sung thêm redo log groups (cách này trong 1 số trường hợp switch log không quá lớn)

alter database add logfile   thread 1 group 1 ('+DATA','+RECO') size 1G;
alter database add logfile  thread 2 group 11  ('+DATA','+RECO') size 1G;

Chi tiết thủ tục như sau:

THỦ TỤC TẠO LẠI ONLINE REDO LOG

VỚI ASM

-- Note: Không càn cấu hình OMF
-- Monitor đảm bảo mỗi group tối thiểu 02 member trên 2 phân vùng khác nhau
--+FRA/OCSGWRPT/ONLINELOG/group_1.257.1077367961
--+DATA1/OCSGWRPT/ONLINELOG/group_1.262.1077367961
select * from v$logfile order by 1;

--Status đảm bảo luôn có group inactive
select * from v$log order by 1;

set echo off
set feedback off
set linesize 120
set pagesize 35
set trim on
set trims on
set lines 120
col group# format 999
col thread# format 999
col member format a70 wrap
col status format a10
col archived format a10
col fsize format 999 heading "Size (MB)"

select l.group#, l.thread#,
f.member,
l.archived,
l.status,
(bytes/1024/1024) fsize
from
v$log l, v$logfile f
where f.group# = l.group#
order by 1,2

alter database add logfile   thread 1 group 5 ('/u09/oracle/data/DBAViet/redo01a.log','/u10/oracle/data/DBAViet/redo01b.log') size 1G;

--FRA 897GB DATA1 con 41GB, DATA2 conf 61GB --> Ko them vao DATA1, DATA2; DATA3 conf 1.3TB
select * from v$asm_diskgroup;


alter database add logfile   thread 1 group 5 ('+DATA3','+FRA') size 2G;
alter database add logfile   thread 2 group 6 ('+DATA3','+FRA') size 2G;

alter database add logfile   thread 1 group 7 ('+DATA3','+FRA') size 2G;
alter database add logfile   thread 2 group 8 ('+DATA3','+FRA') size 2G;

alter database add logfile   thread 1 group 9 ('+DATA3','+FRA') size 2G;
alter database add logfile   thread 2 group 10 ('+DATA3','+FRA') size 2G;

alter database add logfile   thread 1 group 11 ('+DATA3','+FRA') size 2G;
alter database add logfile   thread 2 group 12 ('+DATA3','+FRA') size 2G;

select * from v$logfile order by 1;

--Status đảm bảo luôn có group inactive
select * from v$log order by 1;

alter system switch logfile;

select * from v$logfile order by 1;

--Status đảm bảo luôn có group inactive thi drop duoc
select * from v$log order by 1;

alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;
alter database drop logfile group 4;


VỚI FILE SYSTEM

--Method to drop and recreate online redolog files with 2 members to each group
--1.Firstly ORACLE will never allow you to drop the current ONLINE redolog file –

-- Size, status logfile group, thread
select * from v$log;
--Group# Thread# Sequence# BytesMembers Archived 
--1    1    17449    524288000    1    YES    INACTIVE    11950575940971    28/05/2017 1:36:20 AM
--2    1    17448    524288000    1    YES    INACTIVE    11949968296967    27/05/2017 2:05:34 AM
--3    2    26642    524288000    1    YES    INACTIVE    11951023181485    28/05/2017 6:30:26 PM
--4    2    26643    524288000    1    YES    INACTIVE    11951187419487    29/05/2017 1:35:35 AM
--5    2    26644    524288000    1    YES    INACTIVE    11951568250526    29/05/2017 3:17:19 PM
--6    2    26645    524288000    1    NO    CURRENT    11951840525221    30/05/2017 1:14:52 AM
--7    1    17450    524288000    1    YES    INACTIVE    11951187419492    29/05/2017 1:35:36 AM
--8    1    17451    524288000    1    NO    CURRENT    11951840525227    30/05/2017 1:14:53 AM

-- D/s duong dan logfile
select  * from v$logfile order by 1;

--1        ONLINE    /data/oradata/dbaviet/redo01.log    NO
--2        ONLINE    /data/oradata/dbaviet/redo02.log    NO
--3        ONLINE    /data/oradata/dbaviet/redo03.log    NO
--4        ONLINE    /data/oradata/dbaviet/redo04.log    NO
--5        ONLINE    /data/oradata/dbaviet/redo05.log    NO
--6        ONLINE    /data/oradata/dbaviet/redo06.log    NO
--7        ONLINE    /data/oradata/dbaviet/redo07.log    NO
--8        ONLINE    /data/oradata/dbaviet/redo08.log    NO
--10        STANDBY    /data/oradata/dbaviet/standby_redo10.log    NO
--11        STANDBY    /data/oradata/dbaviet/standby_redo11.log    NO
--12        STANDBY    /data/oradata/dbaviet/standby_redo12.log    NO
--13        STANDBY    /data/oradata/dbaviet/standby_redo13.log    NO
--14        STANDBY    /data/oradata/dbaviet/standby_redo14.log    NO
--15        STANDBY    /data/oradata/dbaviet/standby_redo15.log    NO

alter database drop logfile group 10;
alter database drop logfile group 11;
alter database drop logfile group 12;
alter database drop logfile group 13;
alter database drop logfile group 14;
alter database drop logfile group 15;

--Intention is to drop and recreate these online logs with a different size.
select * from v$log;

--Group# Thread# Sequence# BytesMembers Archived 
--1    1    17449    524288000    1    YES    INACTIVE    11950575940971    28/05/2017 1:36:20 AM
--2    1    17448    524288000    1    YES    INACTIVE    11949968296967    27/05/2017 2:05:34 AM
--3    2    26642    524288000    1    YES    INACTIVE    11951023181485    28/05/2017 6:30:26 PM
--4    2    26643    524288000    1    YES    INACTIVE    11951187419487    29/05/2017 1:35:35 AM
--5    2    26644    524288000    1    YES    INACTIVE    11951568250526    29/05/2017 3:17:19 PM
--6    2    26645    524288000    1    NO    CURRENT    11951840525221    30/05/2017 1:14:52 AM
--7    1    17450    524288000    1    YES    INACTIVE    11951187419492    29/05/2017 1:35:36 AM
--8    1    17451    524288000    1    NO    CURRENT    11951840525227    30/05/2017 1:14:53 AM

--+ Begin dropping the redolog groups with STATUS=’INACTIVE’ – As mentioned earlier Oracle will not allow you to drop a current online redolog file.
alter database drop logfile group 1;
alter database drop logfile group 2;
--alter database drop logfile group 3;
alter database drop logfile group 4;
alter database drop logfile group 5;

alter database drop logfile group 7;

cd /data/oradata/prepaid/
mv /data/oradata/prepaid/redo01.log /data/oradata/dbaviet/redo01.log.bkp
mv /data/oradata/dbaviet/redo01.log /data/oradata/dbaviet/redo02.log.bkp
mv /data/oradata/dbaviet/redo01.log /data/oradata/dbaviet/redo03.log.bkp
mv /data/oradata/dbaviet/redo01.log /data/oradata/dbaviet/redo04.log.bkp
mv /data/oradata/dbaviet/redo01.log /data/oradata/dbaviet/redo05.log.bkp
mv /data/oradata/dbaviet/redo01.log /data/oradata/dbaviet/redo06.log.bkp
mv /data/oradata/dbaviet/redo01.log /data/oradata/dbaviet/redo07.log.bkp
mv /data/oradata/dbaviet/redo01.log /data/oradata/dbaviet/redo08.log.bkp

--Recreate group with both members
select * from v$log;    

select * from v$logfile;

alter database drop logfile group 6;
alter database drop logfile group 7;

alter database add logfile thread 1 group 1 '/u02/oradata/dbaviet/redo01.log'  size 512m;
alter database add logfile thread 1 group 2 '/u02/oradata/dbaviet/redo02.log'  size 512m;

--alter database add logfile thread 2 group 3 '/u02/oradata/dbaviet/redo03.log'  size 512m;
alter database add logfile thread 2 group 4 '/u02/oradata/dbaviet/redo04.log'  size 512m;

alter database add logfile thread 2 group 5 '/u02/oradata/dbaviet/redo05.log'  size 512m;

alter database add logfile thread 2 group 6 '/u02/oradata/dbaviet/redo06.log'  size 512m;

alter database add logfile thread 1 group 7 '/u02/oradata/dbaviet/redo07.log'  size 512m;


-- Tao lai group 8 thread 1: Van con /data
-- Group# 8 INACTIVE thi drop logfile
select * from v$log;    

select * from v$logfile

alter database drop logfile group 8;

alter database add logfile thread 1 group 8 '/u02/oradata/dbaviet/redo08.log'  size 512m;

alter system switch logfile;

ĐỌC THÊM:


Hy vọng hữu ích cho 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/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

=============================
Khi nào cần tạo lại online redo log, sizing như thế nào cho chuẩn trong Oracle Database, 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, 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, sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty
Sửa bài viết

Thứ Ba, 28 tháng 2, 2023

Tham Số MAX_STRING_SIZE Trong Oracle Database 12c

Tham số này đã được giới thiệu trong Oracle 12c. MAX_STRING_SIZEkiểm soát kích thước tối đa của kích thước chuỗi trong cơ sở dữ liệu Oracle.
Chúng ta có thể đặt nó thành STANDARDhoặcEXTENDED, mặc định làSTANDARD

Sửa bài viết

ĐỌC NHIỀU

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