alter system switch logfile與alter system archive log current的區別


以前知道

ALTER SYSTEM SWITCH LOGFILE對單實例數據庫或RAC中的當前實例執行日志切換,

ALTER SYSTEM ARCHIVE LOG CURRENT會對數據庫中的所有實例執行日志切換,

所以在RAC環境上大多時間一般使用后者,而今天遇到了不管執行多少次ALTER SYSTEM ARCHIVE LOG CURRENT命令,日志就是不切換的情況

image

最后使用 ALTER SYSTEM SWITCH LOGFILE 進行強制切換才解決這個問題,而ALTER SYSTEM SWITCH LOGFILE這個命令需要去具體的節點執行,該命令單實例或當前節點有效

image

 

 

另外,SWITCH LOGFILE 只是強制切換日志組,歸檔功能是否打開與之沒多大關系:

     歸檔如果打開,切換日志組附帶着必然要歸檔,在開歸檔的情況下,日志切換必然會歸檔的

     歸檔如果關閉,肯定不能歸檔了,但該功能同樣能切換日志組,因為它的功能就是強制切換日志組

而 archive log 則是歸檔的意思,常用的兩個參數:

     alter system archive log current:歸檔當前的日志組,僅在歸檔模式下使用,因為是當前日志組,歸檔之前必先切換日志組,所以該命令伴隨着切換日志組

     alter system archive log all: 歸檔除當前日志組以外,尚未歸檔的日志組,僅在歸檔模式下使用,該命令不會切換日志組

非歸檔模式下使用則會報以下錯誤:

 

補充說明:非歸檔模式下就不能使用 ARCHIVE LOG了嗎?上面的ORA-00258提示說指定日志,相關參數如下:

ARCHIVE LOG
   [  INSTANCE 'instance_name' ]
   { { SEQUENCE integer
     | CHANGE integer
     | CURRENT [ NOSWITCH ]
     | GROUP integer
     | LOGFILE 'filename'
          [ USING BACKUP CONTROLFILE ]
     | NEXT
     | ALL
     | START
     }
     [ TO 'location' ]
   | STOP
   }

 非歸檔模式下可以使用該方式指定到具體的日志組進行歸檔,但group n 不能是當前日志組

SQL> alter system archive log group 2 to '/tmp';

總結:

ALTER SYSTEM SWITCH LOGFILE:就是切換日志,SWITCH(切換) ,LOGFILE(日志),就是字面的意思

ALTER SYSTEM ARCHIVE LOG CURRENT:就是歸檔當前日志,歸檔(ARCHIVE )日志(LOG)當前的(CURRENT),也是字面意思,

然后就是在不同的環境下(單機/RAC/是否開歸檔功能),由於功能設計的出發點不同,各自附帶的效果也有所不同。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM