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.