DBWR和LGWR在什么情况下执行写
DBWR执行写情况:①没有可用的缓冲区情况②脏缓冲区过多③遇到三秒超时④遇到检查点LGWR 执行写情况①执行COMMIT②超过日志缓冲区1/3或者超过1M③DBWR正要执行写之前细心的人会发现为什么很多人会对LGWR的写情况增加一条“三秒超时”,其实原因很简单,正是由于LGWR的第③条与DBWR的第③条导致LGWR也有“三秒超时”的习惯以上信息来自《OCP/OCA认证考试指南全册》的自我总结[@more@]
移动表空间的数据文件
如果把所有的数据文件都放在同一个磁盘上,最终会带来I/O的瓶颈,以及数据的不安全性。因此应该把数据文件分散在不同的磁盘,这样对于性能和安全将会有提升。下面来做一个移动表空间的数据文件的实验:1、首先要使该数据文件所在的表空间offline:sys@ORCL> alter tablespace eygle offline;Tablespace altered.2、然后复制数据文件到不同的位置:cp /opt/ora10g/oradata/orcl/test01.dbf /opt/ora10g/youhua/test01.dbf3、对tablespace的数据文件进行重命名:sys@ORCL> alter tablespace eygle rename datafile '/opt/ora10g/oradat
Oracle优化器(RBO与CBO)
Oracle的优化器有两种,基于规则的优化器(RBO)和基于代价的优化器(CBO)。在8i之前,Oracle使用的是RBO(Rule Based Optimizer,基于规则的优化器),他的执行非常简单,就是在优化器里面嵌入15中规则,执行SQL语句符合哪种规则,就按照规则定制出相应的SQL执行计划。由于他是一种过时呆板的优化器,在10g以后的版本中已经被踢出掉了。从8i开始,Oracle引入了CBO(Cost Based Optimizer,基于代价的优化器),他的思路是让Oracle获取所有的执行计划的相关信息,通过这些信息做计算分析,最后得出一个代价最小的执行计划作为最终的执行计划
误删数据文件
前几天做了一个感觉很迷惑的实验,步骤如下:sys@ORCL> col name format a30sys@ORCL> select file#,ts#,name from v$datafile; FILE# TS# NAME---------- ---------- ------------------------------ 1 0 /opt/ora10g/oradata/orcl/syste m01.dbf 2 1 /opt/ora10g/oradata/orcl/undot bs01.dbf 3 2 /opt/ora10g/oradata/orcl/sysau x01.dbf 4 4 /opt/ora10g/oradata/orcl/users