hackerwang 发表于 2011-12-22 08:54

Oracle备份与恢复 定时switch logfile时的问题!

<DIV>
<DIV>Oracle备份与恢复 定时switch logfile?&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;</DIV>
<DIV>--------------------------------------------------------------------------------<BR>&nbsp;question:<BR>-----------------------------------------------------------<BR>我想每天半夜对数据库做一个logswitch,想把它添加成计划任务。<BR>我的BAT文件为:<BR>sqlplus <A href="mailto:sys/abcd@prod" target=_blank><FONT color=#63401b>sys/abcd@prod</FONT></A><BR>alter system switch logfile;<BR>时间一到,该任务执行,可只运行了第一句,登陆进了sqlplus窗口,但没做logswitch。<BR>BAT文件这么写对么?</DIV>
<DIV>-----------------------------------------------------------<BR>answer:</DIV>
<DIV>将<BR>conn <A href="mailto:sys/abca@prod" target=_blank><FONT color=#63401b>sys/abca@prod</FONT></A> as sysdba;<BR>alter system switch logfile;<BR>写成sql脚本文件c:aa.sql</DIV>
<DIV>然后bat文件这样写:<BR>sqlplus&nbsp; /nolog @c:\aa.sql </DIV>
<DIV><BR>首先明确一个概念,LOG SWITCH 不是把脏数据写到归档中,而是把LOG BUFEE 中的更改的内容写进ARCH中,写脏数据的进程是DBWN,触发条件很多,建议楼主好好看看DBA1这门书,其中触发DBWN写脏数据需要如下条件:</DIV>
<DIV>出现检查点<BR>灰数据缓冲区达到阈值<BR>没有空闲缓冲区<BR>出现超时<BR>执行了 RAC ping 请求<BR>表空间处于 OFFLINE 状态<BR>表空间处于 READ ONLY 状态<BR>对表执行 DROP 或 TRUNCATE 操作<BR>对表空间执行 BEGIN BACKUP 操作 </DIV>
<DIV>LOG SWITCH的作用如下:<BR>记录对数据库数据块所做的全部更改 <BR>主要用于恢复 <BR>其中记录的更改称作重做条目 <BR>重做条目包含用于重新构造或重做更改的信息 <BR>大小由 LOG_BUFFER 定义 </DIV>
<DIV>我理解的三个状态是:<BR>ARCHIVE 是还没有写到ARCH中的<BR>INACTIVE 是已经完成的,写入到了ARCH中的<BR>CURRENT 是正在使用的,当前还没有写满的</DIV></DIV>
页: [1]
查看完整版本: Oracle备份与恢复 定时switch logfile时的问题!