oracle备份与恢复以及定时switch logfile时的问题

发布时间:2020-08-05编辑:脚本学堂
Oracle备份与恢复 定时switch logfile?

Oracle备份与恢复 定时switch logfile?   
 
问题:
我想每天半夜对数据库做一个logswitch,想把它添加成计划任务。
我的BAT文件为:
sqlplus sys/abcd@prod
alter system switch logfile;
时间一到,该任务执行,可只运行了第一句,登陆进了sqlplus窗口,但没做logswitch。
BAT文件这么写对么?

回答:

conn sys/abca@prod as sysdba;
alter system switch logfile;
写成sql脚本文件c:aa.sql
然后bat文件这样写:
sqlplus  /nolog @c:aa.sql

首先,明确一个概念,LOG SWITCH 不是把脏数据写到归档中,而是把LOG BUFEE 中的更改的内容写进ARCH中,写脏数据的进程是DBWN,触发条件很多,建议楼主好好看看DBA1这门书,其中触发DBWN写脏数据需要如下条件:
出现检查点
灰数据缓冲区达到阈值
没有空闲缓冲区
出现超时
执行了 RAC ping 请求
表空间处于 OFFLINE 状态
表空间处于 READ ONLY 状态
对表执行 DROP 或 TRUNCATE 操作
对表空间执行 BEGIN BACKUP 操作
LOG SWITCH的作用如下:
记录对数据库数据块所做的全部更改
主要用于恢复
其中记录的更改称作重做条目
重做条目包含用于重新构造或重做更改的信息
大小由 LOG_BUFFER 定义
我理解的三个状态是:
ARCHIVE 是还没有写到ARCH中的
INACTIVE 是已经完成的,写入到了ARCH中的
CURRENT 是正在使用的,当前还没有写满的