PDB Snapshot Carousel là một tính năng của Oracle Multitenant, giới thiệu trong Oracle Database 18c, cho phép bạn tạo và quản lý nhiều snapshot (ảnh chụp nhanh) của Pluggable Database (PDB) theo một lịch trình định kỳ. Tính năng này giúp bạn duy trì nhiều bản snapshot của một PDB trong một khoảng thời gian, giúp bạn dễ dàng quay lại một trạng thái trước đó của PDB nếu cần.
Lợi Ích của PDB Snapshot Carousel
- Phục hồi nhanh chóng: Dễ dàng quay lại một snapshot trước đó mà không cần phục hồi từ các bản sao lưu truyền thống.
- Phát triển và thử nghiệm: Cung cấp môi trường kiểm thử nhất quán và dễ dàng quay lại trạng thái ban đầu sau khi thử nghiệm.
- Quản lý không gian hiệu quả: Oracle tự động quản lý các snapshot để tối ưu hóa việc sử dụng không gian đĩa.
Cách Hoạt Động của PDB Snapshot Carousel
- Tạo snapshot định kỳ: Tạo các snapshot của một PDB theo lịch trình định kỳ.
- Giới hạn số lượng snapshot: Bạn có thể đặt số lượng snapshot tối đa mà Oracle sẽ lưu giữ. Khi số lượng snapshot đạt đến giới hạn này, các snapshot cũ nhất sẽ tự động bị xóa để nhường chỗ cho các snapshot mới.
- Lưu trữ các snapshot: Các snapshot được lưu trữ trong cùng một tablespace với PDB gốc, giúp tối ưu hóa việc quản lý không gian.
CÁC BƯỚC CẤU HÌNH VÀ SỬ DỤNG PDB SNAPSHOT CAROUSEL
Kiểm tra PDB ở chế độ Open:
show pdbs
Kiểm tra số bản Snapshot MAX hiện tại:
set linesize 150 col con_id format 99999 col property_name format a17 col pdb_name format a9 col value format a3 col description format a43 select r.con_id, p.pdb_name, property_name, property_value as value, description from cdb_properties r, cdb_pdbs p where r.con_id = p.con_id and property_name like 'MAX_PDB%' order by property_name;
Đặt max số bản snapshot của PDB, nếu đặt về 0 sẽ Off tính năng snapshot, xoá toàn bộ Snapshot hiện có
alter session set container = pdbduongdb; alter pluggable database set max_pdb_snapshots=7;
Tự động tạo Snapshot sau xx giờ:
alter session set container = cdb$root; alter system set "_exadata_feature_on"=true scope=spfile; shut immediate startup alter session set container = pdbduongdb; alter pluggable database snapshot mode every 24 hours;
Kiểm tra thông tin cấu hình Snapshot:
select snapshot_mode "s_mode", snapshot_interval/60 "snap_int_hrs" from dba_pdbs;
Tạo snapshot thủ công:
alter session set container = pdbduongdb; alter pluggable database snapshot pdbduongdb_snapshot1;
Kiểm tra thông tin snapshot vừa tạo:
select con_id, con_name, snapshot_name,snapshot_scn as snap_scn, full_snapshot_path from dba_pdb_snapshots order by snap_scn;
Xoá Snapshot:
alter pluggable database drop snapshot pdbduongdb_snapshot1;
Khôi phục PDV từ Snapshot: (đứng từ CDB)
- Khi bạn thực hiện xoá 1 PDB =>> các snapshot theo nó sẽ bị xoá tự động hết.
- Việc khôi phục lại PDB từ Snapshot với đúng tên sẽ không khả thi vì chúng ta phải xoá PDB trước khi thực hiện =>> hệ thống sẽ xoá mất bản Snapshot
- Vậy chúng ta sẽ restore từ Snapshot sang PDB với tên mới.
alter session set container = cdb$root; create pluggable database pdbduongdb1 from pdbduongdb using snapshot pdbduongdb_snapshot1 snapshot mode every 24 hours; alter pluggable database pdbduongdb1 open;