Runbook này tuân theo Oracle Best Practices dành cho Data Guard và phân biệt rõ 3 loại redo:
RUNBOOK
Thay thế Online Redo Log và Standby Redo Log từ 200MB lên 1GB
Phiên bản áp dụng
- Oracle Database 11gR2/12c/18c/19c
- Physical Data Guard
- Primary Single Instance
- Standby Single Instance hoặc RAC
1. Kiến trúc tổng thể
1.1 Kiến trúc hiện tại
PRIMARY
192.168.50.113
+----------------------+
| Online Redo Log |
| 7 Groups x 1GB |
+----------+-----------+
|
LGWR / ARCH / LNS
|
Redo Transport Service
|
===========================
|
|
STANDBY (Single/RAC)
+----------------------------+
| Standby Redo Log |
| 4 Groups x 200MB |
+-------------+--------------+
|
MRP
|
Apply Redo
|
Datafiles
+----------------------------+
| Online Redo Log |
| 3 Groups x 200MB |
+----------------------------+
1.2 Kiến trúc mục tiêu
PRIMARY
Online Redo Log
7 Groups
1GB/group
│
│
▼
Standby Redo Log
8 Groups
1GB/group
│
▼
MRP Apply
│
▼
Datafiles
--------------------------------------
Online Redo Log trên Standby
7 Groups
1GB/group
(Chỉ sử dụng sau Switchover/Failover)
2. Mục lục thực hiện
1. Kiểm tra trước thay đổi
2. Backup
3. Resize Online Redo Log
3.1 Primary
3.2 Standby Single
3.3 Standby RAC
4. Resize Standby Redo Log
4.1 Standby Single
4.2 Standby RAC
5. Kiểm tra sau thay đổi
6. Rollback
7. Bài học kinh nghiệm
8. Phòng ngừa
3. Vấn đề
Hiện trạng
Primary
Online Redo Log
7 x 1GB
Standby
Online Redo Log
3 x 200MB
Standby Redo Log
4 x 200MB
Các vấn đề tồn tại
1. Standby Redo Log nhỏ hơn Primary
Oracle phải rotate SRL liên tục.
Dẫn tới
Transport Lag
Apply Lag
Redo Wait
RFS Wait
Media Recovery Waiting
2. Online Redo Log không đồng nhất
Nếu Switchover
Standby trở thành Primary
thì redo chỉ còn 200MB.
Log Switch xảy ra rất thường xuyên.
3. Thiếu Standby Redo Log
Oracle khuyến nghị
SRL
=
Online Redo Log
+
1 Group
(per thread)
Primary có
7 ORL
Standby phải có
8 SRL
4. Mức độ ảnh hưởng
| Ảnh hưởng | Mức độ |
|---|---|
| Transport Lag | ★★★★★ |
| Apply Lag | ★★★★★ |
| Redo Switch Frequency | ★★★★★ |
| Switchover Performance | ★★★★☆ |
| Failover Performance | ★★★★☆ |
| Recovery Time | ★★★★☆ |
5. Nguyên nhân
Nguyên nhân gốc
Primary
Redo = 1GB
↓
Standby
Redo = 200MB
Oracle phải
Switch
Archive
Reuse
Switch
Archive
Reuse
liên tục.
6. Biện pháp xử lý
Giai đoạn 1
Resize Primary Online Redo
200M
↓
1GB
(Nếu chưa thực hiện)
Giai đoạn 2
Resize Standby Online Redo
200M
↓
1GB
Giai đoạn 3
Resize Standby Redo Log
200M
↓
1GB
7. Thủ tục thực hiện
PHẦN A
Resize Online Redo Log trên Primary
Bước 1
Kiểm tra
SELECT GROUP#,
THREAD#,
BYTES/1024/1024 MB,
STATUS
FROM V$LOG
ORDER BY GROUP#;
Bước 2
Thêm redo mới
Ví dụ
ALTER DATABASE ADD LOGFILE GROUP 30
('/u02/oradata/redo30a.log',
'/u03/oradata/redo30b.log')
SIZE 1024M;
Làm tương tự đến đủ số group yêu cầu.
Bước 3
Switch Log
ALTER SYSTEM SWITCH LOGFILE;
Cho đến khi
INACTIVE
Bước 4
Drop redo cũ
ALTER DATABASE DROP LOGFILE GROUP xx;
PHẦN B
Resize Online Redo Log trên Standby Single
Dừng Apply
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
Kiểm tra
SELECT GROUP#,
STATUS,
BYTES/1024/1024 MB
FROM V$LOG;
Thêm ORL mới 1 GB:
ALTER DATABASE ADD LOGFILE GROUP 30
('/u01/app/oracle/recovery_area/mymobi/MYMOBI_STBY/onlinelog/redo30.log')
SIZE 1024M;
-- Tạo tiếp cho đến đủ 7 group 1 GB
Drop các ORL 200 MB sau khi không còn được sử dụng:
ALTER DATABASE DROP LOGFILE GROUP 1;
ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE DROP LOGFILE GROUP 3;
Lưu ý: ORL trên Standby không tham gia nhận redo khi database ở vai trò Physical Standby. Chúng chỉ được sử dụng sau Switchover hoặc Failover.
PHẦN C
Resize Online Redo Log trên Standby RAC
Thực hiện trên một instance sau khi dừng MRP.
Kiểm tra:
SELECT INST_ID,
GROUP#,
THREAD#,
BYTES/1024/1024 MB,
STATUS
FROM GV$LOG
ORDER BY THREAD#, GROUP#;
Ví dụ nếu RAC có 2 thread:
- Thread 1: tạo các ORL 1 GB cho thread 1.
- Thread 2: tạo các ORL 1 GB cho thread 2.
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 30
('+DATA')
SIZE 1024M;
ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 40
('+DATA')
SIZE 1024M;
Sau khi xác nhận các nhóm cũ không còn được sử dụng:
ALTER DATABASE DROP LOGFILE GROUP <group_number>;
PHẦN D
Resize Standby Redo Log trên Standby Single
Kiểm tra
SELECT GROUP#,
THREAD#,
STATUS,
BYTES/1024/1024 MB
FROM V$STANDBY_LOG;
Drop SRL cũ (chỉ khi STATUS = UNASSIGNED):
ALTER DATABASE DROP STANDBY LOGFILE GROUP 11;
ALTER DATABASE DROP STANDBY LOGFILE GROUP 12;
ALTER DATABASE DROP STANDBY LOGFILE GROUP 17;
ALTER DATABASE DROP STANDBY LOGFILE GROUP 18;
Tạo mới 8 SRL × 1 GB:
ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
GROUP 11
'/u01/app/oracle/recovery_area/mymobi/MYMOBI_STBY/onlinelog/srl11.log'
SIZE 1024M;
-- Tiếp tục tạo đến GROUP 18
PHẦN E
Resize Standby Redo Log trên Standby RAC
Nguyên tắc Oracle:
- Mỗi thread phải có số lượng SRL = số ORL của thread + 1.
- Kích thước SRL phải ≥ kích thước ORL của Primary.
Ví dụ RAC 2 node, mỗi thread có 7 ORL:
Thread 1:
8 Standby Redo Log × 1 GB
Thread 2:
8 Standby Redo Log × 1 GB
Kiểm tra:
SELECT INST_ID,
GROUP#,
THREAD#,
STATUS,
BYTES/1024/1024 MB
FROM GV$STANDBY_LOG
ORDER BY THREAD#, GROUP#;
Tạo SRL:
ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
GROUP 101
('+DATA')
SIZE 1024M;
ALTER DATABASE ADD STANDBY LOGFILE THREAD 2
GROUP 201
('+DATA')
SIZE 1024M;
Lặp lại cho đến khi đủ số lượng theo từng thread.
PHẦN F
Khởi động Apply
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE
USING CURRENT LOGFILE
DISCONNECT FROM SESSION;
Hoặc trên các phiên bản Oracle mới:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE
DISCONNECT FROM SESSION;
8. Kiểm tra sau thay đổi
SELECT GROUP#,
BYTES/1024/1024 MB,
STATUS
FROM V$LOG;
SELECT GROUP#,
BYTES/1024/1024 MB,
STATUS
FROM V$STANDBY_LOG;
SELECT PROCESS,
STATUS,
THREAD#,
SEQUENCE#
FROM V$MANAGED_STANDBY;
SELECT NAME,
VALUE
FROM V$DATAGUARD_STATS
WHERE NAME IN
(
'transport lag',
'apply lag'
);
9. Bài học kinh nghiệm
- Standby Redo Log (SRL) là thành phần trực tiếp nhận redo từ Primary trong chế độ Real-Time Apply; đây là thành phần cần ưu tiên cấu hình đúng kích thước và số lượng.
- Online Redo Log (ORL) trên Standby không tham gia nhận redo khi database đang ở vai trò Physical Standby, nhưng phải được cấu hình đồng bộ với Primary để sẵn sàng cho Switchover hoặc Failover.
- Thực hiện thay thế theo phương pháp rolling replacement (thêm mới → chuyển trạng thái → xóa cũ), không drop toàn bộ redo log cùng lúc.
10. Biện pháp phòng ngừa từ sớm, từ xa
-
Chuẩn hóa cấu hình:
- Kích thước ORL giữa Primary và Standby phải giống nhau.
- Kích thước SRL phải bằng hoặc lớn hơn ORL của Primary.
- Số SRL = số ORL của từng thread + 1.
-
Giám sát định kỳ:
-
V$DATAGUARD_STATS(transport lag,apply lag). -
V$STANDBY_LOG(trạng tháiACTIVE,UNASSIGNED). -
V$LOG_HISTORYđể theo dõi tần suất log switch.
-
-
Cảnh báo sớm:
- Thiết lập cảnh báo khi log switch quá thường xuyên (ví dụ < 15 phút/lần trong thời gian dài).
- Theo dõi tỷ lệ sử dụng FRA và tình trạng archive destination để tránh phát sinh archive gap hoặc apply lag.
TƯ VẤN: Click Here hoặc Hotline/Zalo 090.29.12.888
=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- 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
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
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
=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, 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/21c/23c/23ai, 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, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty