ALTER SYSTEM SWITCH LOGFILE和ALTER SYSTEM ARCHIVE LOG CURRENT区别

本文详细介绍了Oracle数据库中日志切换与归档的方法,包括ALTER SYSTEM SWITCH LOGFILE与ALTER SYSTEM ARCHIVELOG CURRENT的区别及应用场景,特别是在RAC环境中两者的使用情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前知道

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/是否开归档功能),由于功能设计的出发点不同,各自附带的效果也有所不同。

















本文转自xiaocao1314051CTO博客,原文链接:http://blog.51cto.com/xiaocao13140/1933628 ,如需转载请自行联系原作者


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值