อ่านตามคำแนะนำทั่วไป แนะนำให้ switches log ครั้งหนึ่งให้มากกว่า 15 – 30 นาที อย่างเช่นที่ http://www.dba-oracle.com/tips_oracle_v$_log_history.htm ที่นำเอา script มาเช็คจำนวนการ switches log รายวันย้อนหลัง (เกิน 30 วันมั้ง)
ก็แนะนำให้ชม. ละไม่เกิน 5 ครั้ง สำหรับ busy production server
สำหรับผมเองไปเช็คสถานะของ redo log พบว่าเป็นสถานะ ACTIVE ไม่มี INACTIVE เลย
แสดงว่าจำนวน log group หรือ size ของ log น้อยไป ทำให้ไม่มีสถานะ INACTIVE เลย
1 2 3 4 5 6 7 8 9 |
SQL> select group#,status from v$log; GROUP# STATUS ------ ------------------- 1 ACTIVE 2 ACTIVE 3 CURRENT |
นอกจากนี้ไปเช็คด้วย script ตรวจสอบการ switches log ได้ผลดังนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
-bash-3.00$ sqlplus / as sysdba SQL> set lines 120; SQL> set pages 999; SQL> SELECT to_char(first_time,'YYYY-MON-DD') day, to_char(sum(decode(to_char(first_time,'HH24'),'00',1,0)),'99') "00", to_char(sum(decode(to_char(first_time,'HH24'),'01',1,0)),'99') "01", to_char(sum(decode(to_char(first_time,'HH24'),'02',1,0)),'99') "02", to_char(sum(decode(to_char(first_time,'HH24'),'03',1,0)),'99') "03", to_char(sum(decode(to_char(first_time,'HH24'),'04',1,0)),'99') "04", to_char(sum(decode(to_char(first_time,'HH24'),'05',1,0)),'99') "05", to_char(sum(decode(to_char(first_time,'HH24'),'06',1,0)),'99') "06", to_char(sum(decode(to_char(first_time,'HH24'),'07',1,0)),'99') "07", to_char(sum(decode(to_char(first_time,'HH24'),'08',1,0)),'99') "08", to_char(sum(decode(to_char(first_time,'HH24'),'09',1,0)),'99') "09", to_char(sum(decode(to_char(first_time,'HH24'),'10',1,0)),'99') "10", to_char(sum(decode(to_char(first_time,'HH24'),'11',1,0)),'99') "11", to_char(sum(decode(to_char(first_time,'HH24'),'12',1,0)),'99') "12", to_char(sum(decode(to_char(first_time,'HH24'),'13',1,0)),'99') "13", to_char(sum(decode(to_char(first_time,'HH24'),'14',1,0)),'99') "14", to_char(sum(decode(to_char(first_time,'HH24'),'15',1,0)),'99') "15", to_char(sum(decode(to_char(first_time,'HH24'),'16',1,0)),'99') "16", to_char(sum(decode(to_char(first_time,'HH24'),'17',1,0)),'99') "17", to_char(sum(decode(to_char(first_time,'HH24'),'18',1,0)),'99') "18", to_char(sum(decode(to_char(first_time,'HH24'),'19',1,0)),'99') "19", to_char(sum(decode(to_char(first_time,'HH24'),'20',1,0)),'99') "20", to_char(sum(decode(to_char(first_time,'HH24'),'21',1,0)),'99') "21", to_char(sum(decode(to_char(first_time,'HH24'),'22',1,0)),'99') "22", to_char(sum(decode(to_char(first_time,'HH24'),'23',1,0)),'99') "23" from v$log_history GROUP by to_char(first_time,'YYYY-MON-DD') order by day desc; DAY 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ----------- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- 2015-OCT-31 19 6 22 5 3 4 6 7 5 7 8 4 6 8 6 8 7 4 7 4 4 8 14 22 2015-OCT-30 19 5 7 5 3 4 5 7 5 8 7 5 6 8 6 8 8 4 6 4 4 7 6 15 2015-OCT-29 19 5 22 5 3 4 5 7 5 6 7 5 6 8 6 8 8 4 5 5 4 10 16 24 2015-OCT-28 19 6 7 5 2 5 5 7 5 7 6 5 6 8 6 7 7 4 6 5 4 7 7 14 2015-OCT-27 19 6 22 5 3 4 5 7 5 8 6 5 6 8 6 8 8 4 6 4 4 7 16 23 2015-OCT-26 19 5 8 4 3 4 5 7 6 7 7 5 6 8 6 7 8 4 6 5 4 9 8 14 2015-OCT-25 19 6 22 5 3 4 6 7 5 7 7 5 6 8 6 8 7 4 7 4 4 8 14 22 2015-OCT-24 18 6 7 5 3 4 6 7 5 7 7 5 6 8 6 7 7 4 6 5 4 7 5 13 2015-OCT-23 18 5 23 5 3 4 5 6 5 8 6 5 6 8 5 8 7 4 6 4 5 9 17 23 2015-OCT-22 18 4 7 5 3 3 5 5 5 6 7 5 6 8 5 8 7 4 6 4 4 8 6 14 2015-OCT-21 18 4 22 5 3 3 5 5 6 6 7 3 6 7 6 6 7 3 7 3 5 6 15 22 2015-OCT-20 18 4 8 4 3 2 5 6 5 6 6 4 6 7 5 7 7 3 6 3 4 8 7 14 2015-OCT-19 18 4 23 5 3 2 5 6 5 6 7 3 6 7 5 6 7 3 7 3 4 6 15 22 2015-OCT-18 18 4 7 4 3 3 6 5 5 6 7 4 6 7 6 6 7 3 8 3 4 6 5 14 2015-OCT-17 19 4 22 5 3 2 7 5 4 6 7 4 6 7 6 7 7 3 7 3 4 8 15 22 2015-OCT-16 19 4 7 4 3 2 5 6 5 6 6 4 6 6 6 6 7 3 6 4 4 5 7 12 2015-OCT-15 18 5 21 5 3 3 4 6 5 6 7 3 6 7 6 6 7 2 7 3 4 5 15 22 2015-OCT-14 16 12 14 11 10 10 12 14 13 8 11 13 12 13 10 11 7 2 6 4 4 8 7 13 2015-OCT-13 26 13 31 12 11 12 12 15 15 13 15 13 17 15 15 15 16 13 16 12 12 14 21 16 2015-OCT-12 26 13 17 13 12 12 13 16 14 15 15 13 17 15 14 15 18 13 16 12 13 14 15 22 2015-OCT-11 26 13 31 13 12 13 14 15 14 14 16 14 15 16 15 14 16 13 16 12 14 16 26 28 2015-OCT-10 27 11 18 12 12 12 13 16 14 14 16 12 16 15 15 15 16 13 16 12 13 13 14 21 2015-OCT-09 0 0 0 0 0 0 0 0 0 0 0 4 15 16 14 15 16 13 15 11 12 13 25 28 2015-NOV-25 2 1 1 2 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2015-NOV-24 2 1 5 2 1 0 1 2 1 2 2 1 2 2 1 2 2 1 2 1 1 2 3 6 2015-NOV-23 2 1 2 2 0 1 1 2 1 2 1 1 2 2 1 2 2 1 1 2 1 2 1 3 2015-NOV-22 2 1 5 2 1 0 2 2 1 2 2 1 3 1 1 2 2 1 1 2 1 2 4 5 2015-NOV-21 2 2 1 2 0 1 2 1 1 2 2 1 2 2 1 1 2 1 1 2 1 2 1 3 2015-NOV-20 3 1 5 2 1 1 1 2 1 2 2 1 2 2 1 2 3 1 1 1 1 2 3 5 2015-NOV-19 2 1 2 2 0 1 1 2 1 2 3 2 2 2 1 1 2 1 2 1 1 2 2 3 2015-NOV-18 3 2 4 3 0 1 1 2 1 4 0 3 2 2 1 3 2 1 2 1 1 2 3 5 2015-NOV-17 3 1 1 2 1 1 1 1 1 2 1 2 2 1 1 5 4 4 1 1 1 2 1 3 2015-NOV-16 9 5 35 5 2 4 5 8 4 8 60 57 79 13 27 9 11 3 2 1 1 2 4 3 2015-NOV-15 65 65 66 59 3 3 7 8 4 6 9 7 4 8 5 7 7 6 7 4 5 6 4 7 2015-NOV-14 49 73 82 98 94 73 71 77 67 65 59 74 31 8 4 8 8 4 8 4 4 8 70 80 2015-NOV-13 12 6 7 4 3 4 5 7 4 7 8 4 6 9 5 8 4 3 6 4 5 9 6 14 2015-NOV-12 19 6 22 5 3 4 5 7 5 8 7 5 6 8 6 8 7 4 6 5 4 8 14 15 2015-NOV-11 19 5 8 4 3 4 5 7 5 8 7 5 6 8 6 8 8 4 6 5 4 7 7 15 2015-NOV-10 19 5 22 6 3 4 5 8 5 8 7 5 6 8 7 8 8 4 6 5 4 9 17 23 2015-NOV-09 19 5 8 4 3 4 5 7 5 8 7 5 6 8 6 8 8 4 6 4 5 8 6 16 2015-NOV-08 19 6 22 5 3 4 6 7 5 7 8 5 6 8 7 7 8 4 6 4 4 8 14 23 2015-NOV-07 20 5 7 5 3 4 6 7 5 7 8 5 6 8 6 8 7 4 7 4 4 9 7 15 2015-NOV-06 11 6 19 6 2 4 5 7 5 7 7 5 5 7 5 8 8 4 6 5 4 8 15 23 2015-NOV-05 20 5 7 5 3 4 5 7 5 8 7 5 6 8 5 8 8 4 6 4 4 7 6 8 2015-NOV-04 19 5 23 5 3 4 5 7 5 8 7 4 6 8 5 8 8 4 6 4 4 9 17 23 2015-NOV-03 19 5 8 4 3 4 5 7 5 7 7 5 6 8 5 8 8 4 6 4 4 8 6 14 2015-NOV-02 18 6 22 5 3 4 5 7 6 7 7 5 6 8 6 7 4 4 6 4 4 8 14 23 2015-NOV-01 19 5 7 5 3 4 6 7 5 7 8 5 6 8 6 8 7 4 7 4 4 9 7 15 48 rows selected. |
จากด้านบน ผมปรับ redo log size หลังวันที่ 2015-NOV-16
โดยวันก่อนหน้าพบว่า switches redo log (เหมาว่า) ประมาณ 15 ครั้ง ต่อ ชม. ละกัน
ยกเว้นวันที่ 2015-NOV-14, 2015-NOV-15 มี query DML เยอะ ทำให้เกิดการ switches redo log มากขึ้น
จากเดิมที่มี 3 redo logs group ขนาด 50M
ปรับเป็น 4 redo logs group ขนาด 200M (เพิ่มขนาดอีก 4 เท่า และเพิ่ม group อีก 1 group เผื่อไว้)
ส่งผลให้จำนวน switches redo log ลดลงเหลือแค่ 2 ครั้ง ต่อ ชม. (ก็ขึ้นอยู่กับ DML ที่เกิดขึ้นในขณะนั้นด้วย)
วิธีการปรับเปลี่ยน redo logs size & group นั้น หากเป็น Oracle DB Standalone ขั้นตอนก็ switch logfile ให้มีสถานะ INACTIVE แล้ว drop group นั้น จากนั้นสร้าง group ใหม่ชื่อเดิมก็ได้ขึ้นมา
แต่ผมมีการใช้งาน Oracle Dataguard ซึ่งมีทั้ง Primary & Secondary Server ด้วย จึงมีขั้นตอนเพิ่มเติม ไปดูเพิ่มเติมตามลิงค์นี้ครับ //www.mr2t.com/resizing-redo-logs-in-data-guard-primary-standby-database