Demo Tự động Flashback Standby database khi Flashback trên Primary Oracle Data Guard 19c

Đây có thể nói là tính năng hay trong Oracle 19c, khi chúng ta thực hiện tạo Restore Point và Flashback CSDL trên Primary thì trên Standby cũng tự động thực hiện như trên Primary, như vậy dữ liệu của chúng ta sẽ luôn được đồng bộ.

PPT - ORACLE FLASHBACK PowerPoint Presentation, free download - ID:2472990

THÔNG TIN CHI TIẾT 2 NODE:

ItemsPrimary – SRV1Standby – SRV2
hostnamesrv1srv2
ip192.168.1.11192.168.1.12
db nameduodbduodb
instance_nameduodbstand
db_unique_nameduodbstand
version DB19.319.3
DB_HOME/u01/app/oracle/ product/19.3.0/dbhome_1/u01/app/oracle/ product/19.3.0/dbhome_1
DB_BASE/u01/app/oracle/u01/app/oracle
global database namesrv1.localdomainsrv2.localdomain

SRV1 – server tôi đặt là Primary

SRV2 – server tôi đặt là Standby

Kiểm tra thông tin database:

Primary: kiểm tra thông tin CSDL và bảng hiện có

select status,instance_name,database_role,protection_mode ,flashback_on from v$database,v$instance;

select * from duong.tab1;

SQL> select status,instance_name,database_role,protection_mode ,flashback_on from v$database,v$instance;

STATUS INSTANCE_NAME DATABASE_ROLE PROTECTION_MODE

———— —————- —————- ——————–

FLASHBACK_ON

——————

OPEN duodb PRIMARY MAXIMUM AVAILABILITY

YES

SQL> select * from duong.tab1;

CODE NAME

———- ——————–

1 duong duong 222

2 ssssssssssss

Primary: kiểm tra và tạo thông tin restore point:

Sqlplus format:

set pages 500;

set lines 150;

column time format A30;

column name format A30;

column REPLICATED format A30;
select SCN, GUARANTEE_FLASHBACK_DATABASE, TIME, NAME, REPLICATED from v$restore_point;

create restore point duong_repo guarantee flashback database;

select SCN, GUARANTEE_FLASHBACK_DATABASE, TIME, NAME, REPLICATED from v$restore_point;

SQL> select SCN, GUARANTEE_FLASHBACK_DATABASE, TIME, NAME, REPLICATED from v$restore_point;

no rows selected

SQL> create restore point duong_repo guarantee flashback database;

Restore point created.

SQL> select SCN, GUARANTEE_FLASHBACK_DATABASE, TIME, NAME, REPLICATED from v$restore_point;

SCN GUA TIME NAME REP

———- — ————————————————– —————————— —

2402917 YES 07-MAY-24 10.37.52.000000000 AM DUONG_REPO NO

Standby: check thông tin DB

select status,instance_name,database_role,protection_mode ,flashback_on from v$database,v$instance;

select SCN, GUARANTEE_FLASHBACK_DATABASE, TIME, NAME, REPLICATED from v$restore_point;

SQL> select status,instance_name,database_role,protection_mode ,flashback_on from v$database,v$instance;

STATUS INSTANCE_NAME DATABASE_ROLE PROTECTION_MODE FLASHBACK_ON

———— —————- —————- ——————– ——————

OPEN stand PHYSICAL STANDBY MAXIMUM PERFORMANCE YES

SQL> select SCN, GUARANTEE_FLASHBACK_DATABASE, TIME, NAME, REPLICATED from v$restore_point;

SCN GUA TIME NAME REP

———- — ——————– ——————– —

2402917 NO 07-MAY-24 10.37.52.0 DUONG_REPO_PRIMARY YES

00000000 AM

Như vậy chúng ta thấy rằng trong tên file restore point của Standby hệ thống đã tự động thêm _primary vào sau.

Test CASE:

Thực hiện truncate hết data trên Primary đi sau đó kiểm tra dữ liệu, thực hiện flashback sau đó check tiếp dữ liệu xem diễn biến như nào?

Primary: truncate table:

select * from duong.tab1;

truncate table duong.tab1;

select * from duong.tab1;

SQL> select * from duong.tab1;

CODE NAME

———- ——————————

1 duong duong 222

2 ssssssssssss

SQL> truncate table duong.tab1;

Table truncated.

SQL> select * from duong.tab1;

no rows selected

Thực hiện check trên Standby database cũng đã không còn dữ liệu nữa rồi !!!.

SQL> select * from duong.tab1;

no rows selected

Primary: Tắt database sau đó mount và thực hiện flashback:

shut immediate

startup mount

flashback database to restore point duong_repo;

alter database open resetlogs;

select * from duong.tab1;

SQL> shut immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

Total System Global Area 1828713632 bytes

Fixed Size 8897696 bytes

Variable Size 436207616 bytes

Database Buffers 1375731712 bytes

Redo Buffers 7876608 bytes

Database mounted.

SQL> flashback database to restore point duong_repo;

Flashback complete.

SQL> alter database open resetlogs;

Database altered.

SQL> select * from duong.tab1;

CODE NAME

———- ——————————

1 duong duong 222

2 ssssssssssss

Như vậy là sau khi tiến hành Flashback trên Primary thì đã có data trở lại.

Standby: Shutdown database sau đó OPEN lại và kiểm tra dữ liệu

shut immediate

startup

alter database recover managed standby database disconnect;

SELECT database_role, open_mode FROM v$database;

select * from duong.tab1;

SQL> select * from duong.tab1;

CODE NAME

———- ——————–

1 duong duong 222

2 ssssssssssss

Như vậy là trên Standby cũng đã có dữ liệu trở lại => nghĩa là nó cũng đã thực hiện Flashback như Primary thành công.

Chúc các bạn thành công.

 

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận