Oracle更改redo log大小和standby log大小
(1)redo log的大小可以影响 DBWR 和 checkpoint ;
(2)arger redo log files provide better performance. Undersized logfiles increase checkpoint activity and reduce performance.
大的log file可以提供更好的性能,小的logfile 会增加checkpoint 和降低性能;
(3) A rough guide is to switch log files at most once every 20 minutes.(推荐日志切换的时间不要超多20分钟)
status 有几个值分别是:
unused(还没有使用过);
current(正在使用);
active(Log isactive but is not the current log. It is needed for crash recovery)
inactive(Log is nolonger needed for instance recovery)
主库上修改redo log
1.查看redo logfiles
set lines 222
col member for a80
select a.group#,a.thread#,a.archived,a.status,a.bytes/1024/1024,b.MEMBER from v$log a,v$logfile b where a.group#=b.group#;
GROUP# THREAD# ARC STATUS A.BYTES/1024/1024 MEMBER
---------- ---------- --- ---------------- ----------------- --------------------------------------------------------------------------------
11 1 YES INACTIVE 100 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_11_grm2t722_.log
11 1 YES INACTIVE 100 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_11_grm2t9o7_.log
12 1 YES UNUSED 100 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_12_grm2y0ps_.log
12 1 YES UNUSED 100 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_12_grm2y16h_.log
14 1 YES INACTIVE 100 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_14_grm2vocm_.log
14 1 YES INACTIVE 100 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_14_grm2vov6_.log
13 1 NO CURRENT 100 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_13_grm2vv0k_.log
13 1 NO CURRENT 100 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_13_grm2vvgt_.log
2.删除并增加新的日志文件
先處理inactive, 它表示已經完成規定的,可以刪除
SQL> alter database drop logfile group 11;
Database altered.
SQL> alter database drop logfile group 14;
Database altered.
SQL> select a.group#,a.thread#,a.archived,a.status,a.bytes/1024/1024,b.MEMBER from v$log a,v$logfile b where a.group#=b.group#;
GROUP# THREAD# ARC STATUS A.BYTES/1024/1024 MEMBER
---------- ---------- --- ---------------- ----------------- --------------------------------------------------------------------------------
12 1 YES UNUSED 100 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_12_grm2y0ps_.log
12 1 YES UNUSED 100 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_12_grm2y16h_.log
13 1 NO CURRENT 100 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_13_grm2vv0k_.log
13 1 NO CURRENT 100 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_13_grm2vvgt_.log
SQL> alter database drop logfile group 12;
alter database drop logfile group 12
* -- 至少要2個redo組,看來還是隻能慢慢來了
ERROR at line 1:
ORA-01567: dropping log 12 would leave less than 2 log files for instance CMSDB (thread 1)
ORA-00312: online log 12 thread 1: ‘/oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_12_grm2y0ps_.log‘
ORA-00312: online log 12 thread 1: ‘/oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_12_grm2y16h_.log‘
SQL> alter database add logfile group 11 size 500m;
Database altered.
SQL> alter database add logfile group 14 size 500m;
Database altered.
SQL> alter database drop logfile group 12;
Database altered.
SQL> alter database add logfile group 12 size 500m;
SQL> alter system switch logfile;
System altered.
SQL>
SQL> /
System altered.
SQL> /
System altered.
SQL> alter database drop logfile group 13;
Database altered.
SQL> alter database add logfile group 13 size 500m;
Database altered.
SQL> select a.group#,a.thread#,a.archived,a.status,a.bytes/1024/1024,b.MEMBER from v$log a,v$logfile b where a.group#=b.group#;
GROUP# THREAD# ARC STATUS A.BYTES/1024/1024 MEMBER
---------- ---------- --- ---------------- ----------------- --------------------------------------------------------------------------------
11 1 YES INACTIVE 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_11_grm3x7ol_.log
11 1 YES INACTIVE 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_11_grm3xd5c_.log
12 1 YES INACTIVE 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_12_grm3zm81_.log
12 1 YES INACTIVE 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_12_grm3zq6n_.log
14 1 NO CURRENT 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_14_grm3y7r1_.log
14 1 NO CURRENT 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_14_grm3ybs4_.log
13 1 YES UNUSED 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_13_grm4200q_.log
13 1 YES UNUSED 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_13_grm424sr_.log
8 rows selected.
3.删除并增加新的standby日志文件
SQL> alter database drop standby logfile group 15;
Database altered.
SQL> alter database drop standby logfile group 16;
Database altered.
SQL> alter database drop standby logfile group 17;
Database altered.
SQL> alter database drop standby logfile group 18;
Database altered.
SQL> alter database drop standby logfile group 19;
Database altered.
SQL> select a.group#,a.thread#,a.archived,a.status,a.bytes/1024/1024,b.MEMBER from v$standby_log a,v$logfile b where a.group#=b.group#;
no rows selected
SQL> alter database add standby logfile group 15 size 500m;
Database altered.
SQL> alter database add standby logfile group 16 size 500m;
Database altered.
SQL> alter database add standby logfile group 17 size 500m;
Database altered.
SQL> alter database add standby logfile group 18 size 500m;
Database altered.
SQL> alter database add standby logfile group 19 size 500m;
Database altered.
SQL> select a.group#,a.thread#,a.archived,a.status,a.bytes/1024/1024,b.MEMBER from v$standby_log a,v$logfile b where a.group#=b.group#;
GROUP# THREAD# ARC STATUS A.BYTES/1024/1024 MEMBER
---------- ---------- --- ---------- ----------------- --------------------------------------------------------------------------------
15 0 YES UNASSIGNED 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_15_grm4bqlx_.log
15 0 YES UNASSIGNED 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_15_grm4bvyt_.log
16 0 YES UNASSIGNED 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_16_grm4chfw_.log
16 0 YES UNASSIGNED 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_16_grm4cksq_.log
17 0 YES UNASSIGNED 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_17_grm4cv7q_.log
17 0 YES UNASSIGNED 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_17_grm4cxl4_.log
18 0 YES UNASSIGNED 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_18_grm4d6t3_.log
18 0 YES UNASSIGNED 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_18_grm4d93p_.log
19 0 YES UNASSIGNED 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_19_grm4dppr_.log
19 0 YES UNASSIGNED 500 /oradata/CMSDB/datafile1/CMSDB/onlinelog/o1_mf_19_grm4dsp8_.log
10 rows selected.
SQL>
physical standby database
SQL> alter database drop logfile group 11;
alter database drop logfile group 11
*
ERROR at line 1:
ORA-01156: recovery or flashback in progress may need access to files
SQL> alter database recover managed standby database cancel;
Database altered.
SQL> alter database drop logfile group 11;
alter database drop logfile group 11
*
ERROR at line 1:
ORA-01275: Operation DROP LOGFILE is not allowed if standby file management is automatic.
SQL> alter system set standby_file_management=manual;
System altered.
SQL> alter database drop logfile group 14;
Database altered.
SQL> alter database add logfile group 14 size 500m;
standby logfile group;
备库上如下操作
SQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered.
主库:
SQL> alter system set log_archive_dest_state_2=defer;
SQL> alter system switch logfile;
SQL> select GROUP#,thread#,sequence#,USED,ARCHIVED,STATUS from v$standby_log;
GROUP# THREAD# SEQUENCE# USED ARC STATUS
---------- ---------- --------- ---------- --- ---------------
########## 0 0 0 YES UNASSIGNED
########## 0 0 0 YES UNASSIGNED
########## 0 0 0 YES UNASSIGNED
########## 0 0 0 YES UNASSIGNED
########## 0 0 0 YES UNASSIGNED
SQL> alter database recover managed standby database cancel;
Database altered.
SQL> alter database drop logfile group 15;
Database altered.
SQL> alter database add logfile group 15 size 500m;
Database altered.
SQL> alter system set standby_file_management=auto;
System altered.
SQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered.