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.
Yêu cầu trước khi thực hiện PITR
- Backup và Archive Logs: Đảm bảo bạn có một backup hợp lệ và các archive logs cần thiết.
- Tạm dừng hoạt động ghi vào PDB: Đảm bảo rằng không có hoạt động ghi nào vào PDB trong suốt quá trình khôi phục.
- Quyền SYSDBA: Bạn cần quyền SYSDBA để thực hiện các thao tác khôi phục.
Các bước thực hiện PITR cho PDB
- Tạo backup database
- Tạo bảng
- Xoá bảng
- Recovery về trạng thái trước khi xoá bảng
BACKUP DATABASE:
rman target / backup database plus archivelog;
TẠO BẢNG:
Login vào PDB để tạo bảng test
sqlplus / as sysdba
SQL> show con_name
CON_NAME
——————————
CDB$ROOT
SQL> alter session set container = pdb;
SQL> show con_name
CON_NAME
——————————
PDB
create table duong (id number); insert into duong values (111); commit;
SQL> select * from duong;
ID
———-
111
select sysdate from dual;
SYSDATE
——————-
2024-06-05 11:34:43
=>> đây là mốc thời gian chúng ta recovery lại
XOÁ BẢNG:
lúc này PDB không còn table duong nữa
drop table duong;
Truy vấn =>> không còn table duong =>> báo lỗi.
SQL> select * from duong;
select * from duong
*
ERROR at line 1:
ORA-00942: table or view does not exist
RECOVERY:
Đóng PDB lại:
alter pluggable database pdb close immediate;
exit ra OS và tạo đường dẫn auxi
mkdir -p /u01/arch/pitr
Login vào Rman:
rman target /
Thực hiệ lệnh: (thời gian chính là trước lúc drop table)
run
{
SET UNTIL TIME "TO_DATE('2024-06-05 11:34:43','YYYY-MM-DD HH24:MI:SS')";
RESTORE pluggable database pdb;
RECOVER pluggable database pdb auxiliary destination='/u01/arch/pitr';
ALTER PLUGGABLE DATABASE pdb OPEN RESETLOGS;
}
Kiểm tra sau khi recovery:
sqlplus / as sysdba alter session set container = pdb;
dữ liệu bảng duong đã có trở lại.