现在的位置: 首页 > 综合 > 正文

Oracle 小知识 总结(一)

2013年10月07日 ⁄ 综合 ⁄ 共 1134字 ⁄ 字号 评论关闭

Oracle 是一个庞大的系统,里面的知识点很多,在学习的时候,看到一些知识点,就贴了下来,尽不知中贴了这么多,就先做个小结吧。 里面有的知识点已经单独拿出来写成单篇的blog了。有的还没有进行整理。 好记性不如烂笔头,不过我用的不是笔。 ^_^  ...  

这里面大部分内容都是我泡CSDN 论坛的时候整理的,现在要忙其他的事,就很少去了。 泡论坛的那段时间,是我进步最快的时间,所以如果想在Oracle 上有所发展的朋友,建议也可以去论坛泡泡。 看到自己会的知识点,就帮别人解答,不会的就自己研究学习,一段时间下来,会有很大的进步。而且还能认识很多朋友。 实在是一举两得的事。 

 

1. 每天的8002300每隔5分钟执行一个sql语句的JOB

--建立一个存储过程

CREATE OR REPLACE PROCEDURE p_jobtest IS 

  v_hh VARCHAR2(2);

BEGIN

  v_hh := to_char(SYSDATE, 'hh24');

  IF v_hh >= '08' AND v_hh <= '22' THEN

    --你的sql语句

    NULL;

  END IF;

END;

/

--提交一个JOB

DECLARE

  v_jobno NUMBER;

BEGIN

  dbms_job.submit(v_jobno,

                  'p_jobtest;',

                  trunc(SYSDATE, 'mi') + 1 / 1440,

                  'trunc(SYSDATE, ''mi'') + 5 / 1440');

END;

/

2.  RMAN 中的list 命令显示的信息是从控制文件里获取的,如果使用rm等命令手工的删除备份文件,这个动作不会同步到控制文件,造成不一致,这种不一致会导致使用rman时报错。可以使用delete 删除这些过期的记录,在用就不会报错了。 

RMAN>crosscheck copy; 

RMAN>list copy; 

RMAN>delete expired copy; 

3. 触发LGWR进程的条件有: 

  1. 用户提交 

  2. 1/3重做日志缓冲区未被写入磁盘 

  3. 有大于1M的重做日志缓冲区未被写入磁盘 

  4. 3秒超时 

  5. DBWR 需要写入的数据的SCN大于LGWR记录的SCNDBWR 触发LGWR写入。

4. 触发DBWR进程的条件有: 

1.  DBWR超时,大约3秒 

2. 系统中没有多余的空缓冲区来存放数据 

3.  CKPT 进程触发DBWR

5. 每隔3秒钟ckpt会去更新控制文件和数据文件,记录

抱歉!评论已关闭.